Flask Web 开发学习笔记(一)
本文章主要整理:
0.如何使用虚拟环境
1.如何用pip
安装 Python 包(Demo:如何安装flask
)
2.一个简单的 Demo
如何使用虚拟环境
在介绍使用虚拟环境前,需要提前安装 Python 3.4(原先写的文章有介绍)。
Python 3.4 通过 venv
模块原生支持虚拟环境,命令为 pyvenv
。
1.创建一个名字为 venv
虚拟环境
|
|
2.激活名字为: venv
的虚拟环境
|
|
3.激活虚拟环境命令会修改命令行提示符,显示如下:
|
|
4.退出当前虚拟环境
使用命令:deactivate
使用 pip 安装 Python 包
大多数 Python 包都使用 pip
实用工具安装,使用 pyvenv
创建的虚拟环境会自动安装 pip
。
1.使用 pip
安装 Flask
(其它 Python 包同理)
|
|
一个简单的 Demo
|
|
从 Demo 中学习路由、修饰器、视图函数、请求、响应概念,一步步分析每行代码:
1.from flask import Flask
从 flask
库中导入 Flask
函数,from flask import abort
和 from flask import redirect
同理。
2.app = Flask(__name__)
创建 Flask
对象 app
,Flask
类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序中,Python 的 __name__
变量就是所需要的值。
3.@app.route('/')
客户端(例如 Web 浏览器)把请求发送给 Web 服务器,Web 服务器再把请求发送给 Flask 程序实例。程序实例需要知道对每个 URL 请求运行哪些代码,所以保存了一个 URL 到 Python 函数的映射关系。处理 URL 和函数之间的关系的程序称为路由。
在 Flask 程序中定义路由的最简便方式,是使用程序实例提供的 app.route
修饰器,把修饰的函数注册为路由。
修饰器是 Python 语言的标准特性,可以使用不同的方式修改函数的行为。惯常用法是使用修饰器把函数注册为事件的处理程序。
4.def index():
函数
index()
函数放在 @app.route('/')
后面,所以就是把 index()
函数注册为路由。
如果部署程序的服务器域名为 www.example.com
,在浏览器中访问 www.example.com
后,会触发服务器执行 index()
函数。
5.@app.route('/user/<name>')
同 @app.route('/')
,如果部署程序的服务器域名为 www.example.com
,在浏览器中访问 www.example.com/user/tom
后,会触发服务器执行下方修饰函数 sayHello(name)
。
6.sayHello(name)
函数
|
|
假定部署程序的服务器域名为 www.example.com
。
在浏览器中访问 www.example.com/user/baidu
,那么 redirect()
函数就直接链接到百度了。
注意的是,在使用 redirect()
函数之前,必须使用 from flask import redirect
从 flask 库中导入 redirect()
函数。
在浏览器中访问 www.example.com/user/NO
,那么 abort()
函数就会触发。
abort()
函数用于处理错误,abort(404)
返回 404 错误,abort()
函数不会把控制权交还给调用它的函数,而是抛出异常把控制权交给Web服务器。
在浏览器中访问 www.example.com/user/tom
,那么会正确执行,在浏览器中显示 Hello,tom
。
7.if __name__ == '__main__':
一开始也没弄懂,这句话是什么意思。在 StackOverflow 中找到了答案。
大致翻一下:
当 Python 解释器,读 py 文件,它会执行它发现的所有代码。在执行代码之前,它会定义一些变量。例如,如果这个 py 文件就是主程序,它会设置
__name__
变量为"__main__"
。如果这个 py 被引入到别的模块,__name__
会被设置为该模块的名字。举个栗子:
创建一个 test.py 文件:
1234 if __name__ == '__main__':print '自己主动执行'else:print '我被别的模块引入'执行下
$ python test.py
会输出自己主动执行
直接在命令行中输入python
随后输入import test
,会输出:我被别的模块引入
。
8.app.run(debug=True)
程序实例用 run()
方法启动 Flask 继承的开发 Web 服务器。
服务器启动后,会进入轮询,等待并处理请求。轮询会一直进行,直到程序停止,比如按Ctrl-C
键。
debug=True
表示启用调试模式。方便我们调试。