sqlalchemy
文章平均质量分 61
风车转呀转
文章里 红字部分 表示 还没弄懂,或者 存疑。
没有付费文章。
展开
-
sqlalchemy 13 控制alembic
迁移之前,需先 确认哪些迁移已经应用到数据库了。查看应用到数据库的最后一次迁移ID 用 alembic current,(venv) D:\alchemy\c11>alembic currentINFO [alembic.runtime.migration] Context impl SQLiteImpl.INFO [alembic.runtime.migration] Will assume non-transactional DDL.0bad48b33ec2 (head)ale原创 2021-05-12 16:56:58 · 254 阅读 · 0 评论 -
sqlalchemy 12 创建迁移
创建基础空迁移。空迁移可以为迁移提供一个干净的起点。(venv) c11> alembic revision -m "emptyinit"Generating c11\alembic\versions\87eea99e5889_emptyinit.py ... done如果你在代码的一个分支中修改数据类,那你可能还需要为alembic迁移 建立分支。upgrade: 执行迁移时 改动数据库。downgrade: 撤销本次迁移,并把数据库恢复到先前的迁移步骤。目前没有任何.原创 2021-05-11 16:47:55 · 227 阅读 · 0 评论 -
sqlalchemy 11 Alembic
创建表时,无论是Core 的 metadata.create_all(engine),还是ORM 的 Base.metadata.create_all(engine),sqlalchemy都只会创建缺失的表,不会更新表的结构,也不会删除表。当我们想给已经存在于数据库的表 添加或删除 列、拆分模型等操作时,create_all()无法实现。 Alembic可以实现上述功能,是一个 处理数据库更改 的工具。迁移可以理解为 数据库更新、更改。安装alembic(venv) > pip...原创 2021-05-11 11:38:21 · 302 阅读 · 0 评论 -
sqlalchemy 10 ORM 反射
Core的反射用metadata,ORM的反射用到automap。数据库用的是案例给的Chinook_Sqlite.sqlite。反射数据库 需要 atuomap_base 和 引擎连接到数据库。c10_.pyfrom sqlalchemy.ext.automap import automap_baseBase = automap_base() #初始化automapfrom sqlalchemy import create_engineengine = create_engin原创 2021-05-10 19:35:19 · 556 阅读 · 2 评论 -
sqlalchemy 9 ORM测试
app的测试大都包括 两种:单元测试 和 功能测试。强烈建议在生产环境 和 测试环境中使用相同的数据库引擎。做测试需要的文件分为三部分:应用程序逻辑app.py,数据模型 和 会话db.py,测试代码test_app.pydb.py实际上就是 工厂函数。...原创 2021-05-10 17:40:16 · 409 阅读 · 0 评论 -
sqlalchemy 8 会话 与 异常
先创建一个c8数据库。c8.pyfrom sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerengine = create_engine('sqlite:///c8.db')Session = sessionmaker(bind=engine)session = Session()from sqlalchemy import Table, Column, Integer, Numeric, Strin原创 2021-05-08 11:12:39 · 1410 阅读 · 0 评论 -
sqlalchemy 7 ORM进阶
会话,类似于暂存层。添加 会话 和 __repr__from sqlalchemy import Table, Column, Integer, Numeric, String, Booleanfrom sqlalchemy.ext.declarative import declarative_basefrom datetime import datetimefrom sqlalchemy import DateTimefrom sqlalchemy import ForeignKeyf原创 2021-05-07 12:06:50 · 418 阅读 · 0 评论 -
sqlalchemy 6 ORM
模式:数据表的 构造。ORM和Core不同,ORM更注重 用户定义的 数据对象(类),而非底层数据库的 模式(数据表)。在Core中,我们是先创建metadata(元数据容器),然后再声明一个Table对象。在ORM中,我们直接 定义一个 继承自declarative_base基类的 类,declarative_base会把 类和底层数据表 联系到一起。Orm定义的类 必须满足4个条件:继承自declarative_base;包含__tablename__(表名);包含一个或多个属性Co原创 2021-05-04 11:36:56 · 224 阅读 · 0 评论 -
sqlalchemy 4 Core测试
app的测试大都包括 两种:单元测试 和 功能测试。原创 2021-05-03 13:36:06 · 453 阅读 · 0 评论 -
sqlalchemy 5 反射
从别处得到一个数据库,数据库里已经有数据,但是我们不知道具体的表名,就无法用前面的select进行查询。获得数据库的内容信息 就叫反射。书上说 反射是利用数据库填充sqlalchemy对象。其实就是像flask时一样,把数据库内容 复制到python缓存,然后才能对数据进行操作。这里要承接 复制的数据库内容 需要 有一个元数据对象 来保存被反射(复制)的表信息,还需要一个 引擎连接到数据库。from sqlalchemy import MetaData, create_engineme.原创 2021-05-03 13:35:37 · 782 阅读 · 0 评论 -
sqlalchemy 3 异常和事务
重新造一个数据库和表。c3_manage.pyfrom sqlalchemy import create_engine, MetaData, Table, Column, Integer, Numeric, String, ForeignKey, Booleanfrom sqlalchemy import CheckConstraintfrom datetime import datetimefrom sqlalchemy import DateTimeengine = create_eng原创 2021-04-28 12:03:46 · 1354 阅读 · 0 评论 -
sqlalchemy 2用Core处理数据
插入数据insert()。新建一个py,insert.pyfrom manage import cookiesins = cookies.insert().values( cookie_name = 'chocolate chip', cookie_recipe_url = 'http://some.aweso.me/cookie/recipe.html', cookie_sku = 'cc01', quantity='12', unit_cost='0.5原创 2021-04-26 17:02:15 · 728 阅读 · 0 评论 -
sqlalchemy 1模式和类型
sqlalchemy是一个pyhton库,用于连接各种数据库,如postgres, mysql, sqlite, oracle等。sqlalchemy抽象了各数据库的sql特性,组成了一套 通用语法。无论 使用哪种 数据库,都能 正确编译。(通用语法是我们用的,数据库真正执行的是 编译后的sql语句。)这使 数据 在不同数据库之间 的转移变得简单。sqlalchemy包含两套语句:Core(sql表达式语言) 和 ORM(抽象程度比Core更高,贴近python的类)。可以混合使用。新建一个文.原创 2021-04-23 16:58:24 · 739 阅读 · 0 评论