flask-注册路由

在Flask程序中,浏览器通过URL发送HTTP请求给Web服务器,Web服务器再将HTTP请求转发给Flask程序。

Flask程序接收到HTTP请求后,需要知道Flask程序中哪部分代码对这个请求进行处理。为此,Flask程序保存了一个URL与视图函数或类的映射关系,建立映射关系的过程称为注册路由。

路由注册完成后,当浏览器根据URL访问网站时会执行Flask程序中与该URL关联的视图函数或类。

在Flask中,注册路由一般分为两种方式,一种方式是通过route()方法进行注册,另一种方式是通过add_url_rule()方法进行注册。

   1、 通过route()方法注册路由

route()是Flask类提供的方法,该方法用于将视图函数与特定的URL建立关联,当通过浏览器访问URL时程序内部自动调用与之关联的视图函数。

route(rule, methods, **options)

rule:必选参数,表示URL规则字符串,该字符串必须以“/”开始。

methods:可选参数,表示HTTP请求方法。

**options:可选参数,表示传递给底层werkzeug.routing.Rule对象的额外选项。

若URL规则字符串以“/”结尾,但用户访问URL时并没有在URL末尾附加“/”,则会自动重定向到附加了“/”的页面;若URL规则字符串的末尾没有附加“/”,但用户通过URL访问页面时在URL末尾附加了“/”,则会出现404页面。

route()方法的用法比较特殊,需要以装饰器的形式写在视图函数的上方。 下面通过一个示例演示如何通过route()方法注册路由,使视图函数与URL建立关联。

from flask import Flask
app = Flask(__name__)
@app.route('/index')    # 通过route()方法注册路由,URL规则为/index
def index():
    return f'<h1>这是首页!</h1>'
if __name__ == '__main__':
    app.run()

    2、通过add_url_rule ()方法注册路由

add_url_rule()也是Flask类提供的方法,该方法一般需要传递URL和URL关联的函数名。

add_url_rule(rule, endpoint=None, view_func=None,provide_automatic_options=None, **options)

rule:必选参数,

表示URL规则字符串。

endpoint:可选参数,表示端点名称。

view_func:可选参数,表示与端点关联的视图函数名。

methods:可选参数,表示定义的HTTP请求方法。

**options:可选参数,表示传递给底层werkzeug.routing.Rule对象的额外选项。

    通过add_url_rule ()方法注册路由

from flask import Flask
app = Flask(__name__)
def index_new():
    return f'<h1>这是首页!</h1>'
# 通过add_url_rule()方法注册路由
app.add_url_rule(rule='/index', view_func=index_new) 
if __name__ == '__main__':
    app.run()

分析route()方法的源码可知,route()方法内部其实调用了add_url_rule()方法,我们可以把route()当作add_url_rule()方法的快捷方法,route()方法的用法更简洁,无需传入与URL规则关联的视图函数名。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能教学实践

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值