Flask-SQlAIchemy管理数据库

SQLAlchemy:Python数据库操作终极指南 SQLAlchemy 是 Python 生态中功能强大的 SQL 工具包和 ORM 库,提供企业级数据库交互能力。它通过面向对象语法抽象数据库操作,同时保留对 SQL 的灵活控制。SQLAlchemy 采用分层架构设计,包含 ORM 层和 Core 层,支持多数据库引擎、连接池管理和事务控制。核心组件包括 Engine(数据库入口)、Session(会话管理)和 Mapper(对象映射)。其优势在于可移植性、安全性和灵活性,既适合 Web 开发(如与 Flask 集成),也适用于数据分析和复杂查询场景。SQ 阅读详情

Flask-SQlAIchemy管理数据库

配置

class flask.ext.sqlalchemy.SQLAlchemy(app=None, use_native_unicode=True, session_options=None, metadata=None, query_class=<class 'flask_sqlalchemy.BaseQuery'>, model_class=<class 'flask_sqlalchemy.Model'>)

这个类用于控制对一个或多个flask应用程序的SQLAlchemy集成。根据您初始化对象的方式,它可以立即使用,也可以根据需要附加到一个烧瓶应用程序中。

有两种使用模式非常相似。一个是将实例绑定到一个特定的flask应用程序:

第一种:
app = Flask(__name__)
db = SQLAlchemy(app)

第二种:

db = SQLAlchemy()

def create_app():
    app = Flask(__name__)
    db.init_app(app)
    return app
两者的区别在于,在第一种情况下,createall()和dropall()方法都将一直工作,但在第二种情况下,flask.flask.app context()必须存在。
默认情况下,flask-sqlalchemy将应用一些特定于后台的设置来改善您的体验。在SQLAlchemy 0.6 SQLAlchemy中,将对库进行探测,以获得本地的unicode支持。如果它检测到unicode,它就会让库处理它,否则就会自行处理。有时,这种检测可能会失败,在这种情况下,您可能想要将使用nativeunicode(或sqlnatiynativeunicode配置密钥)设置为False。注意,配置键覆盖了传递给构造函数的值。

一旦创建,这个对象就包含 sqlalchemy 和 sqlalchemy.orm 中的所有函数和助手。此外它还提供一个名为 Model 的类,用于作为声明模型时的 delarative 基类:

from flask_sqlalchemy import SQLAlchemy
from flask import Flask

app=Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] ='mysql://root:xxx@localhost/flask'#配置数据库
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=True
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True
db=SQLAlchemy(app)


class  User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True, index=True)
    country = db.Column(db.String(64), unique=True, index=True)
    def __init__(self,name):
        self.name=name

为了创建初始数据库,只需要从交互式 Python shell 中导入 db 对象并且调用 SQLAlchemy.create_all() 方法来创建表和数据库:

>>> from yourapplication import db
>>> db.create_all()
Boom, 您的数据库已经生成。现在来创建一些用户:
>>> from yourapplication import User
>>> admin = User('admin', 'admin@example.com')
>>> guest = User('guest', 'guest@example.com')
但是它们还没有真正地写入到数据库中,因此让我们来确保它们已经写入到数据库中:
>>> db.session.add(admin)
>>> db.session.add(guest)
>>> db.session.commit()
访问数据库中的数据也是十分简单的:
>>> users = User.query.all()
[<User u'admin'>, <User u'guest'>]
>>> admin = User.query.filter_by(username='admin').first()
<User u'admin'>
Flask-SQlAIchemy与普通的 SQLAlchemy 不同之处:
SQLAlchemy 允许您访问下面的东西:
sqlalchemy 和 sqlalchemy.orm 下所有的函数和类
一个叫做 session 的预配置范围的会话(session)
metadata 属性
engine 属性
SQLAlchemy.create_all() 和 SQLAlchemy.drop_all(),根据模型用来创建以及删除表格的方法
一个 Model 基类,即是一个已配置的声明(declarative)的基础(base)
Model 声明基类行为类似一个常规的 Python 类,不过有个 query 属性,可以用来查询模型 (Model 和 BaseQuery)
您必须提交会话,但是没有必要在每个请求后删除它(session),Flask-SQLAlchemy 会帮您完成删除操作。
Flask数据库操作及Flask-SQLAlchemy Flask数据库操作-Flask-SQLAlchemy 阅读详情

相关推荐

Flask-RESTful——SQLAlchemy

一、Flask-SQLAlchemy Flask-SQLAlchemy 使用起来非常有趣,对于基本应用十分容易使用,并且对于大型项目易于扩展。有关完整的指南,请参阅 SQLAlchemy 的 API 文档。 1、创建一个最小的应用 常见情况下对于只有一个 Flask 应用,所有您需要做的事情就是创建 Flask 应用,选择加载配置接着创建 SQLAlchemy 对象时候把 Flask 应用传递给它...

qq_41134008的博客 1223

python之sqlalchemy详解

python之sqlalchemy详解 SQLAlchemy连接数据库 可以使用ORM框架操作数据库 ORM框架 = object relationship mappiy 框架 学习前提(软件) mysql、pymysql(或者MySQLdb)、SQLAlchemy SQLAlchemy连接数据库 步骤 首先导入sqlalchemy.create_engine 输入配置信息(服务...

没有撤退可言. 2万+

深入理解SQLAlchemy 1.4.13:Python的ORM框架

在数据库操作的世界中,SQLAlchemy 是 Python 程序员的利剑,它提供了一个完整的工具集,用以处理关系数据库。SQLAlchemy 不仅是一个ORM(对象关系映射)框架,同时也提供了强大的SQL表达式语言,使得数据库的交互和查询变得灵活而高效。SQLAlchemy 1.4.13版本新增了几个API,这些API的引入进一步扩展了库的功能,使得开发者能够更高效地完成数据库操作。

weixin_36474966的博客 1080

python常用库之数据库orm框架之SQLAlchemy

SQLAlchemy是一个基于Python实现的SQL工具包和ORM框架,提供了高层抽象来管理数据库交互。

西京刀客 2万+

树莓派4在Bookworm Raspbian系统下无法进入桌面模式(启动后出现彩色画面,然后一直黑屏,但是可以正常启动和ssh)

本文记录了这段比较坎坷的探索之路,由于你的问题不一定是我最终解决方案的,可能是前面探索路上试过的,所以建议按顺序看排除前置问题。 双十一又买了个树莓派 4B,插上之前树莓派 4B 的 TF 卡直接就能使用(毕竟是一样规格的)。但是由于用来连接硬盘的 USB 线是坏的,我以为是系统问题就进行了重装(所以坏掉的线还是直接扔了好)。 重新安装系统就装了最新的 2023-10-10 版本的 64 位的 Raspberry Pi OS,但是出现了一个问题: 启动后出现彩色画面,然后一直黑屏。

ZhongUncle的博客 3735

TPAMI 2025新作LRFormer复现笔记:我的Windows 11 + RTX 4090配置全流程

本文详细记录了在Windows 11系统下使用RTX 4090显卡复现TPAMI 2025顶会论文LRTransformer的完整流程,包括硬件配置、系统优化、Python环境搭建及模型训练中的常见问题解决方案。特别针对Windows平台特有的路径管理、CUDA版本冲突和显存优化等关键技术细节提供了实用指南,帮助开发者高效完成环境搭建和模型训练。

weixin_29094301的博客 411

09. SQLAlchemy介绍

SQLAlchemy介绍一、SQLAlchemy介绍二、简单使用1、执行原生sql(不常用)2、orm使用(1)单表操作(2)一对多的关系,新增数据三、scoped_session线程安全四、基本增删查改查询删除修改as别名:占位符,用params传参数其他查询操作通配符限制(用于分页、区间)排序分组having筛选连表(默认使用forinkey关联)UNION组合(了解)五、多对多关系的建立和操作1、models.py2、基本增删查改六、flask-sqlalchemy的使用七、项目分文件使用flask-

梅开二度,异常绚烂 2441

高性能网站设计之缓存更新的套路

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。 我不知道为什么这么多人用的都是这

代码技巧 1万+

简单易用,灵活强大:用SQLAlchemy实现Python操作数据库

SQLAlchemy是一个Python的SQL工具和ORM框架,可以通过Python代码直接操作关系型数据库,也可以使用ORM模型进行对象关系映射。它支持多种数据库,并提供了强大的SQL表达式和查询API。SQLAlchemy可以分为两个部分:Core和ORM。Core:提供了底层的SQL表达式和查询API,支持多种数据库的可移植操作,例如连接管理、事务管理、对象关系映射、元数据管理等。

weixin_62650212的博客 1万+

逆向工程师必备:用MDL绕过游戏保护读取内存数据的完整流程(附POC代码)

本文深入探讨了内核级内存访问技术,重点介绍了如何利用MDL(Memory Descriptor List)机制稳定、隐蔽地绕过游戏反作弊系统读取进程内存。通过对比MmCopyVirtualMemory等方法的优劣,提供了完整的MDL映射实战代码与反检测策略,为逆向工程师在内核态进行安全内存操作提供了专业指导。

weixin_29227425的博客 623

llama-factory微调qwen2.5-vl

使用llama-factory完成qwen2.5-vl微调

qq_44908396的博客 2932

详细分析Python中的SQLAlchemy库(附Demo)

SQLAlchemy 是Python SQL工具包和对象关系映射器(ORM),允许Python开发者在应用程序中使用SQL来交互,而无需处理数据库的具体细节 提供一个高层的抽象层,允许开发者通过Python类和对象来表示数据库中的表和行,从而使得数据库操作更加方便和灵活

码农研究僧的博客 6557

YOLOv11涨点改进 | NeurIPS2025最佳论文!注意力改进篇| 引入Gated Attention门控注意力模块、太牛了!直接拯救了大模型的发展,助力目标检测、图像分割、图像分类有效涨点

本文提出了一种基于门控注意力机制(GatedAttention)的YOLOv11改进方法。该模块通过在标准注意力机制中引入头部特定的sigmoid门控,有效提升了模型性能和训练稳定性。实验表明,GatedAttention能够增强模型对关键信息的聚焦能力,减少无关区域关注,提高检测精度。同时,门控机制带来的非线性和稀疏性优化了计算效率,并缓解了训练不稳定性问题。文章详细介绍了模块原理、实现代码及三种改进方案配置方法,为YOLOv11在复杂场景下的目标检测提供了有效解决方案。

Ai缝合怪、助力小伙伴高效发论文 494

Flask(十八)——SQLAIchemy

在Flask Web应用程序中使用原始SQL对数据库执行CRUD操作可能很乏味。 相反,Python工具包SQLAlchemy是一个功能强大的OR映射器,为应用程序开发人员提供了SQL的全部功能和灵活性。 Flask-SQLAlchemy是Flask扩展,它将对SQLAlchemy的支持添加到Flask应用程序中。 什么是ORM(对象关系映射)? 大多数编程语言平台是面向对象的。 另一方面,RDBMS服务器中的数据以表格形式存储。 对象关系映射是一种将对象参数映射到底层RDBMS表结构的技术。 ORM.

hhhcbw的博客,欢迎各位来访 287

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

包括YOLOv5、YOLOv7、YOLOv8等模型改进 736

099、LLC谐振变换器的大信号建模

摘要:LLC谐振变换器的小信号模型在大信号工况(如启动、负载突变)下会失效,导致保护失灵、过冲等问题。通过状态空间平均法和分段线性化建立大信号模型,需关注谐振腔能量转移、模态切换条件及离散化实现。实际应用中,该模型可优化启动策略、精确设定保护阈值并验证环路补偿,但需注意变压器饱和等非线性因素。经验表明,大信号建模能显著提升设计可靠性,但需结合实验验证(误差<15%)和工具适配(如MATLAB离线仿真与C语言嵌入式调试)。三颗炸裂的MOSFET警示:深入掌握大信号建模是避免关键故障的必要手段。

Jack010169的博客 45

Flask-SQLAIchemy项目后端-注册账户(实验项目第二期)

一个简单的Flask-SQLAIchemy+MySQL数据库的后端注册功能

m0_72541842的博客 593

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Pytest Flask-SQLAlchemy 开源项目教程

Pytest Flask-SQLAlchemy 开源项目教程 项目介绍 Pytest Flask-SQLAlchemy 是一个用于简化在 Flask 应用程序中使用 SQLAlchemy 进行测试的 pytest 插件。它允许开发者轻松地集成和管理数据库状态,特别是在进行单元测试和集成测试时,确保每次测试都有干净的数据库环境,从而提高测试的一致性和效率。此项目由 Jean Cochrane 维护...

gitblog_01040的博客 454

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何使用SQLAlchemy进行数据库操作

使用SQLAlchemy的ORM(对象关系映射)功能,定义你的数据模型。每个模型类都映射到数据库中的一个表,而模型类的属性则映射到表中的列。

Flask Web 746

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

python flask-sqlalchemy基本操作

from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # 设置数据库的连接地址 app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:mysql@127.0.0.1:3306/test21" # 是否监听数据库变化 一般...

王飞的博客 434

【SQLALchemy】配置与创建模型类

文章目录一、配置二、创建模型类 一、配置 在Flask中使用mysql数据库,需要安装一个flask-sqlalchemy的扩展。 pip install flask-sqlalchemy 要连接mysql数据库,仍需要安装数据库引擎 python2中安装flask-mysqldbpip install flask-mysqldb python3中安装pymysqlpip install pymysql 使用Flask-SQLAlchemy管理数据库 使用Flask-SQLAlchemy扩展操

pipi_peng的博客 738

SQLAlchemy Unicode

当你需要在数据库中存储Unicode字符串时,你应该使用String类型,并且不需要特别指定它是Unicode,因为SQLAlchemy默认就是使用Unicode字符串。在SQLAlchemy中,处理Unicode文本数据通常是通过使用String类型并指定一个适当的长度来实现的。我们创建了一个新用户,指定了它的名称为一个Unicode字符串'张三',并将其存储在数据库中。总之,在SQLAlchemy中处理Unicode文本时,只需使用String类型,并确保你的数据库和连接也配置为支持Unicode。

Flask Web 476

SQLAlchemy

SQLAlchemy是一个功能强大的 Python SQL 工具包和对象关系映射(ORM)框架,旨在提供高效、灵活且便于扩展的数据库交互解决方案。它支持多种数据库,并通过其核心(Core)和 ORM 两个层次为开发者提供不同的抽象级别。模型类代表数据库中的表,每个实例代表表中的一行。# 如果有外键关系,可以定义 relationshipAlembic是 SQLAlchemy 的官方数据库迁移工具,允许你轻松地管理数据库模式的变更。它支持生成和应用迁移脚本,确保数据库结构的演进与代码同步。

xnuscd的博客 966

flask-slqalchemy使用详解

是一款Python编程语言下的开源软件,提供了SQL工具包及对象关系映射(ORM)工具。允许开发人员通过Python类与对象来操作数据库,从而避免了直接编写SQL语句的复杂性。支持多种数据库系统,如SQLite、MySQL、PostgreSQL等。是sqlalchemy的一个扩展或封装,专门用于Flask web框架。简化了在Flask应用中与数据库交互的过程,例如配置、初始化、使用ORM等。使得在Flask中集成数据库变得更为方便和直观。

lIujunXHU的博客 4037

ORM技术 - SQLAIchemy 库详解

ORM 是(对象关系映射)的缩写。简单来说,它是一种,用于在(如 Python、Java、C#)中的与(如 MySQL、PostgreSQL、SQLite)中的之间建立自动映射关系。

qq_39865117的博客 139

Python使用SQLAlchemy操作sqlite

Python使用SQLAlchemy操作sqlite: sqllite的介绍和常用的sql语句, python使用SQLAlchemy集成sqlite

后端开发 3830
上一篇: Python往MySQL存储图片
下一篇: Flask-Migrate实现数据库迁移
Coder_py
博客等级 码龄10年 106粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值