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>",<参数的类型:用哪个变量来接收>,响应函数中的形参的名字必须转化器中一致。 '''