软件测试|一文教你flask路由配置

简介: 软件测试|一文教你flask路由配置

flask路由配置

Flask中通过使用route装饰器实现路由访问功能,其路由匹配URL规则基于Werkzeug的路由模块。该模块基于Apache及更早的HTTP服务器主张,希望保证优雅且唯一的URL。其使用格式如下:

在这里插入图片描述

from flask import Flask
# 导入 Flask 类

app = Flask(__name__)
# 创建类的实例


@app.route("/hello")
# 使用 route() 装饰器来告诉 Flask 触发函数 的 URL
def hello_world():
    return "<p>Hello, World!</p>"


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

如上,可以通过访问:http://127.0.0.1:5000/hello.结果如下图所示:

在这里插入图片描述

URL规则

route装饰器基于Werkzeug规则实现,我们可以通过把URL的一部分标记为 <variable_name> 就可以在 URL 中添加变量,也可以通过使用<converter:variable_name>添加一个转换器来指定规则,支持的converter转换器类型如下:

  • string:接受任何没有斜杠 “/” 的文本(默认类型)
  • int:接受整数
  • float:接受浮点数
  • path:类似默认string,但也接受斜杠
  • uuid:只接受uuid字符串
  • any:可以指定多种路径,但是需要传入参数

示例代码如下:

from flask import Flask
from markupsafe import escape
app = Flask(__name__)

# URL没有尾部斜杠,访问这个URL就会得到一个 404
@app.route('/hello')  
def hello():
    return 'Hello, World'

# 访问没有斜杠结尾的URL时会自动进行重定向,帮您在尾部加上一个斜杠
@app.route('/projects/')
def projects():
    return '项目页面'

# path变量路由,支持get、post方法
@app.route('/user/<username>', methods=['GET', 'POST'])  
def profile(username):
    return f'{username}的个人页面'

# 指定path参数为int类型,如:/post/123
@app.route('/post/<int:post_id>')  
def show_post(post_id):
    return f'文章编号 {post_id}'

# 展示/path/之后的子路径地址
@app.route('/path/<path:subpath>')
def show_subpath(subpath):

    return f'子路径 {escape(subpath)}'

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

启动服务后,访问的记录如下图所示:

在这里插入图片描述

URL 构建

url_for()可以用于构建指定函数的URL,其使用格式:url_for(,dicts),且url_for会自动换衣特殊字符和unicode编码数据,而无需自己构建。

from flask import url_for,Flask
from markupsafe import escape
app = Flask(__name__)

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

@app.route('/getUserById')
def getUser(id):
    return f'当前用户Id:{id}'

@app.route('/user/<username>')
def user(username):
    return f'访问者:{username}'

@app.route('/path/<path:subpath>')
def show_subpath(subpath):
    return f'子路径 {escape(subpath)}'

with app.test_request_context():
    print(url_for('hello'))
    print(url_for('getUser',id=1000))
    print(url_for('user',username="穆勒"))
    print(url_for('show_subpath', subpath='subpath/b'))

运行结果如下图所示:

在这里插入图片描述

相关文章
|
1天前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
14 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
1月前
|
人工智能 Ubuntu Linux
os-copilot使用之全面配置与使用测试
作为一名个人开发者,我主要从事云服务器架设工作。近期,我成功使用了OS Copilot的 `-t -f |` 功能,解决了执行语句、连续提问及快速理解文件的问题。我发现这些功能非常实用,特别是在使用Workbench时能快速调用AI助手。此外,建议将AI功能与xShell工具联动,进一步提升效率。文中详细记录了购买服务器、远程连接、安装配置OS Copilot以及具体命令测试的过程,展示了如何通过快捷键和命令行操作实现高效开发。
135 67
|
1月前
|
运维 关系型数据库 MySQL
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
168 86
|
1月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
36 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
2月前
|
域名解析 弹性计算 监控
slb测试基本配置检查
slb测试基本配置检查
123 60
|
2月前
|
监控 负载均衡 容灾
slb测试配置
slb测试配置
53 5
|
3月前
|
监控 安全 测试技术
正确配置Flask以提高应用的安全性
正确配置Flask以提高应用的安全性
133 65
|
3月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
228 60
|
3月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
240 1
|
4月前
|
中间件 网络架构 Python
三、Flask基本内容介绍之路由
三、Flask基本内容介绍之路由
55 0

热门文章

最新文章