add_url_roule使用
# 访问URL是list,执行的函数是lists
def lists():
return "lists"
app.add_url_rule("/list/",view_func=lists)
# add_url_rule参数
def add_url_rule(self,rule,endpoint=None,view_func=None,**options)
# view_func :传入所要执行的函数
# endpoint :url规则的名字,用来反向生成url,
url_for可以使用,使用endpoint之后,不能使用函数名反转
@app.route("/")
def index():
print(url_for("li"))
return "index"
def lists():
return "lists"
app.add_url_rule("/list/",endpoint="li",view_func=lists)
app.route剖析
##app.route
#app.route也可以使用endpoint
@app.route("/",endpoint="index")
def index():
return "index"
# 用请求上下文 验证
with app.test_request_context():
print(url_for("index"))
结果: /
# route源码
def route(self, rule, **options): #route("/")相当于decorator("/")
def decorator(f): # decorator("/")
endpoint = options.pop("endpoint", None) # 获取endpoint参数,没有则为空
self.add_url_rule(rule, endpoint, f, **options)
return f
return decorator
# route的底层也是通过add_url_rule实现的