news 2026/5/30 2:46:55

Flask2入门开发详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flask2入门开发详解

Flask 是什么?

Flask 是一个轻量级的 Python Web 应用框架,基于Werkzeug WSGI 工具包Jinja2 模板引擎构建。它被设计为简单易用、灵活可扩展。

主要特点

1.轻量级和简洁

from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' if __name__ == '__main__': app.run()

只需几行代码就能创建一个 Web 应用!

2.灵活和可扩展

Flask 本身是"微型"框架,核心功能简单,但可以通过扩展添加功能:

  • Flask-SQLAlchemy:数据库 ORM

  • Flask-Login:用户认证

  • Flask-WTF:表单处理

  • Flask-RESTful:构建 REST API

3.内置开发服务器和调试器

app.run(debug=True, host='0.0.0.0', port=5000)

内置服务器方便开发调试。

核心组件

1.路由系统

@app.route('/user/<username>') def show_user(username): return f'User: {username}' @app.route('/post/<int:post_id>') def show_post(post_id): return f'Post: {post_id}'

支持变量规则和类型转换。

2.请求和响应处理

from flask import request, jsonify, make_response @app.route('/api/data', methods=['POST']) def receive_data(): data = request.json # 获取 JSON 数据 name = request.form.get('name') # 获取表单数据 # 返回 JSON 响应 return jsonify({'status': 'success', 'data': data}) # 自定义响应 @app.route('/custom') def custom_response(): response = make_response('Custom Response') response.headers['X-Custom-Header'] = 'Value' return response

3.会话和 Cookies

from flask import session, redirect, url_for app.secret_key = 'your-secret-key' # 必须设置密钥 @app.route('/login', methods=['POST']) def login(): session['username'] = request.form['username'] return redirect(url_for('dashboard')) @app.route('/logout') def logout(): session.pop('username', None) return redirect(url_for('index'))

项目结构示例

Flask主要文件:

from flask import Flask from exts import db import os from flask_jwt_extended import JWTManager from config import DevelopmentConfig from flask_cors import * base_dir=os.path.abspath(os.path.dirname(__file__)) app = Flask(__name__) CORS(app,supports_credentials=True,resources="/*") app.config.from_object(DevelopmentConfig) db.init_app(app) jwt=JWTManager(app) from apps.views.goods import goods_bp from apps.views.cates import cates_bp from apps.views.members import member_bp from apps.views.basic import basic_bp from apps.views.orders import order_bp app.register_blueprint(goods_bp, url_prefix='/goods') app.register_blueprint(cates_bp, url_prefix='/cates') app.register_blueprint(member_bp, url_prefix='/members') app.register_blueprint(basic_bp, url_prefix='/') app.register_blueprint(order_bp, url_prefix='/orders')

config.py为数据库配置文件,数据库默认采用mysql,exts.py采用模块化单例形式导入SQLAlchemy:

from flask_sqlalchemy import SQLAlchemy # from apps import app from config import DevelopmentConfig # app.config.from_object(DevelopmentConfig) # app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///'+os.path.join(base_dir,'data1.sqlite') # app.config["SQLALCHEMY_TRACK_MODIFICATIONS"]=False db=SQLAlchemy()

Flask 扩展推荐

扩展用途
Flask-SQLAlchemy数据库 ORM
Flask-Migrate数据库迁移
Flask-Login用户会话管理
Flask-WTF表单处理和安全
Flask-Mail电子邮件支持
Flask-RESTfulREST API 构建
Flask-CORS跨域资源共享

适用场景

  • RESTful API 开发

  • 微服务架构

  • 原型快速开发

  • 小型到中型 Web 应用

  • 教育项目和学习

优点

✅ 简单易学,入门门槛低
✅ 灵活,不强制项目结构
✅ 文档完善,社区活跃
✅ 易于测试和调试
✅ 丰富的扩展生态系统

缺点

⚠️ 对于大型项目需要更多架构设计
⚠️ 部分高级功能需要额外扩展
⚠️ 默认不包含数据库 ORM、表单验证等

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 1:16:56

css学习阶段一

CSS基础入门到实战&#xff1a;3个核心技巧让样式编写更高效作为前端开发的基石&#xff0c;CSS的学习门槛看似较低&#xff0c;但想要写出简洁、可维护的样式却需要掌握一定的技巧。本文针对CSS初学者&#xff0c;从基础语法梳理到实战技巧总结&#xff0c;帮你快速搭建CSS知识…

作者头像 李华
网站建设 2026/5/28 19:52:23

Java计算机毕设之基于Springboot+Vue的电子商务订单管理系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/28 1:31:23

4次拷贝变0次:我用现代C++撸了个生产级零拷贝缓存

写网络程序或者文件服务,肯定会遇到一个问题:数据拷贝太多,CPU扛不住。 一个简单的文件下载功能,从磁盘读文件再通过socket发出去,看起来就两步操作,但Linux内核默认要拷贝4次数据、切换4次上下文,如果你的服务每秒处理几万个请求,CPU光是在那搬数据就已经累得够呛,根…

作者头像 李华
网站建设 2026/5/28 21:19:01

十佳降AI工具实测,知网AIGC检测也能过

被 AI率折磨过的人&#xff0c;才知道有多崩。 如果这篇整理能帮你少走点弯路&#xff0c;那就值了。 1、嘎嘎降AI 官网&#xff1a;https://www.aigcleaner.com/?sourcecsdn&keyword1226 功能特点&#xff1a; 1、检测、降重和降AI一键同步&#xff0c;相当于一次就能…

作者头像 李华
网站建设 2026/5/28 18:11:32

校准集选取原则:影响INT8量化质量的关键因素

校准集选取原则&#xff1a;影响INT8量化质量的关键因素 在现代AI系统部署中&#xff0c;一个看似微不足道的决策——用哪几百张图片来做校准&#xff0c;往往能决定整个推理服务是平稳上线还是精度崩盘。尤其是在使用TensorRT进行INT8量化时&#xff0c;这种“小数据大影响”的…

作者头像 李华
网站建设 2026/5/29 0:57:09

Prompt工程结合:最大化利用TensorRT预填充阶段

Prompt工程与TensorRT预填充阶段的深度协同优化 在大语言模型&#xff08;LLM&#xff09;日益渗透到实时交互系统的今天&#xff0c;用户早已不再满足于“能回答”&#xff0c;而是要求“秒回”。从智能客服到代码补全&#xff0c;首token延迟直接决定了体验是否流畅。然而&am…

作者头像 李华