1. 接收任意路由参数
@app.route(rule="/users/<cid>/<num>")
def index(num, cid):
print(cid, type(cid))
print(num, type(num))
return f"<h1>cid={cid}, num={num}, flask!!!</h1>"
2. 接收限定类型参数
转换器名称 |
描述 |
string |
默认类型,接受不带斜杠的任何文本 |
int |
接受正整数 |
float |
接受正浮点值 |
path |
接收string 但也接受斜线 |
uuid |
接受UUID(通用唯一识别码)字符串 xxxx-xxxx-xxxxx-xxxxx |
@app.route("/goods/<int:cid>")
def goods_list(cid):
print(cid, type(cid))
return f"cid={cid}"
3. 自定义路由参数转换器(正则匹配路由转换器)
- 1.导入转换器基类
from werkzeug.routing import BaseConverter
- 2.自定义转换器
class RegexConverter(BaseConverter):
def __init__(self, map, *args):
super().__init__(map)
self.regex = args[0]
- 3.添加转换器到默认的转换器字典中,并指定转换器使用时名字为:re
app.url_map.converters['re'] = RegexConverter
- 4.使用转换器去实现自定义匹配规则(此处定义规则是:手机号码)
@app.route("/sms/<re('1[3-9]\d{9}'):mobile>")
def sms(mobile):
return f"mobile={mobile}"