当前位置: 首页 > news >正文

flask入门

第一部分: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) 原理
http://www.xdnf.cn/news/724933.html

相关文章:

  • 响应式系统与Spring Boot响应式应用开发
  • 英语复习笔记 2
  • PHP7+MySQL5.6 查立得源码授权系统DNS验证版
  • 【算法提升】分组 day_tow
  • React-props
  • CppCon 2014 学习:Lock-Free Programming
  • 企业级安全实践:SSL/TLS 加密与权限管理(一)
  • 智绅科技——科技赋能健康养老,构建智慧晚年新生态
  • 研华工控机安装Windows10系统,适用UEFI(GPT)格式安装
  • 图解gpt之注意力机制原理与应用
  • 专业级图片分割解决方案
  • 火狐安装自动录制表单教程——仙盟自动化运营大衍灵机——仙盟创梦IDE
  • SpringBoot整合Sa-Token实现RBAC权限模型的过程解析
  • 使用 `\033` 方式设置终端字体颜色
  • .NET 查找 DLL 的路径顺序
  • 【图像处理基石】如何进行图像畸变校正?
  • vb.net oledb-Access 数据库本身不支持命名参数,赋值必须和参数顺序一致才行
  • 华为OD机试_2025 B卷_数组组成的最小数字(Python,100分)(附详细解题思路)
  • 联邦学习常见问题
  • 动手学深度学习pytorch学习笔记 —— 第五章
  • 《算力觉醒!ONNX Runtime + DirectML如何点燃Windows ARM设备的AI引擎》
  • AtCoder Beginner Contest 407 E - Most Valuable Parentheses
  • Linux服务器运维10个基础命令
  • WEB3——什么是ABI
  • 包管理工具
  • RocketMQ 死信队列(DLQ)实战:原理 + 开发 + 运维 + 架构应用指南
  • 云原生 Cloud Native Build (CNB)使用初体验
  • 相机--RGBD相机
  • 移动安全Android——客户端数据安全
  • 英语中最难学的部分是时态‌