路由
路由是基于主机地址的
@app.rout('/index')
:http://127.0.0.1:5000/index
rout的实现
- rout是一个装饰器
def route(self, rule, **options):
def decorator(f):
self.add_url_rule(rule, endpoint, f, **options)
return f
return decorator
- 这个装饰器其实就是将rule字符串根视图函数进行了绑定, 通过
add_url_rule()
实现的绑定
上面的写法等效于
def index():
return 'Hello World!'
app.add_url_rule('/index', view_func=index)
路由的变量规则
- 通过把 URL 的一部分标记为
<variable_name>
就可以在 URL 中添加变量
示例
- 根据输入的链接不同, 返回不同的值
from flask import Flask
import settings
app = Flask(__name__)
app.config.from_object(settings)
# 定义一个字典
city = {'a': '北京', 'b': '上海', 'c': '广东'}
# 传递一个字符串
@app.route('/user/<username>')
def show_user_profile(username):
# 返回一个字典的value
return city.get(username)
if __name__ == '__main__':
app.run()
转换器类型
-
string :(缺省值) 接受任何不包含斜杠的文本
-
int : 接受正整数
-
float : 接受正浮点数
-
path : 类似 string ,但可以包含斜杠
-
uuid : 接受 UUID 字符串