Flask框架01初始了解

Flask框架01初始了解
Flask概念flask是一个轻量级别的python web程序主要的特点就是简单灵活能够快速的上手构建一个web应用同时具备扩展到复杂项目的能力Flask 是基于 Python 开发的微型 Web 框架被称作微框架核心原因是本身不绑定任何专用工具与依赖库原生不内置数据库抽象层、表单验证等通用 Web 组件。Flask 具备良好的扩展支持能力可按需额外加装功能插件目前已有 ORM 对象关系映射、表单校验、文件上传、开放认证及各类配套开发工具的成熟扩展能按需补齐项目所需功能flask是什么Flask 是一个 WSGIWeb Server Gateway Interface Web 应用框架WSGI 是 Python 定义的一套标准接口规定了 Web 服务器如何与 Python Web 应用通信你可以把它理解为 Python Web 世界的「通用插座」依赖库作用你在什么时候会接触到它WerkzeugWSGI 工具库负责 HTTP 请求解析、响应封装、URL 路由匹配处理请求request、返回响应response时底层都是 Werkzeug 在工作Jinja2模板引擎负责将数据渲染为 HTML 页面使用render_template()生成动态页面时Click命令行工具框架提供 flask 终端命令运行flask run、自定义 CLI 命令时itsdangerous数据签名库确保数据完整性不被篡改Session Cookie 的签名验证blinker信号机制允许在特定事件发生时触发回调在特定事件发生时触发回调flask设计哲学微框架不微能力flask核心非常的精简但通过丰富的扩展生态几乎满足任何需求不强制使用特定的数据库表单库或者项目结构开发者自己选择最适合的工具这种设计意味着小型项目不会被框架拖累大型项目可以按需组装显式优于隐式与一些「全家桶」框架不同Flask 不会偷偷帮你做很多事。每个功能都需要你明确地引入和配置这在初学时可能需要多写几行代码但换来的是对项目的完全掌控如果你之前接触过 Django可能会觉得 Flask「什么都要自己来」。这恰恰是 Flask 的设计意图让你清楚地知道每个功能从何而来。flask特点轻量级和简洁Flask 是一个微框架提供了最基本的功能不强制使用任何特定的工具或库。它的核心是简单而灵活的允许开发者根据需要添加功能。灵活性Flask 提供了基本的框架结构但没有强制性的项目布局或组件开发者可以根据自己的需求自定义。可扩展性Flask 的设计允许你通过插件和扩展来添加功能。许多常见的功能如表单处理、数据库交互和用户认证都可以通过社区提供的扩展来实现。内置开发服务器Flask 内置了一个开发服务器方便在本地进行调试和测试。RESTful 支持Flask 支持 RESTful API 的开发适合构建现代的 Web 服务和应用程序。flask适用场景小型项目对于小型的个人项目或初创项目Flask 的简单性和灵活性可以快速启动和迭代。原型开发在产品开发的早期阶段Flask 可以用来快速构建原型验证概念和用户界面。微服务在微服务架构中Flask 可以用来构建独立的、轻量级的服务组件。API 开发Flask 非常适合开发 RESTful API因为它的路由系统简单明了可以轻松地定义 API 端点。教育和学习由于其易用性Flask 是学习 Web 开发和 Python 编程的优秀工具。内部工具Flask 可以用于开发公司内部使用的工具或仪表板这些工具通常不需要复杂的用户界面。插件或扩展Flask 可以作为其他大型框架的插件或扩展提供特定的功能。定制 Web 应用对于需要高度定制的 Web 应用Flask 提供了足够的灵活性来满足特定需求。数据可视化Flask 可以与数据可视化库如 Bokeh 或 Plotly结合使用创建交互式的数据可视化 Web 应用。科学计算和数据分析Flask 可以与科学计算库如 NumPy、Pandas结合用于开发数据分析和科学计算的 Web 应用。轻量级 CMSFlask 可以用来构建轻量级的内容管理系统尤其是当需要高度定制化时。Web ScrapingFlask 可以作为 Web Scraping 项目的后端处理数据抓取和 API 请求。flask组成Flask 应用实例Flask 的核心是应用实例通过创建 Flask 对象来初始化应用。路由和视图函数路由将 URL 映射到视图函数视图函数处理请求并返回响应。模板系统Flask 使用 Jinja2 模板引擎来渲染 HTML 页面将数据动态插入到页面中。请求和响应Flask 处理 HTTP 请求并生成响应支持多种 HTTP 方法如 GET、POST。技术栈全景图项目目录结构Flask环境搭建创建Flask项目安装flask包pip安装第一个flask项目# 从这个flask包中导入Flask模块 from flask import Flask # 创建实例对象在模块运行的时候是__main__,在被其他模块导入是是模块的名字也就是该文件的名字 app Flask(__name__) # 是一个装饰器告诉flask哪个url应该触发下面的函数符合路径的话函数是自动调用的 app.route(/) def shouye(): # 视图函数 return hello world # 返回到浏览器上面的 # 条件判断用于检查这个模块是否被直接运行而不是被其他模块导入的 if __name__ __main__: app.run(debugTrue) # 调用flask实例的run方法启动flask内置的开发服务器 # debugTrue 就是会开启调试模式改变代码的话自动重新加载venv和原生解释器每次创建一个项目的时候选择venv而不是选择原生的python解释器venv就是一个独立的环境多个venv的话是互不干扰的比如2个项目所需要的flask模块版本不一样因此的话如果我们使用原生的解释器的话需要频繁的安装和卸载非常的麻烦如果使用venv2个项目2个不同的虚拟环境(venv),开发哪一个项目的时候就选择即可非常的方便安装的一些包模块都是安装在venv上面的不会影响本地的Flask基本概念