HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍1. 基本概念2. 安装与配置3. 模型定义4. 数据库初始化5. CRUD操作创建Create读取Read更新Update删除Delete6. 高级查询操作7. 最佳实践8. 项目结构建议基于搜索结果我为您整理了Flask数据库操作的核心内容主要使用Flask-SQLAlchemy扩展这是Flask中最常用的ORM对象关系映射工具。1. 基本概念ORM对象关系映射将数据库表映射为Python类表记录映射为对象字段映射为属性。优点是无需手动编写SQL语句防止SQL注入攻击支持多种数据库切换面向对象的操作方式2. 安装与配置# 安装必要包 pip install flask-sqlalchemy pip install pymysql # MySQL驱动 # 或 pip install psycopg2 # PostgreSQL驱动 # 或无需额外安装 # SQLite驱动from flask import Flask from flask_sqlalchemy import SQLAlchemy app Flask(__name__) # 配置数据库URI app.config[SQLALCHEMY_DATABASE_URI] mysqlpymysql://用户名:密码localhost/数据库名 # 或 SQLite: sqlite:///yourdatabase.db # 或 PostgreSQL: postgresql://user:passwordlocalhost/dbname # 初始化SQLAlchemy db SQLAlchemy(app)3. 模型定义class User(db.Model): id db.Column(db.Integer, primary_keyTrue) username db.Column(db.String(80), uniqueTrue, nullableFalse) email db.Column(db.String(120), uniqueTrue, nullableFalse) age db.Column(db.Integer, default18) def __repr__(self): return fUser {self.username}4. 数据库初始化# 创建所有表 with app.app_context(): db.create_all() # 删除所有表 # with app.app_context(): # db.drop_all()5. CRUD操作创建Create# 方法1实例化对象后添加 new_user User(usernamejohn, emailjohnexample.com, age25) db.session.add(new_user) db.session.commit() # 方法2直接创建 user User(usernamejane, emailjaneexample.com) db.session.add(user) db.session.commit()读取Read# 查询所有 users User.query.all() # 按ID查询 user User.query.get(1) # 按条件查询 users User.query.filter_by(usernamejohn).all() user User.query.filter_by(emailjohnexample.com).first() # 复杂查询 users User.query.filter(User.age 18).all() users User.query.filter(User.username.like(%john%)).all() # 排序 users User.query.order_by(User.username.desc()).all() # 分页 page 1 per_page 10 users User.query.paginate(pagepage, per_pageper_page)更新Update# 方法1先查询后修改 user User.query.get(1) if user: user.email new_emailexample.com user.age 30 db.session.commit() # 方法2直接更新 User.query.filter_by(usernamejohn).update({email: updatedexample.com}) db.session.commit()删除Delete# 方法1先查询后删除 user User.query.get(1) if user: db.session.delete(user) db.session.commit() # 方法2直接删除 User.query.filter_by(usernamejohn).delete() db.session.commit()6. 高级查询操作# AND条件 users User.query.filter(User.age 18, User.username.like(%john%)).all() # OR条件 from sqlalchemy import or_ users User.query.filter(or_(User.age 30, User.username admin)).all() # 限制结果数量 users User.query.limit(5).all() # 偏移量 users User.query.offset(10).limit(5).all()7. 最佳实践使用应用上下文所有数据库操作应在app.app_context()内进行异常处理添加try-except块处理数据库异常会话管理操作完成后及时提交或回滚模型验证在模型中添加数据验证逻辑迁移工具生产环境建议使用Flask-Migrate进行数据库迁移8. 项目结构建议your_project/ ├── app/ │ ├── __init__.py │ ├── models.py # 模型定义 │ ├── routes.py # 路由和视图 │ └── extensions.py # 扩展初始化 ├── config.py # 配置文件 └── run.py # 启动文件示例配置文件 (config.py):class Config: SQLALCHEMY_DATABASE_URI mysqlpymysql://root:passwordlocalhost/myapp SQLALCHEMY_TRACK_MODIFICATIONS False示例扩展初始化 (extensions.py):from flask_sqlalchemy import SQLAlchemy db SQLAlchemy()这种结构使代码更加模块化便于维护和扩展。Flask-SQLAlchemy极大地简化了数据库操作让开发者能够专注于业务逻辑而非数据库细节。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧