路由
客户端把请求发送给Web服务器,Web服务器再把请求发送给程序实例。程序实例需要知道对每个URL请求运行哪些代码,所以保存了一个 URL 到 Python
函数的映射关系。处理URL和函数之间关系的程序称路由。
Flask中使用 app.route
装饰器,把装饰器的函数注册到路由。
@app.route('/')
def index():
return '<h1> hello </h1>'
这个例子将 index()
函数注册为程序根 '/'
地址。
访问 http://localhost:5000/
后,会触发服务器执行 index()
函数,这个函数的返回值称为响应,是客户端接收到的内容。
像 index()
这样的函数称为视图函数。视图函数返回的响应可以是包含 HTML 的简单字符串,也可以是复杂的表单。
动态路由
如 Github 中,登录到某人的主页, 这时URL为 https://github.com/<user-name>
,用户名 user-name
是地址的一部分。
在 Flask
中,只需要在 route
装饰器中使用特殊的句法即可。
@app.route('/user/<name>')
def user(name):
return '<h1> hello, %s </h1>' % name
尖括号中的内容就是动态部分,任何匹配静态部分的URL都会映射到这个路由上。调用视图函数时,Flask
会将动态部分作为参数传入函数中。
路由中的动态部分默认使用字符串,不过也可以使用类型定义:int float path
类型。
例如: /user/<int:id>
path
类型也是字符串,但不把斜线视作分隔符。