Flask URL 映射与视图函数示例

falsk基础

Posted by Carlos on February 15, 2023

Flask URL 映射与视图函数示例

引言: 在 Flask 中,URL 映射是构建 Web 应用程序的重要概念之一。通过定义 URL 路径与对应的视图函数,我们可以实现请求的分发和处理。本篇博客将列举常见的 URL 映射关系,并为每种情况提供具体的视图函数示例。

一、基本路由映射

  1. GET 请求:

    • 示例:

      1
      2
      3
      
      @app.route('/', methods=['GET'])
      def index():
          return 'Hello, World!'
      
  2. POST 请求:

    • 示例:

      1
      2
      3
      4
      
      @app.route('/submit', methods=['POST'])
      def submit_form():
          # 处理表单提交
          return 'Form submitted successfully!'
      
  3. 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."
      
  4. 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. 动态路径参数:

    • 示例:

      1
      2
      3
      4
      
      @app.route('/user/<username>', methods=['GET'])
      def get_user_profile(username):
          # 获取指定用户名的用户信息
          return f"Profile of user: {username}"
      
  2. 多个动态路径参数:

    • 示例:

      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. 静态路径:

    • 示例:

      1
      2
      3
      4
      
      @app.route('/about', methods=['GET'])
      def about():
          # 返回关于页面
          return 'This is the about page.'
      
  2. 带扩展名的静态路径:

    • 示例:

      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 构建

  1. 生成 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 开发中有所帮助!