Python Flask 编程 | 连载 02 - Flask 路由

简介: Python Flask 编程 | 连载 02 - Flask 路由

一、路由定义

URL 以及路由

路由的过程就是通过URL地址找到对应的视图函数的过程

路由配置方式

Flask 提供了两种方式配置路由,第一种方式是使用装饰器 @app.route(uri, methods) 的方式,其中 uri 是指具体的路径,methods 是一个列表,值得是可以处理的请求类型如 GET、POST 等。

第二种方式是通过 Flask 实例调用 add_url_rule 函数配置。

app.add_url_rule(uri, uri_alias, view)
复制代码

该函数的参数中 uri 是指具体的 uri 地址,uri_alias 是指 uri 的别名,view 是指对应的视图函数的名字。

在 app.py 中使用第二种方式配置路由。

# 其余代码不变
@app.route('/')
def index():
    info = {
        'message': "这是存在message变量中的信息"
    }
    return render_template('index.html', info=info)
# 使用第二种方式给index()视图函数配置路由
app.add_url_rule('/index', 'index', index)
复制代码

保存代码,浏览器访问 /index

image.png

"/" 和 "/index" 都可以映射到 index() 视图函数上.

二、路径参数设置和获取

URL 路径中可以进行参数的传递,Flask 中 URL 参数的类型有:

  • string:接收任何不包含斜杠的问题本
  • int:接收正整数
  • float:接收浮点数
  • path:类似 string,但可以包含斜杠
  • uuid:接收 uuid 字符串

在 app.py 中定义一个视图函数

@app.route('/page/<int:page_number>')
def list(page_number):
    return '这是第{}页用户'.format(page_number)
复制代码

重启应用,访问 http://127.0.0.1:5000/page/100

image.png

定义路径中的参数时要定义参数的名字以及类型,书写视图函数时要将参数的名字作为视图函数的参数,这可以就可以通过参数名直接获取到URL传递的参数的值。

如果参数是非必填的可以设置参数的默认值。

@app.route('/page/')
@app.route('/page/<int:page_number>')
def list(page_number=1):
    return '这是第{}页用户'.format(page_number)
复制代码

重启应用,访问 http://127.0.0.1:5000/page/

image.png

url_map 属性

Flask 实例的 url_map 属性包含了所有的视图函数以及对应的 URL 地址

image.png


相关文章
|
1天前
|
Python
turtle库的几个案例进阶,代码可直接运行(python经典编程案例)
该文章展示了使用Python的turtle库进行绘图的进阶案例,包括绘制彩色圆形和复杂图案的代码示例。
20 6
turtle库的几个案例进阶,代码可直接运行(python经典编程案例)
|
2天前
|
传感器 JSON 监控
python中psutil模块的使用详解(python3经典编程案例)
这篇文章介绍了如何使用Python的`pyinstaller`库打包应用程序,并提供了详细的打包步骤和参数说明。
19 7
|
1天前
|
Python
turtle库的几个简单案例,代码可直接运行(python经典编程案例)
该文章提供了多个使用Python的turtle库绘制不同图形的简单示例代码,如画三角形、正方形、多边形等,展示了如何通过turtle进行基本的绘图操作。
12 5
|
2天前
|
Python
python第三方库-字符串编码工具 chardet 的使用(python3经典编程案例)
这篇文章介绍了如何使用Python的第三方库chardet来检测字符串的编码类型,包括ASCII、GBK、UTF-8和日文编码的检测示例。
24 6
|
2天前
|
NoSQL MongoDB 数据库
python3操作MongoDB的crud以及聚合案例,代码可直接运行(python经典编程案例)
这篇文章提供了使用Python操作MongoDB数据库进行CRUD(创建、读取、更新、删除)操作的详细代码示例,以及如何执行聚合查询的案例。
18 6
|
2天前
|
数据处理 开发者 Python
代码之美:探索简洁而强大的Python编程
【8月更文挑战第56天】在编程的世界里,简洁不仅仅是一种风格,它是高效和可维护性的代名词。本文将通过Python编程语言的视角,带领读者领略代码的优雅与力量。我们将从基础语法出发,逐步深入到函数式编程、面向对象设计,以及实用的第三方库使用,揭示如何通过简洁的代码解决复杂问题。准备好让你的思维得到启发,让我们一起走进Python的世界,体验代码之美。
|
2天前
|
缓存 中间件 网络架构
Python Web开发实战:高效利用路由与中间件提升应用性能
在Python Web开发中,路由和中间件是构建高效、可扩展应用的核心组件。路由通过装饰器如`@app.route()`将HTTP请求映射到处理函数;中间件则在请求处理流程中插入自定义逻辑,如日志记录和验证。合理设计路由和中间件能显著提升应用性能和可维护性。本文以Flask为例,详细介绍如何优化路由、避免冲突、使用蓝图管理大型应用,并通过中间件实现缓存、请求验证及异常处理等功能,帮助你构建快速且健壮的Web应用。
8 1
|
1天前
|
Python
Flask路由
现代Web框架使用路由技术来帮助用户记住应用程序URL。 无需从主页导航即可直接访问所需页面。
13 0
|
1天前
|
Shell Linux Python
python执行linux系统命令的几种方法(python3经典编程案例)
文章介绍了多种使用Python执行Linux系统命令的方法,包括使用os模块的不同函数以及subprocess模块来调用shell命令并处理其输出。
8 0
|
1天前
|
调度 数据库 Python
python中APScheduler的使用详解(python3经典编程案例)
文章详细讲解了在Python中使用APScheduler来安排和执行定时任务的方法,包括不同调度器的配置与使用场景。
9 0