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


相关文章
|
2月前
|
Python
[Python]Django 路由
[Python]Django 路由
|
4月前
|
Web App开发 搜索推荐 开发者
Flask 路由处理 URL 路径末尾带斜线或不带斜线机制
Flask 路由处理 URL 路径末尾带斜线或不带斜线机制
|
4月前
|
存储 网络架构 Python
python|web应用框架|增加动态路由
python|web应用框架|增加动态路由
69 0
python|web应用框架|增加动态路由
|
4月前
|
存储 Python
python|web应用框架|使用类装饰器注册路由
python|web应用框架|使用类装饰器注册路由
85 0
|
10月前
|
开发者 Python Windows
windows python web route 路由
windows python web route 路由
windows python web route 路由
|
11月前
|
Python
Python Django 编程 | 连载 02 - Django 路由
Python Django 编程 | 连载 02 - Django 路由
Python Django 编程 | 连载 02 - Django 路由
|
12月前
|
前端开发 Python
一起学习 Python 的 Sanic 框架:路由和蓝图
一般来说,蓝图包括 MVC 框架中的 view.py和 model.py。但为什么叫蓝图呢?每个子目录将包含远远超过一个蓝图对象。关键是要强化这样一个概念,即这个目录中的所有东西都是围绕这些离散的组件之一来解决的。
一起学习 Python 的 Sanic 框架:路由和蓝图
|
数据采集 人工智能 前端开发
【零基础学Python】后端开发篇 第二十二节--Python Web开发(三):HTTP请求的url路由
【零基础学Python】后端开发篇 第二十二节--Python Web开发(三):HTTP请求的url路由
139 0
|
编解码 数据库 Python
Python mini-web框架5:路由添加正则和log日志功能
Python mini-web框架5:路由添加正则和log日志功能
190 0
Python mini-web框架5:路由添加正则和log日志功能
|
SQL 缓存 搜索推荐
Python mini-web框架4:添加路由和MySQL功能
Python mini-web框架4:添加路由和MySQL功能
148 0
Python mini-web框架4:添加路由和MySQL功能
相关产品
云迁移中心
推荐文章
更多