Flask URL 映射与视图函数示例
引言: 在 Flask 中,URL 映射是构建 Web 应用程序的重要概念之一。通过定义 URL 路径与对应的视图函数,我们可以实现请求的分发和处理。本篇博客将列举常见的 URL 映射关系,并为每种情况提供具体的视图函数示例。
一、基本路由映射
-
GET 请求:
-
示例:
1 2 3
@app.route('/', methods=['GET']) def index(): return 'Hello, World!'
-
-
POST 请求:
-
示例:
1 2 3 4
@app.route('/submit', methods=['POST']) def submit_form(): # 处理表单提交 return 'Form submitted successfully!'
-
-
DELETE 请求:
-
示例:
1 2 3 4
@app.route('/user/<user_id>', methods=['DELETE']) def delete_user(user_id): # 删除指定用户 return f"User {user_id} has been deleted."
-
-
PUT 请求:
-
示例:
1 2 3 4
@app.route('/user/<user_id>', methods=['PUT']) def update_user(user_id): # 更新指定用户信息 return f"User {user_id} has been updated."
-
二、动态路由映射
-
动态路径参数:
-
示例:
1 2 3 4
@app.route('/user/<username>', methods=['GET']) def get_user_profile(username): # 获取指定用户名的用户信息 return f"Profile of user: {username}"
-
-
多个动态路径参数:
-
示例:
1 2 3 4
@app.route('/category/<category_id>/article/<article_id>', methods=['GET']) def get_article(category_id, article_id): # 获取指定分类和文章的详细内容 return f"Category: {category_id}, Article: {article_id}"
-
三、静态路由映射
-
静态路径:
-
示例:
1 2 3 4
@app.route('/about', methods=['GET']) def about(): # 返回关于页面 return 'This is the about page.'
-
-
带扩展名的静态路径:
-
示例:
1 2 3 4
@app.route('/image/tp_look', methods=['GET']) def get_logo_template(): # 返回网站logo图片 注意返回的命名一定要是”static“ return render_template('index.html', image_url='/static/tp1.png')
-
四、URL 构建
-
生成 URL:
-
示例:
1 2 3 4
@app.route('/product/<int:product_id>', methods=['GET']) def product_detail(product_id): url = url_for('product_detail', product_id=product_id) return f"Product URL: {url}"
-
总结: 本篇博客列举了 Flask 中常见的 URL 映射关系,包括 GET、POST、DELETE、PUT 请求,动态路由和静态路由等。每种情况都提供了具体的视图函数示例,以便读者理解和应用。通过灵活使用 Flask 的 URL 映射功能,您可以构建出功能丰富、易于扩展的 Web 应用程序。希望这篇博客对您在 Flask 开发中有所帮助!