什么是路由
处理 url 和函数之间的关系的程序就是 "路由"
在 Flask 中, 路由是通过 @App.route 装饰器来表示的
- @App.route('/login')
- def login():
- pass
不带参数的路由
- http://localhost:5000/admin/login
- @App.route('/admin/login')
- def admin_login():
- return "xxx"
带参数的路由
基本带参路由
参数用 <> 来表示
- @App.route('/show/<name>')
- def show(name):
- # name 参数表示的就是由地址栏上传递进来的数据
- pass
带多个参数的路由
多个参数使用 / 隔开, 并继续使用 <> 来表示
- @App.route('/show/<name>/<age>')
- def show(name,age):
- pass
指定参数类型的路由
使用类型转换器 解决参数类型的问题
- @App.route('/show/<name>/<int:age>')
- def show(name,age):
- print('name: 字符串类型的数据')
- print('age: 整数类型的数据')
- print('int: 类型转换器')
- pass
类型转化器 | 作用 |
---|---|
缺省 | 字符串,不能有斜杠 (‘/‘) |
int: | 整数 |
float: | 浮点型 |
path: | 字符串,允许有斜杠 (‘/‘) |
多 URL 的路由匹配
- @App.route('/ 地址 1')
- @App.route('/ 地址 2')
- ... ...
- def index():
- return 'xxx'
路由中设置允许接收的 HTTP 请求方法
所有的路由默认只接受 get 请求, 不接受 post 请求
- @App.route('/xxx',methods=['POST','GET'])
- @App.route('/xxx',methods=['POST'])
URL 的反向解析
正向解析: 程序自动解析, 会根据访问路径(@App.route('xxx')), 自动来匹配处理函数
反向解析: 通过视图处理函数的名称自动生成对应的访问路径
在 Flask 中要实现反向解析的话, 需要导入 url_for
- from flask import url_for
- url_for(funName,args)
funName: 要生成地址所对应的函数名
args: 该地址中要用到的参数
来源: http://www.bubuko.com/infodetail-2911617.html