一、动态路由
在前面的博客中,我们学习了如何创建基本的 Flask 应用,并定义了一些简单的路由。但有时候,我们需要更加灵活的路由,能够根据用户请求的不同来动态生成响应。Flask 提供了动态路由的功能,使我们能够轻松处理这种需求。
使用动态路由参数
动态路由是指路由中的某些部分可以是变量,这样在处理请求时可以获取这些变量的值。例如:
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def show_user_profile(username):
return f'User {
username}'
@app.route('/post/<int:post_id>')
def show_post(post_id):
return f'Post {
post_id}'
在上面的例子中,<username>
和 <int:post_id>
都是动态路由参数。当用户访问 /user/john
时,username
参数将被设置为 'john'
;当用户访问 /post/1
时,post_id
参数将被设置为 1
。在Flask中,除了int
之外,还有一些其他的数据类型可以用于动态路由。以下是一些常见的数据类型和它们的描述:
数据类型 | 描述 |
---|---|
int | 接受整数 |
float | 接受浮点数 |
path | 类似字符串,但可以包含斜杠(/) |
string | 默认类型,接受没有斜杠的字符串 |
uuid | 接受UUID字符串 |
二、获取请求中的数据
1. 在 GET 请求中获取参数
在 Flask 中,可以使用 request.args
对象来获取 GET 请求中传递的参数。这些参数通常是通过查询字符串(Query String)传递的。
from flask import Flask, request
app = Flask(__name__)
@app.route('/search')
def search