📅  最后修改于: 2023-12-03 15:07:39.311000             🧑  作者: Mango
在 Flask 中生成动态 URL 可以让你在你的应用程序中实现灵活的路由规则。通过将特殊的占位符添加到路由规则中,Flask 就可以从 URL 中提取信息。
占位符指的是使用一对尖括号包裹的变量名称。在编写路由规则时,你可以通过添加占位符将变量传递到对应的视图函数中。例如:
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def show_user_profile(username):
return 'User %s' % username
在这个示例中,<username>
占位符指定了路由规则。这个规则将匹配 /user
后面的任何字符串,并将其传递给 show_user_profile
方法。
路由规则是 Flask 应用程序中用于匹配 URL 的模式。Flask 使用 Werkzeug 路由模块来匹配 URL。
使用路由规则时,可以在 URL 中添加可变部分。这些可变部分可以包含动态内容,例如:
@app.route('/post/<int:post_id>')
def show_post(post_id):
return 'Post %d' % post_id
在这个示例中,<int:post_id>
占位符指定了路由规则。这个规则将匹配 /post
后面的一个整数,并将其传递给 show_post
方法。
Flask 提供了一个url_for()
函数,它可以通过视图函数的名称和所需的任意参数来反转 URL。例如:
from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def index():
pass
@app.route('/login')
def login():
pass
@app.route('/user/<username>')
def profile(username):
pass
with app.test_request_context():
print(url_for('index'))
print(url_for('login'))
print(url_for('login', next='/'))
print(url_for('profile', username='John Doe'))
在这个示例中,url_for()
函数使用视图函数的名称创建 URL。url_for()
同样可以接收任意数量的关键字参数,用于生成 URL 中的查询字符串。如果视图函数需要任意数量的关键字参数,这些参数也可以在 url_for()
中传递。
下面是一个 markdown 格式的示例,其中包含了生成动态 URL 的示例代码片段。
占位符指的是使用一对尖括号包裹的变量名称。在编写路由规则时,你可以通过添加占位符将变量传递到对应的视图函数中。例如:
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def show_user_profile(username):
return 'User %s' % username
在这个示例中,<username>
占位符指定了路由规则。这个规则将匹配 /user
后面的任何字符串,并将其传递给 show_user_profile
方法。
路由规则是 Flask 应用程序中用于匹配 URL 的模式。Flask 使用 Werkzeug 路由模块来匹配 URL。
使用路由规则时,可以在 URL 中添加可变部分。这些可变部分可以包含动态内容,例如:
@app.route('/post/<int:post_id>')
def show_post(post_id):
return 'Post %d' % post_id
在这个示例中,<int:post_id>
占位符指定了路由规则。这个规则将匹配 /post
后面的一个整数,并将其传递给 show_post
方法。
Flask 提供了一个url_for()
函数,它可以通过视图函数的名称和所需的任意参数来反转 URL。例如:
from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def index():
pass
@app.route('/login')
def login():
pass
@app.route('/user/<username>')
def profile(username):
pass
with app.test_request_context():
print(url_for('index'))
print(url_for('login'))
print(url_for('login', next='/'))
print(url_for('profile', username='John Doe'))
在这个示例中,url_for()
函数使用视图函数的名称创建 URL。url_for()
同样可以接收任意数量的关键字参数,用于生成 URL 中的查询字符串。如果视图函数需要任意数量的关键字参数,这些参数也可以在 url_for()
中传递。