千家信息网

Flask中路由Route有什么用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍Flask中路由Route有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、路由所谓路由,就是处理请求url和函数之间关系的程序,一个Web应用不同的路
千家信息网最后更新 2026年11月03日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 请求方法常用的有GET、POST、PUT、DELETE。Flask 路由也可以设置请求方法,在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()方法是根据试图函数名称获取url,redirect()是根据 url 重定向到视图函数,二者配合使用,用作 url 的重定向。hello(name)函数接受来自 url 的参数的值,判断值是否与superuser匹配,如果匹配,则使用redirect(url_for())将应用程序重定向到hello_superuser()函数,否则重定向到hello_user()函数。

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

函数 参数 变量 路由 方法 类型 视图 处理 不同 代码 内容 多个 字符 程序 转换器 面的 应用 字符型 两个 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南真二互联网科技有限公司 美国互联网黑科技 北京禾田雨橡互联网科技 广州紫鲸互联网科技 镁科技互联网资讯平台 联恩商钥互联网科技有限公司 哈尔滨新华互联网科技 顶级互联网科技成果有哪些 互联网科技项目计划书材料类 武汉健翔互联网络科技有限公司 厦门千工互联网科技有限公司 深圳艾果互联网通讯科技 世界互联网领先科技成果获奖 广州富喜互联网络科技 易企秀互联网科技是做什么的 互联网科技品牌 长沙易易互联网科技有限公司 河南商务圈互联网科技有限公司 山东亿川互联网科技有限责任公司 广州全民伙伴互联网科技有限公司 互联网金融科技 科技创新互联网企业 左右互联网络科技 花神(南京)互联网科技有限公司 互联网科技扶贫时间 华夏恒生科技与互联网科技 美国互联网科技实力 互联网科技平台产品运营 互联网科技职业技能培训学校 玉溪新华互联网科技怎么选
0