以下是一些关于 Flask URL 构建的基本概念:
基本用法
from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def home():
return 'Home Page'
@app.route('/about')
def about():
return 'About Page'
with app.test_request_context():
print(url_for('home')) # 输出:/
print(url_for('about')) # 输出:/about
在这个例子中,url_for 函数接受一个视图函数的名称作为参数,然后生成相应的 URL。在 test_request_context 上下文中,你可以调用 url_for 而不需要真正地执行请求。
带变量的 URL
如果路由中包含变量规则,你可以通过传递参数给 url_for 函数来构建带有变量的 URL。例如:
from flask import Flask, url_for
app = Flask(__name__)
@app.route('/user/<username>')
def show_user_profile(username):
return f'User {username}'
with app.test_request_context():
print(url_for('show_user_profile', username='john')) # 输出:/user/john
在这个例子中,url_for 的第一个参数是视图函数的名称,第二个参数是路由中定义的变量,即 username。
重定向
url_for 还可用于执行重定向。例如,如果你的应用有一个名为 login 的视图函数,你可以在另一个视图函数中使用 url_for 来执行重定向:
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/login')
def login():
return 'Login Page'
@app.route('/redirect')
def perform_redirect():
# 重定向到登录页面
return redirect(url_for('login'))
在这个例子中,perform_redirect 视图函数返回一个重定向,将用户导向登录页面。
这些是 Flask 中使用 url_for 构建 URL 的基本概念。通过使用 url_for,你可以确保你的应用在更改路由时仍然能够正确生成 URL,而不必手动硬编码路径。
转载请注明出处:http://www.zyzy.cn/article/detail/7301/Flask