基本路由
在 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