(4)Flask 路由

Flask 路由

现代Web框架使用路由技术来帮助用户记住应用程序URL。可以直接访问所需的页面,而无需从主页导航。

Flask中的route()装饰器用于将URL绑定到函数。例如:

# -*- coding:utf-8 -*-
from flask import Flask

app = Flask(__name__)

@app.route('/hello')
def hello():
    return 'hello world'

if __name__ == '__main__':
    app.run()

下面讲讲app.route了,这是一个装饰器,它包裹了你的路由,等同于add_url_rule方法

我们也可以使用以下代码来调用

# -*- coding:utf-8 -*-
from flask import Flask

app = Flask(__name__)

def hello():
    return 'hello world'

app.add_url_rule('/', view_func=hello)

@app.route('/index',methods=['GET'])
def index():
    return 'this is index site'

if __name__ == '__main__':
    app.run()

我们还是从源码的角度来剖析其中的methods是怎么来的。下面只讲关键的一部分代码 :

methods = options.pop("methods", None)

if methods is None:
    methods = getattr(view_func, "methods", None) or ("GET",)
methods = set(item.upper() for item in methods)

首先他从options参数里面去找methods这个key,如果没有 ,它又会去view_func这个对象里面去找methods,没有的话,那么久默认为GET了。

后面一句的upper告诉我们,我们的items是一个generator,这里我们使用了列表来放置我们这个相关路由的所有方法,当然你也可以类似(x for x in ['get','post'])然后呢,最后都会自动帮我们转换为大写字母。

methods |= required_methods

在源码中,我们最后看到了一句精髓代码 。

这里要说一下,methods和required_methods在之前都变成了2个集合

这里的目的可是取并集哟,并将并集结果重新赋值给methods。

OK,你现在可以启动试试,如果没有意外的话你会看到和上面方法一样的效果。

祝你成功,我们下一节再见。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值