Flask 路由本质以及参数

Flask路由本质以及参数
from flask import Flask,url_for,redirect
app = Flask(__name__)
# @app.route("/")
def index(nid):
    print(nid,type(nid))

    return "ojbk"

# @app.route的本质就在执行add_url_rule,这个中的rule是路由,endpoint是路由别名,view_func是响应函数
# 如果endpoint不传就是响应的函数名

# <int:nid>里的int表示传过来参数的类型,这里的nid必须和上面index视图函数传过来的形参一致
# methods,可以控制该方法能有哪些请求方式可以访问
app.add_url_rule("/index/<int:nid>", endpoint="index1",view_func=index,methods=["POST","GET"])

@app.route("/login",methods=["POST"])
def login():
    #用endpoint取路由要用url_for 在flask中导入,也就是反向解析
    print(url_for("index1"))
    # return  redirect(url_for("index1"))

if __name__ == '__main__':
    app.run()
    
 '''
 总结:
 1 @app.route("/login") 的本质app.add_url_rule("/login",view_func=login),所以我们就可以用这两个方式来添加路由
 2 路由的参数,
     2.1 endpoint,做是反向解析,如果上面添加路由的时候,没有传递endpoint就是使用响应函数的函数名,反向解析用url_for()做解析,这个url_for必须在flask里面导入
     2.2 methods=["POST","GET"],该参数控制路由允许哪些请求方法访问,如果不传,默认只能GET方法
     2.3 路由以及路由路由转化器。"/index/<int:nid>",<参数的类型:用哪个变量来接收>,响应函数中的形参的名字必须转化器中一致。
 
 '''   
   
原文地址:https://www.cnblogs.com/baohanblog/p/12522039.html