包含标签 Flask 的文章

Flask进阶系列(八)–部署和分发

到目前为止,我们启动Flask应用都是通过app.run()方法,在开发环境中,这样固然可行,不过到了生产环境上,势必需要采用一个健壮的,功能强大的Web应用服务器来处理各种复杂情形。同时,由于开发过程中,应用变化频繁,手动将每次改动部署到生产环境上很是繁……

阅读全文

Flask进阶系列(九)–测试

测试是每个应用系统发布前必须经历的步骤,自动化测试对测试效率的提高也是毋庸置疑的。对于Flask应用来说,当然可以使用Web自动化测试工具,比如Selenium等来测。Flask官方推荐的自动化测试方法是一种白盒测试,它依赖于Werkzeug的Client……

阅读全文

Flask进阶系列(五)–文件和流

当我们要往客户端发送大量的数据,比如一个大文件时,将它保存在内存中再一次性发到客户端开销很大。比较好的方式是使用流,本篇就要介绍怎么在Flask中通过流的方式来将响应内容发送给客户端。此外,我们还会演示如何实现文件的上传功能,以及如何获取上传后的文件。 系列……

阅读全文

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。如果说过滤器是一个变量转换函数,测试器是一个返回布尔值的函数,那全局函数就可以是任意函数。可以在任一场景使用,没有输入和输出值的限制。……

阅读全文