python SQLAlchemy ORM——从零开始学习 01 安装库
01基础库
1-1安装
依赖库:sqlalchemy
pip install sqlalchemy
#直接安装即可
1-2导入使用
这里讲解思路【个人的理解】,具体写其实就是这个框架:
导入必要的接口【有创建
engine以及declarative_base】- 通过
create_engine接口创建engine,根据翻译可以翻译成引擎,和发动机一样,有了这个才能驱动数据库启动,但创建engine的接口接受的是一个针对 PostgreSQL的对象,对象的示例如:postgresql+psycopg2://scott:tiger@localhost:5432/mydatabase
- 以下是官方对于这个
engine的解释:

- 通过
创建引擎
db_url = "sqlite:///database.db" #本地的sqlite数据库的地址,没有则自动创建
engine = create_engine(db_url) #调用数据库的url地址创建引擎
其中主要根据
sqlalchemy中的create_engine接口进行引擎的创建create_engine(url: str | URL) -> Engine
其中URL就是上文提到的PostgreSQL的对象。这里是用sqlite,其他兼容数据库也可以使用,参照下图:
定义一个
sqlalchemyORM接口的基类,用于后续创建自定义的表、以及增删查改Base = declarative_base()
1-3 创建自己的表
前面的逻辑和导入使用是重合的,主要就是创建一个自己自定义的数据库表类->继承于上文提到的接口基类,进行表的创建
其中,使用
Column接口来创建表的列,这个接口接受主要两个变量:第一个是类型【Column, Integer, String, Float】。第二个使用到的是primary_key,即数据库的主键(数据库中数值唯一的一种属性,一般是数据库自动添加的,例如作为整形id,如果主键为TURE,则id这个属性的数值不会重复)Column(type_, *args, **kwargs)type_(必填):指定列的数据类型,例如Integer、String、DateTime等。primary_key(可选):是否为主键,默认为False。
from sqlalchemy import create_engine, Column, Integer, String, Float
from sqlalchemy.orm import declarative_base db_url = "sqlite:///database.db" engine = create_engine(db_url) Base = declarative_base() class User(Base):
__tablename__ = "user"
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer) Base.metadata.create_all(engine)
最后使用
Base.metadata.create_all(engine)接口创建这个数据库的所有表功能:
自动创建表:
create_all()会基于模型中定义的表结构自动创建数据库表。如果表已经存在,则不会重新创建。数据库初始化:通常在应用程序第一次启动时,调用
create_all()来创建数据库结构。支持多个表:
create_all()会创建所有在Base中定义的模型所对应的表。
1-4 all code
from sqlalchemy import create_engine, Column, Integer, String, Float
from sqlalchemy.orm import declarative_base db_url = "sqlite:///database.db" engine = create_engine(db_url) Base = declarative_base() class User(Base):
__tablename__ = "user"
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer) def __repr__(self):#这个函数可以不用,不影响,为了能直接print这个类对象
return f"id:{self.id}, name:{self.name}, age:{self.age}" Base.metadata.create_all(engine)
鸣谢以及参考:
python SQLAlchemy ORM——从零开始学习 01 安装库的更多相关文章
- 从零开始学习CocoaPods安装和使用
从零开始学习CocoaPods安装和使用 转载: Code4App原创:http://code4app.com/article/cocoapods-install-usage http://m.i ...
- Python SQLAlchemy ORM示例
SQLAlchemy的是Python的SQL工具包和对象关系映射,给应用程序开发者提供SQL的强大功能和灵活性. 安装 pip install mysql-python pip install sql ...
- Python sqlalchemy orm 多对多外键关联
多对多外键关联 注:使用三张表进行对应关联 实现代码: # 创建3个表 配置外键关联 # 调用Column创建字段 加类型 from sqlalchemy import Table, Column, ...
- python中orm框架学习
安装sqlalchemy pip3 install sqlalchemy 创建表结构: from sqlalchemy import Column,String,create_engine from ...
- Python sqlalchemy orm 常用操作
增add # 创建表1 # 注:高级封装 import sqlalchemy # 调用链接数据库 from sqlalchemy import create_engine # 调用基类Base fro ...
- Python sqlalchemy orm 外键关联
创建外键关联 并通过relationship 互相调用 如图: 实现代码: import sqlalchemy # 调用链接数据库 from sqlalchemy import create_engi ...
- Python sqlalchemy orm 多外键关联
多外键关联 注:在两个表之间进行多外键链接 如图: 案例: # 创建两张表并添加外键主键 # 调用Column创建字段 加类型 from sqlalchemy import Integer, For ...
- Python下的OpenCV学习 01 —— 在Linux下安装OpenCV
一.OpenCV简要介绍 OpenCV是一个跨平台的计算机视觉库,可以运行在Windows.Linux.MacOS等操作系统上.OpenCV提供了众多语言的接口,其中就包含了Python,Python ...
- [Python接口自动化]从零开始学习python自动化(1):环境搭建
第一步:安装python编译环境 安装python编译环境之前,必须保证已安装jdk哈,如果为安装,请参考https://jingyan.baidu.com/article/6dad5075d1dc4 ...
- 7月新的开始 - Axure学习01 - 元件库、元件交互样式设置
解释: Axure 属于原型制作里的霸道总裁 1.原型:原型模拟真实产品的功能与设计.用于在初期阶段测试产品的可行性与效果.来节省开发成本与周期. 2.线框图:在初期实现对产品的了解.实现产品的基本结 ...
随机推荐
- 轻量级网络-CSPNet 论文解读
摘要 1,介绍 2,相关工作 3,改进方法 3.1,Cross Stage Partial Network 3.2,Exact Fusion Model 4,实验 4.1,实验细节 4.2,消融实验 ...
- 4.5 Linux压缩文件或目录中文件为.gz格式(gzip命令)
gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,通过此命令压缩得到的新文件,其扩展名通常标记为".gz". 再强调一下,gzip 命令只能用来压缩文件,不能压 ...
- Windows安装Mysql后一段时间后Mysql服务无法启动的问题
本人在windows重装电脑后遇到一个比较麻烦的问题一直没有解决,今日有幸看到某大佬的博客得以解决.真实万分感激,特来分享一下. 第一次安装Mysql8.0之后,此次安装是将整个mysql包进行安装, ...
- 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现六
一.前言介绍: 1.1 项目摘要 随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势.古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力.然而,在现代社会中 ...
- 一个基于.Net Core 开源的物联网基础平台
在智慧工厂领域,智慧城市领域,都需要对设备进行监控.比如工厂需要对周围环境温度.湿度.气压.电压,灯的开关进行监控.这时候就需要物联网平台来进行管理. 在智慧工厂领域,宝马集团通过英伟达的Omnive ...
- [这可能是最好的Spring教程!]Maven的模块管理——如何拆分大项目并且用parent继承保证代码的简介性
问题的提出 在软件开发中,我们为了减少软件的复杂度,是不会把所有的功能都塞进一个模块之中的,塞在一个模块之中对于软件的管理无疑是极其困难且复杂的.所以把一个项目拆分为模块无疑是一个好方法 ┌ ─ ─ ...
- 鸿蒙NEXT元服务:利用App Linking实现无缝跳转与二维码拉起
[效果] 元服务链接格式(API>=12适用):https://hoas.drcn.agconnect.link/ggMRM 生成二维码后效果: [参考网址] 使用App Linking实现 ...
- 2019-2020 ACM-ICPC Brazil Subregional Programming Contest
D. Denouncing Mafia 给定一颗树,然后给定\(k\)个起点,对于每个起点来说,从该点到根节点的一条链都会被染色,求最多有几个点会被染色 \(3 \leq n \leq 1e5, 1 ...
- springboot 参数注解 注入参数
什么时注解参数 说明 我们在 使用spring mvc 的时候会使用这样的注解 @ResponseBody 这样,spring mvc 会将 客户端传来的数据,自动构建成 相应类型的对象. 有些情况下 ...
- 网站动静加速架构 dcdn+ga 全站加速和全球加速api
背景: 1,公司服务全部在香港 2,所有的服务也都在香港 3,但是我们的客户都在国内 4,那么国内用户访问香港的服务 那么就会存在慢的问题 至于为什么不放到国内,因为我们公司是做nft的.所以你懂得. ...