在 Flask 中,路由是用于将 URL 映射到相应的视图函数的机制。通过定义路由,你可以告诉 Flask 在用户访问特定的 URL 时执行哪个函数。以下是一些关于 Flask 路由的基本概念:

基本路由

在 Flask 中,通过使用 @app.route() 装饰器来定义路由。下面是一个简单的示例:
from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, World!'

在这个例子中,@app.route('/') 指定了根路径 / 对应的视图函数是 home()。当用户访问应用的根路径时,将执行 home() 函数并返回 "Hello, World!"。

动态路由

你还可以定义带有变量的动态路由,这使得你可以捕获 URL 中的特定值。例如:
from flask import Flask

app = Flask(__name__)

@app.route('/user/<username>')
def show_user_profile(username):
    return f'User {username}'

在这个例子中,<username> 是一个动态变量,它会捕获 URL 中的任何值,并将其传递给 show_user_profile 函数。例如,如果用户访问 /user/john,则 username 将是 "john"。

请求方法

路由可以指定处理的请求方法,常见的方法包括 GET 和 POST。默认情况下,路由处理 GET 请求。如果需要处理其他请求方法,可以使用 methods 参数:
from flask import Flask, request

app = Flask(__name__)

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        # 处理登录请求
        return 'Login successful!'
    else:
        return 'Please log in'

在这个例子中,/login 路由既可以处理 GET 请求,也可以处理 POST 请求。通过检查 request.method,你可以确定当前请求的方法。

URL 构建

Flask 提供了 url_for 函数,用于根据视图函数的名称生成 URL。这样,即使你更改了路由的实际路径,你的代码仍然可以正确生成 URL。
from flask import Flask, url_for

app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, World!'

@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。这在构建包含多个视图的应用时非常有用。

这些是 Flask 路由的基本概念。你可以根据你的项目需求定义更多的路由,并根据需要结合模板、表单等来构建完整的 Web 应用。


转载请注明出处:http://www.zyzy.cn/article/detail/7299/Flask