作者:empty 页数:337 出版社:empty |
Flask是一个使用Python编写的轻量级Web应用框架, 基于Werkzeug WSGI工具箱和Jinja 2模板引擎。Flask使用BSD授权。Flask被称为 micro fr mew ork , 因为它使用简单的核心, 用extension增加其他功能。
在使用Flask前请阅读本文。希望本文可以回答您有关Flask的用途和目的, 以及是否应当使用Flask等问题。“微”的含义“微 并不代表整个应用只能塞在一个Python文件内, 当然塞在单一文件内也没有问题,“微 也不代表Flask功能不强。微框架中的“微“字表示Flask的目标是保持核心简单而又可扩展。Flask不会替你做出许多决定, 比如选用何种数据库。类似的决定, 如使用何种模板引擎, 是非常容易改变的。Flask可以变成你任何想要的东西, 一切恰到好处,由你做主,缺省情况下, Flask不包含数据库抽象层、表单验证或者其他已有的库可以处理的东西, 然而, Flask通过扩展为你的应用添加这些功能, 就如同这些功能是Flask生的一样。大量的扩展用以支持数据库整合、表单验证、上传处理和各种开放验证等等, Flask可能是“微小 的, 但它已经为满足您的各种生产需要做出了充足的准备。配置和惯例刚起步的时候Flask有许多带有合理缺省值的配置值和惯例.按照惯例, 模板和静态文件存放在应用的Python源代码树的子目录中, 名称分别为ter plates和static。惯例是可以改变的, 但是你大可不必改变, 尤其是刚起步的时候。可持续发展一旦你开始使用Flask, 你会发现有各种各样的扩展可供使用。Flask核心开发组会审查扩展, 并保证通过检验的扩展可以在最新版本的Flask中可用。随着你的代码库日益壮大,你可以自由地决定设计目标,Flask会一直提供一个非常简约而优秀的胶合层, 就像Python语言一样, 你可以自由地使用SQL Alchemy执行高级模式, 或者使用其他数据库工具, 亦可引入非关系数捆模型, 甚至还可以利用用于Python网络接WSGI的非框架工具。Flask包含许多可以自定义其行为的钩子。考虑到你的定制需求,Flask的类专为继承而打造。如果对这一点感兴趣, 请阅读大型应用一节, 如果对Flask的设计原则感兴趣, 请移步Flask的设计思路,接下来请阅读安装、快速上手或者针对高级程序员的前言,本文档使用书栈网·Boole Stack.CN构-13-针对高级程序员的前言Flask中的本地线程对象Flask的设计原则之一是简单的任务不应当使用很多代码, 应当可以简单地完成, 但同时又不应当把程序员限制得太死。因此, 一些Flask的设计思路可能会让某些人觉得吃惊, 或者不可思议。例如, Flask内部使用本地线程对象,这样就不必在同一个请求中因为线程安全的原因,而函数之间传递对象。这种实现方法是非常便利的,但是当用于依賴注人或者当尝试重用使用了与请求挂钩的值的代码时, 需要一个合法的环境。Flask项目对于本地线程是直言不讳的,没有一点隐藏的意思,并且在使用本地线程时在代码中进行了标注和说明,做网络开发时要谨慎做网络应用开发时,安全要永记在心。如果你开发了一个网络应用,那么可能会让用户注册并把他们的数据保存在服务器上,用户把数据托付给了你。哪怕你的应用只是给自己用的,你也会希望数据完好无损,不幸的是, 网络应用的安全性是干疮百孔的, 可以攻击的方法太多了。Flask可以防御现代Web应用最常见的安全攻击:跨站代码攻击(XSS) .Flask和下层的Jinja 2模板引擎会保护你免受这种攻击, 除非故意把不安全的HTML代码放进来, 但是安全攻击的方法依然还有很多,这里警示你:在Web开发过程中要时刻注意安全问题。一些安全问题远比想象的要复杂得多。我们有时会低估程序的弱点,直到被一个聪明人利用这个弱点来攻击我们的程序,不要以为你的应用不重要,还不足以别人来攻击。没准是自动化机器人用垃圾邮件或恶意软件链接等东西来填满你宝贵的数据库。Flask与其他框架相同, 你在开发时必须小心谨慎,