反向解析
@app.rout("/login/<int:nid>",methods=["GET","POST",endpoint="fff"]) def index(nid): from flask import url_for v = url_for("fff", nid=99) # 反向解析 就能得到/login/99
路由传参:
@app.rout("/index/<int:nid>") # 代表int类型 @app.rout("/index/<nid>") # 不写类型代表string @app.rout("/index/<nid>",defualts={"cid":999}) def index(nid,cid): # 这个defaults中的cid就会传进来 pass
正则表达式传参
步骤:1. 先定义类; 2. 添加配置; 3. 应用
from werkzeug.routing import BaseConverter class RegexConverter(BaseConverter): def __init__(self,map,regex): super(RegexConverter,self).__init__(map) self.regex = regex def to_python(self,value): return int(value) #这个是正则匹配后的字符串 def to_url(self,value): #这个用于反向生成 endpoint val = super(RegexConverter,self).to_url(value) return val
配置文件
app.url_map.converters["xxx"] = RegexConverter
应用:
@app.route("<xxx(/d+):nid>",endpoint="axx")
子域名
@app.route("/",subdomain="admin") # 这个要配合一下 app.config["SERVER_NAME"] = "ab.com:5000" # 单机设置一下host
其他参数
strict_slashes = False # 就是是不是严格结尾加/是不是必须严格以url
redirect_to = None # 重新定向到另外一个地址去。e.g.@app.route("/old",redirect_to="/new") 就直接重新定向到别的路径去了。