目录
刚开始用Python做Api后端,记录下学习过程
从数据库操作开始,定义实体,定义DAO层基类,及DAO业务类的使用
写的不好,有好的设计建议欢迎大家提出,一起学习进步
-------------------------------------------------------------------------------------
2024-09-19 更新
- DAOBase 增加事务处理方法
- UserDAO 提交前增加事务判断
-------------------------------------------------------------------------------------
1.BaseEntity
这部分是实体的基类,比较简单,就一个使用类名作为表名的方法
from sqlalchemy import Column, Integer, DateTime, modifier
from sqlalchemy.orm import InstrumentedAttribute, properties
from sqlalchemy.sql import func
from sqlalchemy.ext.declarative import as_declarative, declared_attr
@as_declarative()
class BaseEntity:
@declared_attr
def __tablename__(cls) -> str:
# 如果没有指定__tablename__ 则默认使用model类名转换表名字
return cls.__name__
2.t_user
用户数据表,实体定义,数据库操作的数据依据
这部分我也写了一个自动生成Entity的小应用程序,欢迎大家下载使用
https://download.csdn.net/download/rotion135/85124222
from sqlalchemy import Column, Integer, String,Boolean,DateTime,Double,Float
from Modules.db.BaseEntity import BaseEntity
#t_user
class t_user(BaseEntity):
ID = Column(String(32), primary_key=True,nullable=False, comment="表ID")
UserCode = Column(String(32), primary_key=False,nullable=False, comment="用户编码")
UserName = Column(String(128), primary_key=False,nullable=False, comment="用户名称")
LoginName = Column(String(128), primary_key=False,nullable=False, comment="登录名")
Password = Column(String(255), primary_key=False,nullable=False, comment="登录密码")
UserStatus = Column(Integer, primary_key=False,nullable=True, comment="用户状态 默认0:正常,1:禁用 可字典项配置")
IsDelete = Column(Integer, primary_key=False,nullable=True, comment="删除为1,未删除为0,默认0")
N