Flask是一个轻量级的Python Web框架,其核心功能之一是处理HTTP路由。通过路由装饰器和动态URL参数解析,Flask可以轻松地将URL映射到视图函数,实现灵活的Web应用开发。
路由装饰器
Flask使用装饰器@app.route()来定义路由。装饰器将URL路径与视图函数关联起来,当用户访问指定路径时,Flask会自动调用对应的视图函数。例如:
python复制代码
from flask import Flask |
|
app = Flask(__name__) |
|
@app.route('/') |
|
def home(): |
|
return "Welcome to the Home Page!" |
|
@app.route('/about') |
|
def about(): |
|
return "This is the About Page." |
在上述代码中,/路径映射到home()函数,/about路径映射到about()函数。
动态URL参数解析
Flask支持动态URL参数,允许在URL中嵌入变量,并在视图函数中解析这些变量。动态参数通过尖括号<parameter>定义,并在视图函数中作为参数接收。例如:
python复制代码
@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 ID: {post_id}" |
- <username>:定义了一个字符串类型的动态参数username,例如访问/user/john时,john会被传递给show_user_profile()函数。
- <int:post_id>:定义了一个整数类型的动态参数post_id,Flask会自动将URL中的值转换为整数。例如访问/post/42时,42会被转换为整数并传递给show_post()函数。
Flask支持多种数据类型的动态参数,包括string(默认)、int、float和path(类似string,但允许斜杠)。
通过路由装饰器和动态URL参数解析,Flask提供了简洁而强大的路由机制,使得开发者能够快速构建灵活的Web应用。结合视图函数中的逻辑处理,Flask可以轻松实现从简单页面到复杂API的各种功能。