01基础库

1-1安装

依赖库:sqlalchemy

pip install sqlalchemy
#直接安装即可

1-2导入使用

这里讲解思路【个人的理解】,具体写其实就是这个框架:

  1. 导入必要的接口【有创建engine以及declarative_base

    1. 通过create_engine接口创建engine,根据翻译可以翻译成引擎,和发动机一样,有了这个才能驱动数据库启动,但创建engine的接口接受的是一个针对 PostgreSQL的对象,对象的示例如:postgresql+psycopg2://scott:tiger@localhost:5432/mydatabase
    • 以下是官方对于这个engine的解释

  2. 创建引擎

    db_url = "sqlite:///database.db"	#本地的sqlite数据库的地址,没有则自动创建
    engine = create_engine(db_url) #调用数据库的url地址创建引擎

    其中主要根据 sqlalchemy中的create_engine接口进行引擎的创建

    create_engine(url: str | URL) -> Engine

    其中URL就是上文提到的PostgreSQL的对象。这里是用sqlite,其他兼容数据库也可以使用,参照下图:

  3. 定义一个 sqlalchemyORM接口的基类,用于后续创建自定义的表、以及增删查改

    Base = declarative_base()

1-3 创建自己的表

  • 前面的逻辑和导入使用是重合的,主要就是创建一个自己自定义的数据库表类->继承于上文提到的接口基类,进行表的创建

  • 其中,使用Column接口来创建表的列,这个接口接受主要两个变量:第一个是类型【Column, Integer, String, Float】。第二个使用到的是primary_key,即数据库的主键(数据库中数值唯一的一种属性,一般是数据库自动添加的,例如作为整形id,如果主键为TURE,则id这个属性的数值不会重复)

  • Column(type_, *args, **kwargs)

    • type_(必填):指定列的数据类型,例如 IntegerStringDateTime 等。
    • 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 安装库的更多相关文章

  1. 从零开始学习CocoaPods安装和使用

    从零开始学习CocoaPods安装和使用   转载: Code4App原创:http://code4app.com/article/cocoapods-install-usage http://m.i ...

  2. Python SQLAlchemy ORM示例

    SQLAlchemy的是Python的SQL工具包和对象关系映射,给应用程序开发者提供SQL的强大功能和灵活性. 安装 pip install mysql-python pip install sql ...

  3. Python sqlalchemy orm 多对多外键关联

    多对多外键关联 注:使用三张表进行对应关联 实现代码: # 创建3个表 配置外键关联 # 调用Column创建字段 加类型 from sqlalchemy import Table, Column, ...

  4. python中orm框架学习

    安装sqlalchemy pip3 install sqlalchemy 创建表结构: from sqlalchemy import Column,String,create_engine from ...

  5. Python sqlalchemy orm 常用操作

    增add # 创建表1 # 注:高级封装 import sqlalchemy # 调用链接数据库 from sqlalchemy import create_engine # 调用基类Base fro ...

  6. Python sqlalchemy orm 外键关联

    创建外键关联 并通过relationship 互相调用 如图: 实现代码: import sqlalchemy # 调用链接数据库 from sqlalchemy import create_engi ...

  7. Python sqlalchemy orm 多外键关联

     多外键关联 注:在两个表之间进行多外键链接 如图: 案例: # 创建两张表并添加外键主键 # 调用Column创建字段 加类型 from sqlalchemy import Integer, For ...

  8. Python下的OpenCV学习 01 —— 在Linux下安装OpenCV

    一.OpenCV简要介绍 OpenCV是一个跨平台的计算机视觉库,可以运行在Windows.Linux.MacOS等操作系统上.OpenCV提供了众多语言的接口,其中就包含了Python,Python ...

  9. [Python接口自动化]从零开始学习python自动化(1):环境搭建

    第一步:安装python编译环境 安装python编译环境之前,必须保证已安装jdk哈,如果为安装,请参考https://jingyan.baidu.com/article/6dad5075d1dc4 ...

  10. 7月新的开始 - Axure学习01 - 元件库、元件交互样式设置

    解释: Axure 属于原型制作里的霸道总裁 1.原型:原型模拟真实产品的功能与设计.用于在初期阶段测试产品的可行性与效果.来节省开发成本与周期. 2.线框图:在初期实现对产品的了解.实现产品的基本结 ...

随机推荐

  1. Power BI 通过输入数据新建表后重新进入编辑状态

    在使用Power BI时,有时候我们会直接通过输入数据构建一些简单的表,但是构建好后我们可能还需要对表格进行增删改的操作,这时候我们需要怎么才会恢复到表格的编辑状态呢?其实很简单,我们回到PQ里面,双 ...

  2. Centos7安装部署prometheus

    普罗米修斯的主要特点是: 具有由度量名称和键/值对标识的时间序列数据的多维数据模型 PromQL,一种灵活的查询语言, 可以利用这一维度 不依赖分布式存储; 单个服务器节点是自治的 时间序列集合通过H ...

  3. 如何获取Flume连接HDFS所需要的包

    在学习Hadoop工具中的Flume时,有的小伙伴会遇到这句话: "Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包" 然后小伙伴就懵逼了,这些包要去什么地方来 ...

  4. 100 款支持 .NET 多版本的强大 WPF 控件库

    前言 推荐一款集成了超过100款控件的流行 XAML 控件库,同时提供了一系列常用的 .NET 帮助类-CookPopularUI.它可以简化开发流程,让我们能够更加专注于核心业务逻辑的实现. 让我们 ...

  5. cmu15545笔记-查询优化(Query Optimization)

    目录 概述 Heuristics / Rules Cost-based Search Single relation Mutiple relation Genertive / Bottom-Up Tr ...

  6. 痞子衡嵌入式:我在华邦电子&恩智浦2024联合技术论坛继续担任演讲嘉宾

    「华邦电子(Winbond)」是国际领先的存储器厂商,其串行 NOR Flash 产品在全球市场占有率稳居前列. 继去年华邦联合恩智浦成功搞了第一次技术论坛之后,今年华邦又联合意法半导体,恩智浦.莱迪 ...

  7. 能不能用uni开发一个线上运动会的APP、小程序?

    引言:uni-app凭借其强大的跨平台能力,成为开发AI运动类APP和小程序的首选框架.本文旨在探讨基于uni进行开发AI运动小程序.APP开发,以及开发过程中遇到的技术难点,并为您介绍一个开箱即用的 ...

  8. 【Java基础】-- isAssignableFrom的用法详细解析

    最近在java的源代码中总是可以看到isAssignableFrom()这个方法,到底是干嘛的?怎么用? 1. isAssignableFrom()是干什么用的? 首先我们必须知道的是,java里面一 ...

  9. 网站刚上线,就被 DDoS 攻击炸了!

    今天是一个值得纪念的日子,你打开一罐可乐,看着自己刚刚上线的小网站,洋洋得意. 这是你第一次做的网站,上线之后,网站访问量突飞猛进:没过多久,你就拿到了千万的风投,迎娶了女神,走上了人生巅峰... 害 ...

  10. MYSQL8给新用户grant权限报错的解决方法

    ​MYSQL8用客户端创建用户,无法grant,报错:Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES) . 解 ...