【GHS】Python SQLALchemy框架

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2020-12-30

表操作
   SQLALchemy中不允许修改表结构,如果修改表结构则需要删除旧表,再创建新表:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import datetime

from sqlalchemy import Column, Integer, String, DateTime, UniqueConstraint, Index
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base

# 基础类
Base = declarative_base()

# 创建引擎
engine = create_engine(
"mysql+pymysql://root@127.0.0.1:3306/db1?charset=utf8",
# "mysql+pymysql://root:123@127.0.0.1:3306/db1?charset=utf8", # 有密码时
max_overflow=0, # 超过连接池大小外最多创建的连接
pool_size=5, # 连接池大小
pool_timeout=30, # 池中没有线程最多等待的时间,否则报错
pool_recycle=-1 # 多久之后对线程池中的线程进行一次连接的回收(重置)
)
class Users(Base):
__tablename__ = 'users'

id = Column(Integer, primary_key=True)
name = Column(String(32), index=True, nullable=False)
age = Column(Integer,nullable=False)
phone = Column(String(11))
addr = Column(String(64), nullable=True)
create_time = Column(DateTime, default=datetime.datetime.now) # 一定不要加括号

__table_args__ = (
UniqueConstraint("id", "name"), # 创建联合唯一 可指定name给个别名
Index("phone", "addr", unique=True), # 创建联合唯一索引 可指定name给个别名
)def __str__(self):
return "object:" % (self.id, self.name)

def create_tb():
"""
创建表
:return:
"""
Base.metadata.create_all(engine)

def drop_tb():
"""
删除表
:return:
"""
Base.metadata.drop_all(engine)
if __name__ == '__main__':
drop_tb()
create_tb()

成为第一个回答人

评论

登录后才可发表内容
  • 主题

    106

  • 帖子

    82

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0982s Mem:2047Kb