反向解析

@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") 就直接重新定向到别的路径去了。