SQLAlchemy学习-11.结合 dataclass 使用

Posted 上海-悠悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLAlchemy学习-11.结合 dataclass 使用相关的知识,希望对你有一定的参考价值。

前言

SQLAlchemy 可以结合 dataclass 使用,python3.7以上版本自带了dataclasses模块。

结合 dataclass 使用

使用示例

from dataclasses import dataclass, field
from datetime import datetime
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, TIMESTAMP
from sqlalchemy.orm import sessionmaker, mapper

metadata = MetaData()
person_table = \\
    Table('person', metadata,
          Column('id', Integer, primary_key=True, autoincrement=True),
          Column('name', String(255)),
          Column('age', Integer),
          Column('birthday', TIMESTAMP)
          )


@dataclass
class Person:
    id: int = None
    name: str = field(default_factory=str)
    age: int = field(default_factory=int)
    birthday: datetime = field(default_factory=datetime)


mapper(Person, person_table)

engine = create_engine('mysql+pymysql://root:aa123456@47.108.155.10:3309/web', echo=True)
metadata.create_all(engine)
session = sessionmaker(bind=engine)()

# 新增数据提交
person = Person(name='Robby', age=33, birthday=datetime(1985, 7, 25))
session.add(person)
session.commit()

执行后,生成 person 表

以上是关于SQLAlchemy学习-11.结合 dataclass 使用的主要内容,如果未能解决你的问题,请参考以下文章

结合 Qgraphics 和 sqlalchemy 时出现元类错误

Flask学习第11篇:整合Flask中的目录结构

Flask中MySQL预热

结合继承yieldcontextmanagerrollback来解决问题。

结合继承yieldcontextmanagerrollback来解决问题。

Python 学习笔记 - SQLAlchemy(下)