SqlAlchemyTools提供与FlaskSqlAlchemy&FlaskMigrate相似的功能,而不依赖于Flask。
SqlAlchemy-Tools的Python项目详细描述
SqlAlchemyTools公司
SqlAlchemyTools提供与Flask类似的功能SqlAlchemy&Flask Migrate,而不依赖于Flask。在
安装
使用pip安装SqlAlchemyTools:
pip install sqlalchemy-tools
特点
- 数据库:
- 只要用Database()实例化,SqlAlchemyTools就会自动创建会话、模型和SQLAlchemy所需的一切。在
- 与Flask应用程序配合使用,代码更改最小
- 线程安全使用^{
} - 与Pandas集成,允许快速插入数据帧并作为数据帧检索查询
- 它提供了query()、create()、update()、delete()等简单的方法来分别选择、创建、更新、删除条目。在
- 自动生成
__tablename__
作为模型名上的snake case等价物,如果没有明确定义(不是多元化的) - 它使用箭头表示日期时间
- 日期时间以UTC格式保存,并使用SQLAlchemy实用工具中的ArrowType
- 整个JSONType,添加了一些类型的JSONType和sqltype
- 在数据库->;为您提供UTC类型的箭头
- 分页结果
- 漂亮的对象表示
- 它仍然是sql炼金术。您可以访问所有的SQLAlchemy awesomeness
- 迁移:
- 内置迁移支持类似于烧瓶迁移
- 创建一个
manage.py
文件,以便轻松地迁移数据库
- 模型来源:
- 快速将模型的所有字段添加到WTF表单
- 支持
include
,exclude
,only
目录
- SqlAlchemyTools
- Installation
- Features
- Contents
- Quick Overview: 在
- How to use
快速概述:
数据库
创建模型
^{pr2}$检索所有记录
User.query.all()
创建新记录
user=User.create(name="Mardix",location="Moon")# oruser=User(name="Mardix",location="Moon").save()
按主键(id)获取记录
user=User.get(1234)
从主键更新记录
user=User.get(1234)ifuser:user.update(location="Neptune")
从查询迭代更新记录
foruserinUser.query:user.update(last_access=db.utcnow())
删除记录
user=User.get(1234)ifuser:user.delete()
使用筛选器查询
all=User.query.filter(User.location=="USA")foruserinusers:...
迁移
SqlAlchemyTools使用Alembic处理SQLAlchemy数据库迁移。数据库操作通过命令行界面可用。在
为什么直接使用SqlAlchemyTools迁移而不是Alembic
SqlAlchemyTools以正确的方式配置Alembic,以便使用数据库,无论它是否带有Flask。就实际的数据库迁移而言,一切都由Alembic处理,因此您可以获得完全相同的功能。在
创建manage.py
为了支持数据库迁移,您需要创建一个manage.py
文件。在
The file can be called anything
fromsqlalchemy_tools.migrationimportMigrate,migrate_managerfromsqlalchemy_toolsimportDatabase# create/import your databasedb=Database('sqlite:///tmp.db')# create a `migrate` object that is linked to your databasemigrate=Migrate(db)classUser(db.Model):id=db.Column(db.Integer,primary_key=True)name=db.Column(db.String(128))surname=db.Column(db.String(128))if__name__=='__main__':migrate_manager.main()
初始化迁移文件夹
需要初始化migrations
文件夹,该文件夹将包含您的数据库版本:
python manage.py init
创建新迁移
无论何时需要在数据库中反映对模型的更改:
python manage.py migrate -m "Intial migration"
升级数据库
要将数据库升级到最新的迁移:
python manage.py upgrade
降级数据库
要将数据库降级1次,请执行以下操作:
python manage.py downgrade
帮助
要查看所有可用的命令,请运行:
python manage.py --help
模型
制作一个与烧瓶兼容的WTForms-Alchemy模型
fromsqlalchemy_toolsimportcreate_model_formfromsqlalchemy_toolsimportDatabase# create/import your databasedb=Database('sqlite:///tmp.db')ModelForm=create_model_form(db)classUserForm(ModelForm):classMeta:model=Userexclude=['last_access']
如何使用
不同模块的完整指南如下:
- 项目
标签: