概念:
路由:客户端把请求发送给Web服务器,Web服务器再把请求发送给程序实例。程序实例需要知道对每个URL请求运行哪些代码,所以保存了一个 URL 到 Python
函数的映射关系。处理URL和函数之间关系的程序称路由。
在Flask定义路由的最简便方式,是使用程序实例提供的app。route修饰器,把修饰的函数注册为路由:
如:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello world'
@app.route('/user', methods=['GET'])
def hello_user():
return 'hello user'
if __name__ == '__main__':
app.run(debug=True)
路由的本质
路由的本质,是URL
绑定, @app.route()
装饰器用于把一个函数绑于一个URL
上,如上,/
绑定了index()
函数,/user
绑定了hello_user()函数,这个例子将 index()
函数注册为程序根 '/'
地址。访问 http://localhost:5000/
后,会触发服务器执行 index()
函数,这个函数的返回值称为响应,是客户端接收到的内容。
像 index()
这样的函数称为视图函数。视图函数返回的响应可以是包含 HTML 的简单字符串,也可以是复杂的表单
路由查找方式
同一路由指向两个不同的函数,在匹配过程中,至上而下依次匹配
from flask import Flask
app = Flask(__name__)
def hello():
return '<h1>hello world</h1>'
@app.route('/')
def hello_2017():
return '<h1>hello 2017</h1>'
所以上面路由 /
输出的结果为 hello 函数的结果