创建数据库配置
5/10/2023 配置
# 创建 Template 模板表
from aestate.dbs._mysql import tag
from aestate.work.Config import MySqlConfig
from aestate.work.Manage import Pojo
class table_template(Manage.Pojo):
def __init__(self, **kwargs):
"""
模板类对象
"""
# 创建一个自增的主键id,并且不允许为空
self.id = tag.intField(primary_key=True, auto_field=True, is_null=False, comment='主键自增')
# 创建一个创建时间,并设置`auto_time=True`,在第一次保存时可以为其设置默认为当前时间
self.create_time = tag.datetimeField(auto_time=True, is_null=False, comment='创建时间')
# 创建一个更新时间,并设置`update_auto_time=True`,保证每次修改都会更新为当前时间
self.update_time = tag.datetimeField(update_auto_time=True, is_null=False, comment='更新实际按')
# 设置config_obj未db_conf的对象,
super(table_template, self).__init__(
# 导入配置类
config_obj=DatabaseConfig(),
# 设置日志配置
log_conf={
# 保存位置
'path': "/log/",
# 是否允许保存日志
'save_flag': True,
# 当日志到达多少MB时删除日志重新记录
'max_clear': 100
},
# 必备的字段,每一个Pojo对象都必须包含一个`**kwargs`
**kwargs)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 配置解释
config_obj
- 导入我们前面的配置类,注意要实例化
log_conf
path
:保存日志的位置save_flag
:是否要保存日志max_clear
:当日志到达多少时删除日志重新记录
**kwargs
- 每个类表都需要携带
**kwargs
才可以进行初始化,因为例如Pojo(**kwargs).save()
方法中,需要在对象实例化时传入参数,如果要使用的话必须要在super().__init__
()中传入**kwargs
。为了防止关于漏写发生不可预料的报错问题,建议每一个表对象都传**kwargs
- 每个类表都需要携带
# 字段设置(以 MYSQL 为示例)
首先从 aestate.dbs._mysql
导入 tag
,我们可以通过 ide 的提示看到,tag
下包含非常多的字段类型,有:
- 基本父类
- baseTag:基本字段,拥有 mysql 大部分类型,下面每一个类都需要继承 baseTag 作为父类
- Template:此类继承 baseTag,提供注册更新和标记字段,update_field 方法可以识别
- 数字
- tinyintField:tinyint 字段
- intField:int 字段
- bigintField:bigInt 字段
- floatField:float 字段
- doubleField:double 字段
- 时间
- datetimeField:datetime 字段
- 字符
- charField:字符字段,
- varcharField:varchar 字段
- textField:text 字段,
- tinytextField:tinyText 字段,
- longtextField:longText 字段,
- 特殊字段
- boolField:布尔字段,实际以 bit 字段而来,0=False,1=True,
Template
作为 mysql 基本类型的父类,所有的字段类型都是从此处转发到 baseTag
,如果我们已有的类型满足不了使用的需求,可以通过继承 baseTag 进行扩展字段的功能,baseTag 目前可接受参数有:
- name:字段名
- length:长度
- d_point:小数点
- t_type:类型
- is_null:允许为空
- primary_key:键
- comment:注释
- auto_field:自增长键
- auto_time:默认设置当前时间
- update_auto_time:默认设置当前时间并根据当前时间更新
- default:默认值