千家信息网

Flask中路由Route有什么用

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍Flask中路由Route有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、路由所谓路由,就是处理请求url和函数之间关系的程序,一个Web应用不同的路
千家信息网最后更新 2025年01月19日Flask中路由Route有什么用

这篇文章主要介绍Flask中路由Route有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1、路由

所谓路由,就是处理请求url和函数之间关系的程序,一个Web应用不同的路径会有不同的处理函数,当我们请求应用时,路由会根据请求的 url 找到对应处理函数。

2、视图函数绑定多个url

一个视图函数可以绑定多个 url,比如下面的代码把/hi/hello都绑定到hello()函数上,这就会为hello()函数注册两个路由,用户访问这两个 url 均会触发该函数。

在上一篇 Hello Flask 的基础上,添加下面的函数,并运行程序。

@app.route('/hi')@app.route('/hello')def hello():    return 'Hello Flask!'

3、动态url

Flask 支持在 url 中添加变量部分,使用<变量名>的形式表示,Flask 处理请求时会把变量传入视图函数,所以可以在试图函数内获取该变量的值。

@app.route('/user/')def hello_user(name):    return 'Hello {}!'.format(name)

当我们在浏览器中访问http://127.0.0.1:5000/hello/tigeriaf地址时,将在页面上看到"Hello tigeriaf!"。url 路径中/hello/后面的参数被hello()函数的name参数接收并使用。

我们还可以在 url 参数前添加转换器来转换参数类型,比如:

@app.route('/user/')def hello_user(user_id):    return 'Hello user:{}!'.format(user_id)

访问http://127.0.0.1:5000/hello/111,页面上会显示"Hello user:111!"。其中,参数类型转换器int:控制传入参数的类型只能是整形,传入其他类型将报 404 的错误,

目前支持的参数类型转换器有:

  • string:字符型,但是其中不能包含斜杠"/"

  • int:整型

  • float:浮点型

  • uuid:uuid字符类型

  • path:字符型,可以包含斜杠"/",如aa/bb/cc

除此之外,还可以设置 url 变量参数的默认值,如下,在app.route()装饰器里使用defaults参数设置,接收一个字典,来存储 url 变量参数默认值映射。

@app.route('/user', defaults={'name': 'default_name'})@app.route('/user/')def hello_user(name):    return 'Hello {}!'.format(name)

上述代码中,/user不带参数,访问/user时,变量name就会使用默认值"default_name"。其实,这种做法等同于在hello_user()函数内给name变量设置缺省值。

4、HTTP请求方法设置

HTTP 请求方法常用的有GETPOSTPUTDELETEFlask 路由也可以设置请求方法,在app.route()装饰器中使用使用methods参数传入一个包含监听的 HTTP 请求的可迭代对象。 比如,下面的视图

函数同时监听GET请求和POST请求:

from flask import request@app.route('/login', methods=['GET', 'POST'])def login():    if request.method == 'POST':        return 'This is a POST request'    else:        return 'This is a GET request'

分别使用GET请求和POST请求访问http://127.0.0.1:5000/login时,会返回不同的内容,如果使用其他的请求方法(如PUT),会报 405 Method Not Allowed 的错误。

5、url构建

Flask提供了url_for()方法来快速获取及构建 url,方法的第一个参数是视图函数的名称,之后的一个或多个参数对应的是 url 变量部分。

比如:

@app.route('/superuser')def hello_superuser():    return 'Hello superuser!'@app.route('/user/')def hello_user(name):    return 'Hello {}!'.format(name)@app.route('/user/')def hello(name):    if name == 'superuser':        return redirect(url_for('hello_superuser'))    else:        return redirect(url_for('hello_user', name=name))

上述代码中:url_for()方法是根据试图函数名称获取urlredirect()是根据 url 重定向到视图函数,二者配合使用,用作 url 的重定向。hello(name)函数接受来自 url 的参数的值,判断值是否与superuser匹配,如果匹配,则使用redirect(url_for())将应用程序重定向到hello_superuser()函数,否则重定向到hello_user()函数。

以上是"Flask中路由Route有什么用"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

函数 参数 变量 路由 方法 类型 视图 处理 不同 代码 内容 多个 字符 程序 转换器 面的 应用 字符型 两个 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全检查汇报材料ppt 徐汇区市场软件开发报价方案 r语言提取数据框中数据库 做软件开发公司在哪里找订单 开发app所需要的服务器类型 数据库查询总计方法 海南网络安全周 昭通java软件开发 网络安全考研最容易考的学校 青岛鼎益盛网络技术公司 数据库技术与应用清华答案 北京华宇软件开发 战地1怎么一起进服务器 软件开发测试工作 延吉市网络安全支队 应用到数据库的软件 网络技术创新发展 上海智能化网络技术转让质量保障 秦皇岛软件开发app公司 智慧网格数据库建设进展工作报告 江苏服务器硬盘代理 手提电脑可以登陆数据库吗 drop数据库表还能恢复吗 网络安全科普心得体会 网络安全防护和保护的主要策略 数据库数字类型包含 开软件开发公司至少多少人 电脑软件连不上服务器怎么解决 斑马品创网络技术 触犯网络安全法还能不能解封
0