随笔分类 - flask-web开发
摘要:常用命令:1、init:创建一个alembic仓库2、reversion:创建一个新的版本3、--autogenerate:自动将当前模型的修改,生成迁移脚本4、-m:message,可以记录本次迁移做了哪些修改,5、upgrade:将指定版本的迁移文件映射到数据库中,会执行版本文件中的upgrad
阅读全文
摘要:在一般情况下,如果修改了模型,如增加或者删除了字段,SQLAlchemy是不会更新的,这就需要使用alembic来实现 使用alembic步骤:一:定义好模型二:使用alembic创建一个仓库:alembic init 仓库名三:修改配置文件 1、在alembic.ini中,给SQLAlchemy.
阅读全文
摘要:一:连接数据库1、安装:pip install flask-sqlalchemy2、将数据库信息更新到app.config['SQLALCHEMY_DATABASE_URI']3、使用flask_sqlalchemy.SQLAlchemy这个类定义一个对象,并将app传进去:db = SQLAlch
阅读全文
摘要:子查询让多个查询变成一个查询,只需要查找一次数据库,性能相对来讲更高效,不用写多个SQL语句就可以实现一些复杂的查询,在SQLAlchemy中要实现一个子查询,应该使用以下步骤:1、将子查询按照传统方式写好查询代码,然后在query对象后面执行subquery(),将这个查询变成子查询2、在子查询中
阅读全文
摘要:准备工作 from datetime import datetimefrom sqlalchemy import create_engine, Column, Integer, String, DateTime, ForeignKeyfrom sqlalchemy.ext.declarative i
阅读全文
摘要:group_by:根据某个字段进行分组,比如想要根据年龄进行分组,再统计每一组有多少人having:对查找结果进一步过滤,类似于SQL语句的where 准备工作 from sqlalchemy import create_engine, Column, Integer, String, Float,
阅读全文
摘要:懒加载在一对多,或者多对多的时候,如果要获取多的这一部分的数据的时候,通过一个relationship定义好对应关系就可以全部获取,此时获取到的数据是list,但是有时候不想获取全部数据,如果要进行数据筛选就需要遍历筛选,就比较麻烦,可以从查询返回值里面入手,比如在获取到的数据里面还要加个过滤条件,
阅读全文
摘要:一:limit:限制每次查询的时候查询数据的条数二:slice:查一个区间的数据,slice(起,止)三:offset:限制查找数据的时候过滤掉前面多少条四:切片:对query对象切实获取想要的数据 准备工作 from datetime import datetimefrom sqlalchemy
阅读全文
摘要:SQLAlchemy实现排序有三种方式一:order_by:查询的时候使用此方式根据某个字段或模型下的属性进行排序二:模型定义的时候,指定排序方式三:一对多的时候,relationship的order_by参数 准备工作 from sqlalchemy import create_engine, C
阅读全文
摘要:在SQLAlchemy中,只要将一条数据添加到session中,其它和此条数据相关联的数据都会一起存到数据库中,这是因为在relationship中有一个关键字参数:cascade,默认选项为save-update 一:save-update:默认选项,在添加一条数据的时候,会把其他和次数据关联的数
阅读全文
摘要:准备工作 from sqlalchemy import create_engine, Column, Integer, String, Float, Text, ForeignKeyfrom sqlalchemy.ext.declarative import declarative_basefrom
阅读全文
摘要:准备工作 from sqlalchemy import create_engine, Column, Integer, String, Float, Text, ForeignKeyfrom sqlalchemy.ext.declarative import declarative_basefrom
阅读全文
摘要:relationship()的uselist参数默认为True,即一对多,如果要一对一,则需让uselist=False 准备工作 from sqlalchemy import create_engine, Column, Integer, String, Float, Text, ForeignK
阅读全文
摘要:准备工作 from sqlalchemy import create_engine, Column, Integer, String, Float, Text, ForeignKeyfrom sqlalchemy.ext.declarative import declarative_basefrom
阅读全文
摘要:使用SQLAlchemy创建外建,只需要在子表的字段中指定此字段的外建是哪个表的哪个字段即可,字段类型需和父表下该字段的类型保持一致 使用ondelete指定约束, 外建约束有以下几种:1、RESTRICT:删除父表数据时,如果子表有数据在使用该字段的数据时,会阻止删除(默认为此约束)2、NO AC
阅读全文
摘要:准备数据 等于 不等于 like(区分大小写,模糊查询)、ilike(不区分大小写) in not in(~,取反) 字段为空 不为空 and or
阅读全文
摘要:准备工作 from sqlalchemy import create_engine, Column, Integer, String, Floatfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm im
阅读全文
摘要:SQLAlchemy属性常用数据类型 Column常用参数
阅读全文
摘要:连接数据库操作 sqlalchemy映射步骤: 1、创建ORM模型,这个模型必须继承sqlalchemy提供的基类2、在这个ORM模型中创建一些属性,与表中的字段一一映射,这些属性必须是sqlalchemy提供的类型3、将创建好的ORM模型,映射到数据库中 from sqlalchemy.ext.d
阅读全文
摘要:手写SQL复用性不高,SQL越复杂越容易出bug,而且容易引起SQL注入,所以现在Ibanez使用orm框架将数据库映射为数据模型,这是使用SQLAlchemy 准备工作,安装SQLAlchemy和PyMySQL:pip install sqlalchemy、pip install pymsql 创
阅读全文

浙公网安备 33010602011771号