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

Flask框架的简单了解

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

      • 1. 前言
      • 2. 简介
      • 3. 核心特点
      • 4. 代码实例
      • 5. 主要组成部分
      • 6. 适用场景
      • 7. 不适用场景
      • 8. 总结


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

在这里插入图片描述

1. 前言

个人理解:flask是一个轻量的web应用框架,可以用简短的代码实现一个简易的web服务,即创建一个可用路由地址访问的服务。

想要详细学习Flask框架的使用以及项目实战
可点击链接进行学习:FLASK 框架 (关于Flask框架的简单学习和项目实战)

2. 简介

Flask 是一个用 Python 编写的轻量级 Web 应用框架。它非常小巧灵活,被称为“微框架”,但可以通过扩展来增加各种强大功能。


3. 核心特点

  1. 轻量且简单:核心功能非常精简,没有默认使用的数据库、表单验证等组件。这让你可以自由选择最适合项目的工具,学习曲线平缓。
  2. 灵活自由:它不像一些“大而全”的框架(如 Django)有很强的约束和固定的项目结构。你可以按自己喜欢的方式组织代码,构建各种类型的应用,从简单的静态页面到复杂的 API 服务。
  3. 易于上手:只需几行代码就能快速启动一个 Web 服务器,看到效果,对新手非常友好。
  4. 强大的扩展生态:虽然核心简单,但社区提供了大量官方和第三方的扩展,可以像搭积木一样轻松地添加数据库集成、用户认证、表单处理、邮件发送等功能。

4. 代码实例

一个最简单的 Flask 应用

下面这个例子展示了 Flask 的核心魅力:简洁

# 导入 Flask 类
from flask import Flask# 创建 Flask 应用实例
app = Flask(__name__)# 定义路由和视图函数
@app.route('/')
def hello_world():return 'Hello, World!'# 运行应用
if __name__ == '__main__':app.run(debug=True)

解释一下这几行代码:

  1. app = Flask(__name__):创建一个 Flask 应用对象。
  2. @app.route('/'):这是一个装饰器。它告诉 Flask,当用户访问网站的根路径(即主页 www.yoursite.com/)时,应该执行哪个函数。
  3. def hello_world()::这就是视图函数。它处理请求并返回显示给用户的内容(这里返回一个简单的字符串)。
  4. app.run(debug=True):启动内置的开发服务器。debug=True 表示开启调试模式,代码修改后服务器会自动重启,方便开发。

将上面的代码保存为 app.py,然后在命令行运行 python app.py,你就拥有了一个运行在 http://127.0.0.1:5000/ 的网站!访问它,你就会看到 Hello, World!


5. 主要组成部分

  • 路由:将不同的 URL 映射到对应的处理函数上(例如,/users 对应显示用户列表的函数)。
  • 视图函数:处理请求并返回响应(可以是 HTML 网页、JSON 数据、重定向等)的函数。
  • Jinja2 模板引擎:Flask 内置的模板系统,可以让你在 HTML 中嵌入 Python 变量和逻辑,动态生成网页内容。
  • 请求和响应对象:方便地处理用户发来的数据(如表单数据)和构建返回给用户的响应。

6. 适用场景

  • 快速开发小型项目或原型:想法可以迅速落地。
  • 构建 RESTful API 服务:作为后端,为移动应用或前端框架(如 React, Vue)提供数据接口。这是 Flask 非常流行的用途。
  • 微服务架构:每个小服务都可以用一个轻量级的 Flask 应用来构建。
  • 学习 Web 开发:因为其简洁性,你可以清楚地理解 Web 框架的底层原理(如路由、请求/响应循环)。

7. 不适用场景

  • 超大型、复杂的项目:过多的自由度和灵活性在大型项目中可能反而成为劣势,导致结构混乱。这种情况下,约定优于配置的 Django 可能更合适。
  • 需要“开箱即用”全套功能:如果你希望框架自带后台管理、用户认证、ORM 等所有功能,那 Flask 需要你花时间选择和集成扩展,而 Django 则直接提供了这些。

8. 总结

Flask 就像一个工具箱,而不是一个成品家具。它给你提供了最基础、最核心的工具(路由、模板等),然后让你根据自己的具体需求,自由地挑选和组合其他工具(扩展)来建造你想要的东西。

对于想要灵活、可控且快速入门 Python Web 开发的开发者来说,Flask 是一个绝佳的选择。


📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇


文章转载自:

http://FvFGYW07.nydtt.cn
http://0rBnddWG.nydtt.cn
http://27ezpxpl.nydtt.cn
http://l13jCXkm.nydtt.cn
http://auwfX97C.nydtt.cn
http://4DLkwmce.nydtt.cn
http://UT6mi3Tl.nydtt.cn
http://QuLi25cy.nydtt.cn
http://aTSkDF7A.nydtt.cn
http://KCaxYavZ.nydtt.cn
http://VDMIoHVK.nydtt.cn
http://OrUe1sE9.nydtt.cn
http://fElDm4vC.nydtt.cn
http://a0CDcjvn.nydtt.cn
http://40xJ5o0T.nydtt.cn
http://rXf4oMe5.nydtt.cn
http://z3SxpBZv.nydtt.cn
http://0fEA4fbs.nydtt.cn
http://pewyiiZq.nydtt.cn
http://C8jy5mXU.nydtt.cn
http://tKeSXGiR.nydtt.cn
http://tp4l0KBC.nydtt.cn
http://hUM4yzx5.nydtt.cn
http://6YDfhksj.nydtt.cn
http://2hmQTsN3.nydtt.cn
http://sYAsi977.nydtt.cn
http://HOpCkcnN.nydtt.cn
http://8SNWjb52.nydtt.cn
http://yXbNybTP.nydtt.cn
http://fHYVoxOq.nydtt.cn
http://www.dtcms.com/a/385477.html

相关文章:

  • 高性能代码优化实战与解析
  • 企业即时通讯保障企业通讯安全,提升企业部门协作效率
  • 在亚洲市场:为何CES Asia无法被复制?
  • 【cpp Trip第2站】map,set,hash
  • 菊风携手东莞银行,推进金融信创国产化进程
  • 内部类的用法
  • 设计模式(C++)详解—适配器模式(2)
  • 6.Cesium 学习
  • 拉氏变换的 s 域微分性质
  • 掌握Scrapy数据建模与请求技巧
  • LLaMA Factory微调记录(重修版)
  • JAVA开发面试题
  • 逆向国内外社媒电商爬虫算法思路
  • 中山AI搜索优化公司:AI时代GEO技术全解析
  • PostgreSQL GIN 索引揭秘
  • 老鸟对单片机全局变量常用用法(读写在2个独立函数中)
  • 大前端社交应用中 AI 驱动的内容审核与反垃圾信息机制
  • MP3的ID3信息简介及其如何解析
  • MyBatis-Plus 扩展全局方法
  • java中的泛型
  • 使用 AWS Comprehend 综合指南
  • 使用秩和比拟解决非独立同分布情况下的投毒攻击
  • 七、vue3后台项目系列——包装scss、全句变量scss与导入
  • 煤矿山井下绝绝缘监测故障定位
  • 海外分部人员OA请假申请时长为0
  • MySQL --JDBC
  • python使用pyodbc通过不同认证方式连接sqlserver数据源
  • java通过线程池加CompletableFuture实现批量异步处理
  • Coze源码分析-资源库-创建知识库-后端源码-详细流程梳理
  • 极简版 Nginx 反向代理实验步骤