包含标签 编程 的文章

Flask进阶系列(七)–应用最佳实践

一个好的应用目录结构可以方便代码的管理和维护,一个好的应用管理维护方式也可以强化程序的可扩展性。在Flask的官方文档,和一些网上资料中都给出了Flask大型应用最佳实践的建议,虽然各有不同,但是宗旨还是类似的。本篇就按我个人的总结,跟大家聊聊Flask应……

阅读全文

Flask进阶系列(六)–蓝图(Blueprint)

写进阶系列比入门系列累不少啊,很多地方都需要自己去反复验证,必要时还要翻翻源码,上一个视图写着写着就发现篇幅很长了。还好蓝图比较简单,这篇应该会比较简短,读者们请放心^_^ 我们的应用经常会区分用户站点和管理员后台,比如本博客所使用的WordPress,就有……

阅读全文

Flask进阶系列(四)–视图

终于结束了Jinja2的模板引擎之旅,让我们回到Flask中来。在一开始介绍Flask模板时,我们曾说过它是处在MVC模型中的View层,其实更确切的说,应该是模板渲染后的返回内容,才是真正的View,也就是视图。可以理解为,视图就是最终会显示在浏览器上的……

阅读全文

Flask中Jinja2模板引擎详解(八)–自定义扩展

说实话,关于自定义扩展的开发,Jinja2的官方文档写得真心的简单。到目前为止网上可参考的资料也非常少,你必须得好好读下源码,还好依然有乐于奉献的大牛们分享了些文章来帮助我理解怎么开发扩展。本文我就完全借鉴网上前人的例子,来给大家演示一个Jinja2的自定……

阅读全文

Flask中Jinja2模板引擎详解(七)–本地化

一个强大的工具一般都支持扩展或插件的开发功能,来允许第三方通过开发新扩展或插件,扩充工具本身功能,并可以贡献给社区。Jinja2也不例外,Jinja2本身提供了一部分扩展,你可以在程序中启用。同时,你还可以创建自己的扩展,来扩充模板引擎功能。本篇会先介绍J……

阅读全文

Flask中Jinja2模板引擎详解(六)–块和宏

考虑到模板代码的重用,Jinja2提供了块 (Block)和宏 (Macro)的功能。块功能有些类似于C语言中的宏,原理就是代码替换;而宏的功能有些类似于函数,可以传入参数。本篇我们就来介绍下块和宏的用法。 系列文章 Flask中Jinja2模板引擎详解(一)-控……

阅读全文

Flask中Jinja2模板引擎详解(五)–全局函数

介绍完了过滤器和测试器,接下来要讲的是Jinja2模板引擎的另一个辅助函数功能,即全局函数Global Functions。如果说过滤器是一个变量转换函数,测试器是一个返回布尔值的函数,那全局函数就可以是任意函数。可以在任一场景使用,没有输入和输出值的限制。……

阅读全文

Flask中Jinja2模板引擎详解(四)–测试器

Jinja2中的测试器Test和过滤器非常相似,区别是测试器总是返回一个布尔值,它可以用来测试一个变量或者表达式,你需要使用”is”关键字来进行测试。测试器一般都是跟着if控制语句一起使用的。下面我们就来深入了解下这个测试器。 系列文……

阅读全文

Flask中Jinja2模板引擎详解(三)–过滤器

我所了解的模板引擎大部分都会提供类似Jinja2过滤器的功能,只不过叫法不同罢了。比如PHP Smarty中的Modifiers(变量调节器或修饰器),FreeMarker中的Build-ins(内建函数),连AngularJS这样的前端框架也提供了Filt……

阅读全文

Flask中Jinja2模板引擎详解(二)–上下文环境

Flask每个请求都有生命周期,在生命周期内请求有其上下文环境Request Context。我们在Flask进阶系列第一篇中有详细介绍。作为在请求中渲染的模板,自然也在请求的生命周期内,所以Flask应用中的模板可以使用到请求上下文中的环境变量,及一些辅助……

阅读全文