sqlachemy orm create or delete table

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

Base = declarative_base()

engine = create_engine('mysql+pymysql://root:123456@localhost:3306/test?charset=utf8', echo=True) ​ ​ class Worker(Base):   # 表名   __tablename__ = 'worker'   id = Column(Integer, primary_key=True)   name = Column(String(50), unique=True)   age = Column(Integer)   birth = Column(DateTime)   part_name = Column(String(50)) ​ ​ # 创建数据表

Base.metadata.create_all(engine)

该方法引入declarative_base模块,生成其对象Base,再创建一个类Worker。一般情况下,数据表名和类名是一致的。tablename用于定义数据表的名称,可以忽略,忽略时默认定义类名为数据表名。然后创建字段id、name、age、birth、part_name,最后使用Base.metadata.create_all(engine)在数据库中创建对应的数据表

2.数据表的删除

删除数据表的时候,一定要先删除设有外键的数据表,也就是先删除part,然后才能删除worker,两者之间涉及外键,这是在数据库中删除数据表的规则。对于两种不同方式创建的数据表,删除语句也不一样。

Base.metadata.drop_all(engine)

part.drop(bind=engine)

part.drop(bind=engine) Base.metadata.drop_all(engine)

3.sqlachemy +orm + create table代码


from sqlalchemy import Column, String, create_engine, Integer, Text
from sqlalchemy.orm import sessionmaker,declarative_base
import time


# 创建对象的基类:
Base = declarative_base()


# 定义User对象:
class User(Base):
    # 表的名字:
    __tablename__ = 'wokers'

    # 表的结构:
    id = Column(Integer, autoincrement=True, primary_key=True, unique=True, nullable=False)
    name = Column(String(50), nullable=False)
    sex = Column(String(4), nullable=False)
    nation = Column(String(20), nullable=False)
    birth = Column(String(8), nullable=False)
    id_address = Column(Text, nullable=False)
    id_number = Column(String(18), nullable=False)
    creater = Column(String(32))
    create_time = Column(String(20), nullable=False)
    updater = Column(String(32))
    update_time = Column(String(20), nullable=False, default=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
                         onupdate=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    comment = Column(String(200))


# 初始化数据库连接:
engine = create_engine('postgresql://postgres:name@pwd:port/dbname')  # 用户名:密码@localhost:端口/数据库名

Base.metadata.create_all(bind=engine)

sqlachemy 比较好用的orm介绍链接:https://www.cnblogs.com/DragonFire/p/10166527.html

sqlachemy的级联删除

https://www.cnblogs.com/ShanCe/p/15381412.html

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-09 16:20:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-09 16:20:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-09 16:20:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-09 16:20:02       20 阅读

热门阅读

  1. Linux C语言 51-IO复用

    2024-01-09 16:20:02       28 阅读
  2. PHP中excel带图片数据导入

    2024-01-09 16:20:02       37 阅读
  3. Python之面向对象

    2024-01-09 16:20:02       30 阅读
  4. 【Python】卷积神经网络

    2024-01-09 16:20:02       40 阅读
  5. 【面试高频算法解析】算法练习7 贪心算法

    2024-01-09 16:20:02       38 阅读
  6. SpringBoot项目中开启MyBatis的SQL日志

    2024-01-09 16:20:02       37 阅读
  7. openc910源码LSU系列之<66>

    2024-01-09 16:20:02       31 阅读
  8. golang学习-流程控制

    2024-01-09 16:20:02       38 阅读
  9. pytest-mock 数据模拟

    2024-01-09 16:20:02       50 阅读
  10. 用 Socket.D 替代原生 WebSocket 做前端开发

    2024-01-09 16:20:02       38 阅读