Flask-SQLAlchemy.........>model创建表
2018-01-11 17:41
429 查看
import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Text, ForeignKey, DateTime, UniqueConstraint, Index from sqlalchemy.orm import relationship Base = declarative_base() # ##################### 单表示例 ######################### class Users(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(32), index=True) age = Column(Integer, default=18) email = Column(String(32), unique=True) ctime = Column(DateTime, default=datetime.datetime.now) extra = Column(Text, nullable=True) __table_args__ = ( UniqueConstraint('id', 'name', name='uix_id_name'), # Index('ix_id_name', 'name', 'extra'), ) class Hosts(Base): __tablename__ = 'hosts' id = Column(Integer, primary_key=True) name = Column(String(32), index=True) ctime = Column(DateTime, default=datetime.datetime.now) # ##################### 一对多示例 ######################### class Hobby(Base): __tablename__ = 'hobby' id = Column(Integer, primary_key=True) caption = Column(String(50), default='篮球') class Person(Base): __tablename__ = 'person' nid = Column(Integer, primary_key=True) name = Column(String(32), index=True, nullable=True) hobby_id = Column(Integer, ForeignKey("hobby.id")) # 与生成表结构无关,仅用于查询方便 hobby = relationship("Hobby", backref='pers') # ##################### 多对多示例 ######################### class Server2Group(Base): __tablename__ = 'server2group' id = Column(Integer, primary_key=True, autoincrement=True) server_id = Column(Integer, ForeignKey('server.id')) group_id = Column(Integer, ForeignKey('group.id')) class Group(Base): __tablename__ = 'group' id = Column(Integer, primary_key=True) name = Column(String(64), unique=True, nullable=False) # 与生成表结构无关,仅用于查询方便 servers = relationship('Server', secondary='server2group', backref='groups') class Server(Base): __tablename__ = 'server' id = Column(Integer, primary_key=True, autoincrement=True) hostname = Column(String(64), unique=True, nullable=False) def init_db(): """ 根据类创建数据库表 :return: """ engine = create_engine( "mysql+pymysql://root:123456@47.93.252.50:3306/userinfo?charset=utf8", max_overflow=0, # 超过连接池大小外最多创建的连接 pool_size=5, # 连接池大小 pool_timeout=30, # 池中没有线程最多等待的时间,否则报错 pool_recycle=-1 # 多久之后对线程池中的线程进行一次连接的回收(重置) ) Base.metadata.create_all(engine) def drop_db(): """ 根据类删除数据库表 :return: """ engine = create_engine( "mysql+pymysql://root:123456@47.93.252.50:3306/userinfo?charset=utf8", max_overflow=0, # 超过连接池大小外最多创建的连接 pool_size=5, # 连接池大小 pool_timeout=30, # 池中没有线程最多等待的时间,否则报错 pool_recycle=-1 # 多久之后对线程池中的线程进行一次连接的回收(重置) ) Base.metadata.drop_all(engine) if __name__ == '__main__': drop_db() init_db()
相关文章推荐
- 使用flask-sqlalchemy创建一对多的关系表
- Flask-SQLAlchemy创建模型与表的映射
- Python――flask-sqlalchemy 自动生成符合Sqlachemy的Model:sqlautocode/sqlacodegen使用方式
- flask-SQLAlchemy 创建数据库
- Flask系列教程(二)--------------使用SQLAlchemy创建数据模型
- tornado with MySQL, torndb, django model, SQLAlchemy ==> JSON dumped
- flask-SQLAlchemy一些使用技巧(关联关系的创建)
- flask-sqlalchemy使用命令创建数据库
- flask-sqlalchemy中Datetime的创建时间、修改时间,default,server_default,onupdate
- OpenCV 2 学习笔记(13): 算法的基本设计模式<4> :使用Model-View-Controller模式创建一个应用程序
- flask-sqlAlchemy 创建表
- flask实践03-创建web表单
- 创建简单的视图<1>
- 1 model的创建
- Java之创建对象>5.Avoid creating unnecessary objects
- Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
- Flask-SQLAlchemy配置MySQL及其相关操作
- Asp.Net MVC<三> : ASP.NET MVC 基本原理及项目创建
- Debug: django model querysets-> pandas.Dataframe
- Flask系列教程(三)---------------通过模板创建视图(一)