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

【Python小知识】-Python Flask 框架入门教程

Python Flask 框架入门教程

一、Flask 简介

Flask 是一个轻量级的 Python Web 框架,以简洁灵活著称,适合快速开发各类 Web 应用。它提供了核心的路由、模板渲染等功能,同时支持通过扩展库丰富应用能力,如数据库集成、表单处理等。

二、项目初始化

1. 创建项目目录

打开终端,执行以下命令创建项目文件夹并进入:

mkdirflask_demo&&cdflask_demo

2. 安装 Flask

使用 Python 包管理工具 pip 安装 Flask:

pipinstallflask

安装完成后,终端会提示安装成功信息。

3. 创建入口文件

在项目目录中新建app.py文件,作为 Flask 应用的主入口。

三、编写基础应用

1. 最小化应用代码

app.py中写入以下代码,实现一个最基础的 Flask 应用:

fromflaskimportFlask app=Flask(__name__)# 初始化 Flask 实例@app.route('/')# 定义根路由defindex():return"Hello, Flask!"# 返回响应内容if__name__=='__main__':app.run(debug=True)# 启动开发服务器,开启调试模式

2. 运行应用

在终端执行:

python app.py

打开浏览器访问http://127.0.0.1:5000,即可看到页面显示Hello, Flask!

四、路由与动态参数

1. 基础路由配置

通过@app.route('/路径')装饰器,可以定义不同的 URL 路由。例如,添加关于页面路由:

@app.route('/about')defabout():return"关于我们"

访问http://127.0.0.1:5000/about即可查看关于页面内容。

2. 动态参数传递

Flask 支持在路由中传递动态参数,并支持类型限制,如intstringpath等。示例代码如下:

@app.route('/user/<string:username>')defuser_profile(username):returnf"用户:{username}"

访问http://127.0.0.1:5000/user/张三,页面将显示用户:张三

五、模板渲染

1. 创建模板目录

在项目根目录下新建templates文件夹,用于存放 HTML 模板文件。

2. 编写 HTML 模板

templates目录中新建index.html文件,编写简单的动态模板:

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>Flask 模板示例</title></head><body><h1>欢迎访问,{{ name }}!</h1></body></html>

3. 渲染模板

修改app.py中的根路由函数,使用render_template方法加载模板并传递参数:

fromflaskimportrender_template@app.route('/')defindex():returnrender_template('index.html',name="Flask 用户")

重新运行应用,访问根路由即可看到动态渲染的页面。

六、扩展功能

1. 静态文件管理

在项目根目录下新建static文件夹,用于存放 CSS、JavaScript、图片等静态资源。在 HTML 模板中,可通过url_for函数引用静态文件:

<linkrel="stylesheet"href="{{ url_for('static', filename='style.css') }}">

2. 数据库集成

Flask 本身不包含数据库功能,但可通过扩展库Flask-SQLAlchemy实现数据库操作。安装命令如下:

pipinstallflask-sqlalchemy

安装后可在应用中配置数据库连接,并定义数据模型进行增删改查操作。

七、总结

Flask 框架的基础使用方法,包括项目搭建、路由配置、模板渲染等核心功能。后续可根据需求深入学习表单处理、用户认证、API 开发等高级特性,构建更复杂的 Web 应用。

参考链接​:[Flask 官方文档](https://flask.palletsprojects.com/

http://www.jsqmd.com/news/313442/

相关文章:

  • 破局多系统兼容难题 应急指挥车筑牢现场救援 “中枢防线”
  • 吐血推荐!自考必用AI论文软件TOP10深度测评
  • 解决qspi-flash驱动直接地址读模式只能访问默认16MB以内的问题
  • 完整教程:深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
  • 数码潮玩商城众筹社区交流平台小程序 安卓
  • Instagram被shadowban限流?2026最新触发原因+有效解决方法
  • 【LangChain】—— History模块使用
  • 7-14 WPS JS宏 class、constructor用class 构造自定义类-3
  • 寒假学习记录2
  • 2026最新智慧公厕、智慧厕所、智能公厕、公厕除臭、公共卫生间除臭厂商盘点
  • WebP 转 PNG 的常见需求与一种更省心的在线解决方案
  • MySQL:基础操作(增删查改) - 教程
  • 冷凝水,才是宠物空调设计里最危险的隐形杀手
  • 液相安全盖采购全攻略:知名品牌、实力厂家与口碑推荐大盘点
  • linux环境下sftp配置只可上传不可下载实验2
  • Claude Code的完美平替:OpenCode #x2B; GitHub Copilot
  • ‌为什么你的测试总在“环境配置”上浪费时间?
  • TestOps实战:如何让测试不再“事后补救”
  • 我在菏泽小城做AI测试:一个非985人的突围实录
  • 做了 8 年前端开发,35 岁的我突然没人要了
  • ‌从被裁员到被挖角:我的AI转型日记
  • Transformer 大模型架构深度解析(4)详解 Transformer 架构
  • 2026养发加盟新趋势:如何选择靠谱品牌?
  • TDengine 脱敏函数用户手册
  • 2026国内最新汽车胶公司top5推荐!优质高端定制/防水型汽车胶厂商权威榜单发布,技术创新与品质保障助力汽车制造升级
  • 用 Java 搞 AI:自主开发 + 生态复用才是长期竞争力
  • 浮点数在内存中的存储
  • Java 企业 AI 转型:大模型多端接入与落地实践
  • Pipelined ADC流水线模数转换器的工作原理
  • 如何在Android上恢复已删除的文件