flask入门

发布于:2025-05-31 ⋅ 阅读:(19) ⋅ 点赞:(0)

第一部分:Flask Web 应用基础

1. 启动空的Flask服务器
  • 状态: 初始启动的Flask服务器(app.run())没有任何视图函数和路由,基本无用。

  • 目标: 编写业务逻辑需要定义视图函数。

2. 定义视图函数 (View Function)
  • 基本结构: 使用Python的def关键字定义一个普通函数,例如 def hello():

  • 返回值: 视图函数通常返回一个字符串(例如"Hello, 七月")。

  • 调用方式:

    • 普通Python函数: 直接 hello() 调用。

    • Web应用: 通过浏览器发送HTTP请求来访问。

3. 路由 (Routing)
  • 作用: 将HTTP请求(URL路径)映射到对应的视图函数。

  • 注册路由方式(推荐):

    • 使用@app.route() 装饰器。

    • 示例:

      from flask import Flask
      app = Flask(__name__)
      
      @app.route("/hello")
      def hello():
          return "Hello, 七月"
      
      if __name__ == '__main__':
          app.run()
      
  • 访问:

    • 启动服务器:python your_file.py

    • 浏览器访问:http://127.0.0.1:5000/ (会提示 Not Found,因为根路径未注册)

    • 浏览器访问:http://127.0.0.1:5000/hello (成功显示 Hello, 七月)

4. Flask 中的 MVC 概念
  • Controller (控制器): 在Flask中,视图函数(如 hello())本质上就是MVC模式中的控制器。

  • 命名: Flask将其称为“视图函数”,因为它负责控制视图(View),但其核心作用是处理业务逻辑。

5. 类视图 (Class-Based Views / Plug-in Views)
  • 优势:

    • 符合面向对象编程,便于代码复用(通过继承)。

    • 函数无法继承,类可以。

  • 说明: 不是本课程重点,有兴趣可自行了解。

第二部分:URL 兼容性与路由原理

1. URL 兼容性 (Trailing Slash)
  • 问题: 默认情况下,/hello/hello/ 可能被视为不同的URL,导致访问 /hello/ 时出现 Not Found

  • 解决方法:@app.route 装饰器中,为路径末尾添加斜杠,例如 @app.route("/hello/")

    • 效果: 这样配置后,http://127.0.0.1:5000/hellohttp://127.0.0.1:5000/hello/ 都可以访问。

  • 注意: 修改代码后需要手动重启服务器才能生效(Python与PHP不同)。

2. 重定向 (Redirection) 原理

网站公告

今日签到

点亮在社区的每一天
去签到