《每天5分钟用Flask搭建一个管理系统》第3章:路由与视图

第3章:路由与视图

3.1 路由的定义和作用

路由是URL到视图函数的映射。在Flask中,路由定义了当用户访问特定URL时应该调用哪个函数来处理请求。

示例代码:定义路由

python 复制代码
from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Welcome to the Home Page!'

在这个例子中,@app.route('/')装饰器定义了一个路由,当用户访问网站的根URL时,将调用home函数。

3.2 视图函数的编写

视图函数是处理请求并返回响应的函数。它们通常接收请求对象作为第一个参数,但也可以不使用。

示例代码:编写视图函数

python 复制代码
@app.route('/about')
def about():
    return 'This is the About Page.'
3.3 URL规则和动态路由

URL规则可以包含变量部分,使得路由可以匹配多种URL模式。

示例代码:动态路由

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

在这个例子中,<username>是一个变量,可以匹配任何字符,直到下一个斜杠。

3.4 HTTP方法的处理

视图函数可以处理不同的HTTP方法,如GET、POST、PUT等。

示例代码:处理HTTP方法

python 复制代码
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        return do_the_login()
    else:
        return show_the_login_form()

在这个例子中,login视图函数可以处理GET请求来显示登录表单,以及POST请求来执行登录。

3.5 路由的高级特性

Flask的路由系统还支持一些高级特性,如路由的合并、转换和保护。

示例代码:使用methodssubdomain参数

python 复制代码
@app.route('/api/data', methods=['GET', 'POST'], subdomain='api')
def api_data():
    if request.method == 'POST':
        return process_data()
    else:
        return get_data()

在这个例子中,路由仅在子域名api上有效,并且可以处理GET和POST请求。

3.6 错误处理

Flask允许你定义错误处理视图,来捕获和处理特定的错误。

示例代码:定义错误处理视图

python 复制代码
@app.errorhandler(404)
def page_not_found(error):
    return 'This page does not exist', 404
3.7 总结

本章介绍了Flask中的路由和视图,包括如何定义路由、编写视图函数、使用动态路由和处理HTTP方法。

相关推荐
92year3 小时前
用Google ADK从零搭一个能调工具的AI Agent:Python实操全过程
python·ai·mcp
woxihuan1234564 小时前
SQL删除数据时存在依赖关系_设置外键级联删除ON DELETE
jvm·数据库·python
Jetev4 小时前
如何确定SQL字段是否为空_使用IS NULL与IS NOT NULL
jvm·数据库·python
蛐蛐蛐4 小时前
昇腾910B4上安装新版本CANN的正确流程
人工智能·python·昇腾
m0_702036534 小时前
mysql如何处理不走索引的OR查询_使用UNION ALL优化重写
jvm·数据库·python
庞轩px4 小时前
第七篇:Spring扩展点——如何优雅地介入Bean的创建流程
java·后端·spring·bean·aware·扩展点
ltl4 小时前
Q/K/V 三件套:把 Bahdanau 抽象成一个公式
后端
2401_846339565 小时前
MySQL在云环境如何选择存储类型_SSD与高性能云盘配置建议
jvm·数据库·python
2601_957780845 小时前
Claude 4.6 对阵 GPT-5.4:2026 开发者大模型 API 选型深度解析
人工智能·python·gpt·ai·claude
2601_957780845 小时前
GPT-5.5 深度解析:2026年4月OpenAI旗舰模型的技术跨越与商业决策指南
大数据·人工智能·python·gpt·openai