创建数据库配置

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

# 配置解释

  • 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:默认值
Last Updated: 5/10/2023, 3:05:26 PM