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

python中的flask框架

Flask 是一个用Python编写的轻量级Web应用框架

基于WSGI和Jinja2模板引擎

被称为“微框架”,其核心功能简单,不捆绑数据库管理、表单验证等功能,而是通过扩展来增加其他功能

Flask提供最基本的功能,不强制使用特定工具或库

通过插件和扩展来添加功能,如表单处理、数据库交互等

通过创建Flask对象来初始化应用

将URL映射到视图函数,处理请求并返回响应

使用Jinja2模板引擎渲染HTML页面,支持多种HTTP方法

通过创建Flask对象来初始化应用

Flask基于Werkzeug WSGI工具包和Jinja2模板引擎构建。

Werkzeug为Flask提供了请求和响应处理、路由匹配等基础功能,是Flask处理HTTP请求的底层支撑

 Jinja2则用于模板渲染,可以方便地生成动态HTML页面,实现数据与视图的分离。

Flask 框架

使用pip可以方便快捷地安装 Flask

pip install flask
from flask import Flask# 创建 Flask 应用实例
app = Flask(__name__)# 定义路由和视图函数
@app.route('/')
def hello_world():return 'Hello, World!'# 启动应用
if __name__ == '__main__':app.run(debug=True)
导入 Flask 类:从 flask 模块中导入 Flask 类,用于创建 Flask 应用实例。

app = Flask(__name__) 创建了一个 Flask 应用实例,__name__ 是 Python 的内置变量,表示当前模块的名称。

使用 @app.route('/') 装饰器定义了一个路由,当用户访问根路径 / 时,会调用 hello_world 函数,该函数返回一个简单的字符串 'Hello, World!'

app.run(debug=True) 启动应用,debug=True 开启调试模式,方便在开发过程中调试代码,当代码发生变化时,服务器会自动重启。

Flask 使用装饰器来定义路由,允许URL路径映射到对应的视图函数。

@app.route('/about')
def about():return 'This is the about page.'

定义了一个 /about 的路由,当用户访问该路径时,会返回 'This is the about page.'。Flask 还支持动态路由

@app.route('/user/<username>')
def show_user_profile(username):return f'User {username}'

<username> 是一个动态参数,用户访问 /user/john 时,username 的值会被设置为 'john',并传递给 show_user_profile 函数。

Flask 提供了 request 对象来处理客户端的请求信息,如获取请求参数、请求方法等,使用 Response 对象来返回响应给客户端。

from flask import request@app.route('/login', methods=['POST'])
def login():username = request.form.get('username')password = request.form.get('password')# 处理登录逻辑return 'Login successful'

使用 methods=['POST'] 指定该路由只接受 POST 请求,通过 request.form.get() 方法获取表单数据。

Flask 默认使用 Jinja2 模板引擎,允许开发者将动态数据与 HTML 模板结合生成动态页面。创建一个 templates 文件夹,在其中创建 index.html 模板文件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>{{ title }}</title>
</head>
<body><h1>{{ message }}</h1>
</body>
</html>

在 Python 代码中使用 render_template 函数渲染模板

from flask import render_template@app.route('/template')
def template_demo():return render_template('index.html', title='Template Demo', message='This is a template example.')

render_template 函数会将 titlemessage 变量传递给模板文件,替换模板中的 { { title }}{ { message }} 占位符。

Flask 易于上手和快速搭建,适合在项目初期进行快速原型开发,验证项目的可行性和功能需求。开发者可以在短时间内搭建起一个简单的 Web 应用,展示项目的基本功能,为后续的开发提供基础。

对于一些功能简单、规模较小的 Web 应用,如小型企业网站等,Flask 的轻量级特性可以满足需求,并且易于维护。可以根据项目的实际情况选择合适的第三方库,快速完成项目的开发。

Flask 可以方便地创建 RESTful API,结合 JSON 数据格式,为前端应用或其他服务提供数据接口。

from flask import jsonify@app.route('/api/data')
def api_data():data = {'name': 'John', 'age': 30}return jsonify(data)

使用 jsonify 函数将 Python 字典转换为 JSON 格式的响应,方便前端应用或其他服务进行数据交互。

Flask 有丰富的扩展库,可Flask - SQLAlchemy 用于数据库操作,Flask - Login 用于用户认证,Flask - WTF 用于表单处理等。

http://www.lryc.cn/news/533416.html

相关文章:

  • 【redis】缓存设计规范
  • 归一化与伪彩:LabVIEW图像处理的区别
  • DeepSeek大模型本地部署实战
  • deepseek+kimi自动生成ppt
  • 集成SwanLab与HuggingFace TRL:跟踪与优化强化学习实验
  • cefsharp131升级132测试(WinForms.NETCore)
  • Gitee AI上线:开启免费DeepSeek模型新时代
  • nginx常用命令及补充
  • 自动驾驶---聊聊传统规控和端到端
  • node.js + html + Sealos容器云 搭建简易多人实时聊天室demo 带源码
  • OpenFeign远程调用返回的是List<T>类型的数据
  • PCL 计算多边形的面积【2025最新版】
  • 著名大模型评测榜单(不同评测方式)
  • 国内知名Deepseek培训师培训讲师唐兴通老师讲授AI人工智能大模型实践应用
  • 【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用
  • 如何打造一个更友好的网站结构?
  • 【ROS2】RViz2自定义面板插件(rviz_common::Panel)的详细步骤
  • 漏洞分析 Spring Framework路径遍历漏洞(CVE-2024-38816)
  • 《手札·避坑篇》2025年传统制造业企业数字化转型指南
  • MySQL中DDL操作是否支持事务
  • GWO优化决策树回归预测matlab
  • 掌握Spring @SessionAttribute:跨请求数据共享的艺术
  • python读取Excel表格内公式的值
  • 第三十八章:阳江自驾之旅:挖蟹与品鲜
  • C++小等于的所有奇数和=最大奇数除2加1的平方。
  • 设置IDEA的内存大小,让IDEA更流畅: 建议设置在 2048 MB 及以上
  • Ranger Hive Service连接测试失败问题解决
  • 车机音频参数下发流程
  • 大模型推理——MLA实现方案
  • redis之GEO 模块