原创

Flask(10)-视图-add_url_roule和app.route

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实现的

 

正文到此结束
评论

登录后才能发表评论 登录/注册

0评论
  • 还没有评论,快来抢沙发吧!