logo资料库

Flask1.0.2官方文档完整PDF.pdf

第1页 / 共415页
第2页 / 共415页
第3页 / 共415页
第4页 / 共415页
第5页 / 共415页
第6页 / 共415页
第7页 / 共415页
第8页 / 共415页
资料共415页,剩余部分请下载后查看
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
前言 — Flask 1.0.2 documentation Page 1 of 2 Flask 1.0.2 documentation 前言¶ 在使用 Flask 前请阅读本文。希望本文可以回答您有关 Flask 的用途和目的, 以及是否应当 使用 Flask 等问题。 “微”的含义¶ “微”并不代表整个应用只能塞在一个 Python 文件内, 当然塞在单一文件内也没有问题。 “微”也不代表 Flask 功能不强。 微框架中的“微”字表示 Flask 的目标是保持核心简单而又可 扩展。 Flask 不会替你做出许多决定,比如选用何种数据库。 类似的决定,如使用何种模板 引擎,是非常容易改变的。 Flask 可以变成你任何想要的东西,一切恰到好处,由你做主。 缺省情况下, Flask 不包含数据库抽象层、表单验证或者其他已有的库可以处理的东西。 然 而, Flask 通过扩展为你的应用添加这些功能,就如同这些功能是 Flask 生的一样。 大量的 扩展用以支持数据库整合、表单验证、上传处理和各种开放验证等等。Flask 可能是 “微 小”的,但它已经为满足您的各种生产需要做出了充足的准备。 配置和惯例¶ 刚起步的时候 Flask 有许多带有合理缺省值的配置值和惯例。按照惯例, 模板和静态文件存 放在应用的 Python 源代码树的子目录中,名称分别为 templates 和 static 。惯例是可以改 变的,但是你大可不必改变, 尤其是刚起步的时候。 可持续发展¶ 一旦你开始使用 Flask ,你会发现有各种各样的扩展可供使用。 Flask 核心开发组会 审查扩 展,并保证通过检验的扩展可以在最新版本的 Flask 中可用。 随着你的代码库日益壮大,你可以自由地决定设计目标。 Flask 会一直提供一个非常 简约而 优秀的胶合层,就像 Python 语言一样。你可以自由地使用 SQLAlchemy 执行高级 模式,或 https://dormousehole.readthedocs.io/en/latest/foreword.html 2019/1/21
前言 — Flask 1.0.2 documentation Page 2 of 2 者使用其他数据库工具,亦可引入非关系数据模型,甚至还可以利用用于 Python 网络接口 WSGI 的非框架工具。 Flask 包含许多可以自定义其行为的钩子。考虑到你的定制需求, Flask 的类专为继承 而打 造。如果对这一点感兴趣,请阅读 大型应用 一节。 如果对 Flask 的设计原则感兴趣,请移 步 Flask 的设计思路 。 接下来请阅读 安装 、 快速上手 或者 针对高级程序员的前言 。 https://dormousehole.readthedocs.io/en/latest/foreword.html 2019/1/21
针对高级程序员的前言 — Flask 1.0.2 documentation Page 1 of 2 Flask 1.0.2 documentation » 针对高级程序员的前言¶ Flask 中的本地线程对象¶ Flask 的设计原则之一是简单的任务不应当使用很多代码,应当可以简单地完成,但 同时又 不应当把程序员限制得太死。因此,一些 Flask 的设计思路可能会让某些人 觉得吃惊,或者 不可思议。例如, Flask 内部使用本地线程对象,这样就不必在同一 个请求中因为线程安全 的原因,而函数之间传递对象。这种实现方法是非常便利的, 但是当用于依赖注入或者当尝 试重用使用了与请求挂钩的值的代码时,需要一个合法 的环境。 Flask 项目对于本地线程是 直言不讳的,没有一点隐藏的意思,并且在使用 本地线程时在代码中进行了标注和说明。 做网络开发时要谨慎¶ 做网络应用开发时,安全要永记在心。 如果你开发了一个网络应用,那么可能会让用户注册并把他们的数据保存在服务器上。 用户 把数据托付给了你。哪怕你的应用只是给自己用的,你也会希望数据完好无损。 不幸的是,网络应用的安全性是千疮百孔的,可以攻击的方法太多了。 Flask 可以防御 现代 Web 应用最常见的安全攻击:跨站代码攻击( XSS )。 Flask 和 下层的 Jinja2 模板引擎会 保护你免受这种攻击,除非故意把不安全的 HTML 代码放进来。但是安全攻击 的方法依然 还有很多。 这里警示你:在 Web 开发过程中要时刻注意安全问题。一些安全问题远比想象的要复杂 得 多。我们有时会低估程序的弱点,直到被一个聪明人利用这个弱点来攻击我们的程序。 不要 以为你的应用不重要,还不足以别人来攻击。没准是自动化机器人用垃圾邮件或恶意 软件链 接等东西来填满你宝贵的数据库。 Flask 与其他框架相同,你在开发时必须小心谨慎。 https://dormousehole.readthedocs.io/en/latest/advanced_foreword.html 2019/1/21
针对高级程序员的前言 — Flask 1.0.2 documentation Page 2 of 2 https://dormousehole.readthedocs.io/en/latest/advanced_foreword.html 2019/1/21
安装 — Flask 1.0.2 documentation Page 1 of 3 安装 Python 版本 我们推荐使用最新版本的 Python 3 。 Flask 支持 Python 3.4 及更高版本的 Python 3 、 Python 2.7 和 PyPy 。 依赖 当安装 Flask 时,以下配套软件会被自动安装。 • Werkzeug 用于实现 WSGI ,应用和服务之间的标准 Python 接口。 • Jinja 用于渲染页面的模板语言。 • MarkupSafe 与 Jinja 共用,在渲染页面时用于避免不可信的输入,防止注 入攻击。 • ItsDangerous 保证数据完整性的安全标志数据,用于保护 Flask 的 session cookie. • Click 是一个命令行应用的框架。用于提供 flask 命令,并允许添加自定义 管理命令。 可选依赖 以下配套软件不会被自动安装。如果安装了,那么 Flask 会检测到这些软件。 • Blinker 为 信号 提供支持。 • SimpleJSON 是一个快速的 JSON 实现,兼容 Python’s json 模块。如果安 装 了这个软件,那么会优先使用这个软件来进行 JSON 操作。 • python-dotenv 当运行 flask 命令时为 通过 dotenv 设置环境变量 提供支 持。 • Watchdog 为开发服务器提供快速高效的重载。 虚拟环境 建议在开发环境和生产环境下都使用虚拟环境来管理项目的依赖。 为什么要使用虚拟环境?随着你的 Python 项目越来越多,你会发现不同的项目 会需要 不同的版本的 Python 库。同一个 Python 库的不同版本可能不兼容。  v: latest  https://dormousehole.readthedocs.io/en/latest/installation.html 2019/1/21
安装 — Flask 1.0.2 documentation Page 2 of 3 虚拟环境可以为每一个项目安装独立的 Python 库,这样就可以隔离不同项目之 间的 Python 库,也可以隔离项目与操作系统之间的 Python 库。 Python 3 内置了用于创建虚拟环境的 venv 模块。如果你使用的是较新的 Python 版本,那么请接着阅读本文下面的内容。 如果你使用 Python 2 ,请首先参阅 安装 virtualenv 。 创建一个虚拟环境 创建一个项目文件夹,然后创建一个虚拟环境。创建完成后项目文件夹中会有 一个 venv 文件夹: mkdir myproject cd myproject python3 -m venv venv 在 Windows 下: py -3 -m venv venv 在老版本的 Python 中要使用下面的命令创建虚拟环境: virtualenv venv 在 Windows 下: \Python27\Scripts\virtualenv.exe venv 激活虚拟环境 在开始工作前,先要激活相应的虚拟环境: . venv/bin/activate 在 Windows 下: venv\Scripts\activate 激活后,你的终端提示符会显示虚拟环境的名称。  v: latest  https://dormousehole.readthedocs.io/en/latest/installation.html 2019/1/21
安装 — Flask 1.0.2 documentation Page 3 of 3 安装 Flask 在已激活的虚拟环境中可以使用如下命令安装 Flask: pip install Flask 活在当下 如果想要在正式发行之前使用最新的 Flask 开发版本,可以使用如下命令从主 分支 安装或者更新代码: pip install -U https://github.com/pallets/flask/archive/master.tar.gz 安装 virtualenv 如果你使用的是 Python 2 ,那么 venv 模块无法使用。相应的,必须安装 virtualenv. 在 Linux 下, virtualenv 通过操作系统的包管理器安装: # Debian, Ubuntu sudo apt-get install python-virtualenv # CentOS, Fedora sudo yum install python-virtualenv # Arch sudo pacman -S python-virtualenv 如果是 Mac OS X 或者 Windows ,下载 get-pip.py ,然后: sudo python2 Downloads/get-pip.py sudo python2 -m pip install virtualenv 在 Windows 下,需要要 administrator 权限: \Python27\python.exe Downloads\get-pip.py \Python27\python.exe -m pip install virtualenv 现在可以继续阅读 创建一个虚拟环境 。  v: latest  https://dormousehole.readthedocs.io/en/latest/installation.html 2019/1/21
快速上手 — Flask 1.0.2 documentation Page 1 of 17 快速上手 等久了吧?本文会给你好好介绍如何上手 Flask 。 这里假定你已经安装好了 Flask ,否则请先阅读《 安装 》。 一个最小的应用 一个最小的 Flask 应用如下: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' 那么,这些代码是什么意思呢? 1. 首先我们导入了 Flask 类。 该类的实例将会成为我们的 WSGI 应用。 2. 接着我们创建一个该类的实例。第一个参数是应用模块或者包的名称。如 果你使用 一个单一模块(就像本例),那么应当使用 __name__ ,因为名称 会根据这个 模块是按应用方式使用还是作为一个模块导入而发生变化(可 能是 ‘__main__’ , 也可能是实际导入的名称)。这个参数是必需的,这 样 Flask 才能知道在哪里可以 找到模板和静态文件等东西。更多内容详见 Flask 文档。 3. 然后我们使用 route() 装饰器来告诉 Flask 触发函数的 URL 。 4. 函数名称被用于生成相关联的 URL 。函数最后返回需要在用户浏览器中显 示的信息。 把它保存为 hello.py 或其他类似名称。请不要使用 flask.py 作为应用名称, 这会与 Flask 本身发生冲突。 可以使用 flask 命令或者 python 的 -m 开关来运行这个应用。在 运行应用之 前,需要在终端里导出 FLASK_APP 环境变量: $ export FLASK_APP=hello.py $ flask run * Running on http://127.0.0.1:5000/  v: latest  如果是在 Windows 下,那么导出环境变量的语法取决于使用的是哪种命令行解 释器。 在 Command Prompt 下: https://dormousehole.readthedocs.io/en/latest/quickstart.html 2019/1/21
分享到:
收藏