通常我们在数据库中设计好了多张表,在SQLAlchemy中有个autoload可以自动加载.
让我们的Model都继承自某个虚类,这个虚类在需要时会自动加载一次表结构
生成我们需要的基类,并绑定数据库连接
定义我们的Model,设置表名和外键关联
可以使用session执行SQL了,scoped_session让maker生成的多个session实际上是重用同一个,
autocommit=True容易导致Bugs,我们使用默认设置不开启它。
在使用过程中发现几个小时后,数据库连接会断掉而没有重新连接,后来在连接时加入pool_recycle=3600,不知是否有用。
保险起见,可以在models中只生成Session类,要用时再创建实例。
# -*- coding: utf-8 -*- from sqlalchemy import create_engine, Table from sqlalchemy.orm import sessionmaker, scoped_session, relationship, backref from sqlalchemy.ext.declarative import declarative_base, declared_attr from configs.settings import MYSQL_DATABASES, MYSQL_TABLE_PREFIX class Base(object): __abstract__ = True __table_args__ = {"mysql_engine": "InnoDB"} @declared_attr def __table__(cls): name = cls.__tablename__ return Table(name, cls.metadata, autoload=True) engine = create_engine( MYSQL_DATABASES["default"] + "?charset=utf8", encoding="utf-8", pool_size=5, pool_recycle=3600) Base = declarative_base(cls=Base, bind=engine) class Guide(Base): __tablename__ = MYSQL_TABLE_PREFIX + "guide" category = relationship("Category", primaryjoin="Guide.category_id==Category.id", foreign_keys="Guide.category_id", backref="guides") contents = relationship("Content", primaryjoin="Guide.id==Content.guide_id", foreign_keys="Content.guide_id", order_by="Content.section", backref="guide") class Category(Base): __tablename__ = MYSQL_TABLE_PREFIX + "category" class Content(Base): __tablename__ = MYSQL_TABLE_PREFIX + "content" Session = scoped_session(sessionmaker(autoflush=True))
相关推荐
sqlalchemy 文档 供大家参考
SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。 SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”...
Mysql 数据库 SQLAlchemy技术文档 SQLAlchemy技术文档(中文版)
Flask-SQLAlchemy包下载及安装,此类用于控制SQLAlchemy与一个或多个Flask应用程序的集成。 根据您初始化对象的方式,该对象立即可用或将根据需要附加到Flask应用程序。
主要为大家详细介绍了利用flask sqlalchemy实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
SQLAlchemy python 开发SQL
python全栈开发项目模板Flask+Flask-Login+SQLAlchemy+WTForms+PyMySQL架构Demo。用于快速构建自己的python全栈web应用。简单实用,代码已调试,完美运行! python全栈开发项目模板Flask+Flask-Login+SQLAlchemy+...
python库。 资源全名:SQLAlchemy-1.4.0b1.tar.gz
sqlalchemy 数据库连接 数据库的管理 01 ONE 知识点:pymysql与sqlalchemy模块 任务 管理图书馆图书信息 pymysql pymysql是纯用Python操作MySQL的模块。 使用之前需要先进行安装。 pip install pymysql 任务 管理...
SQLAlchemy 1.1 Documentation
sqlalchemy文档资料翻译(part)大部分内容和框架
sqlalchemy官方文档0.9版 英文epub
安装python3.6以上 安装包: pandas pymysql sqlalchemy
主要介绍了Python SQLAlchemy入门教程,本文通过实例主要给大家讲解了python SQLAlchemy基本用法,需要的朋友可以参考下
资源来自pypi官网,解压后可用。 资源全名:sqlalchemy_cockroachdb-1.3.0-py3-none-any.whl
Api-flask-graphene-sqlalchemy.zip,在pythonremark中构建graphql api的项目模板:,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并将数据放弃到...