Flask是一个用python编写的WSGI应用框架,我们使用他的时候,只需要专注于从网络请求到网络响应的过程中的逻辑处理,而无需关注网络层面的操作。
他可以很简单地使用pip来安装:
pip install flask
Hello Flask
编写一个Flask的Hello world相当容易
1 导入Flask
from flask import Flask
2 实例化Flask
app = Flask(__name__)
Flask类的构造参数是引入名,Flask使用这个名字进行静态资源、模板信息和错误的定位,一般情况下,我们总是使用__name__
。
3 注册路由
@app.route('/')
def index:
return 'Hello Flask'
注册路由就是建立URL和处理关系之间的联系,HTTP请求在Flask中依赖于注册的路由进行转发。
路由的注册使用的是python的特殊语法,修饰器,他将会把对应的URL规则绑定到对应的函数上,这个函数被称为视图函数,当来自对应URL的HTTP请求被WSGI服务器接收后,将会执行对应的视图函数。
4 启动WSGI服务器
app.run(host='0.0.0.0', port=80,debug=True)
路由规则
1 HTTP方法
在Flask中可以通过methods参数来指定使用的方法,如果不声明,则默认支持GET与POST方法
@app.route('/test', methods=['POST', 'GET'])
def test():
if request.method == 'GET':
return 'get method response'
if request.method == 'POST':
return 'post mehod response'
2 匹配动态URL
在路由器修饰器中,可以在URL规则中使用尖括号来声明变量,同时为视图函数声明对应的参数。
@app.route('/hello/<username>')
def say_hello():
return 'hello %s' % username
其中,这个参数还可以使用变量类型过滤。
@app.route('/hello/<int:count>')
Flask将会对对应的参数进行预处理:
- string - 匹配不包含/的字符串,这是默认的转换器。
- path - 匹配包含/的字符串。
- int - 只有当URL中的变量是整型值时才匹配,并将变量转换为整型。
- float - 只有当URL中的变量是浮点值时才匹配,并将变量转换为浮点型。
3 静态文件目录
在Flask中,static文件夹将会成为默认的静态文件目录,如果你想要指定特殊的静态文件目录,可以在Flask的实例化过程中使用
app = Flask(__name__, static_folder='/var/www/static')