【Django-02】 Model模型和模型描述对象Meta

Model和Meta

概念

就是对象的意思,底层一个Model对应一张表,而Meta是Model的内部类,是用来描述Model和数据库表的相关元数据信息,比如主键,排序,unique_key 的。

也不是啥新鲜的概念。

Model

所有自定义的模型都要继承django.db.models

Meta

Meta是你定义的模型的内部类,没啥稀奇的。

Model支持的字段类型

为了方便。Model到数据库都定义好了字段类型,这算是一种映射概念,也没啥稀奇的。

AutoField: 自增id

VooleanField: true/false 数据库存的是数字,模型映射为True/False

CharField: varchar类型

DateField:Date 日期【2023-10-01】

DateTimeField: 日期时间【2023-10-01 23:10:33】

IntergerField: int

TextField: 对应数据库text

TimeField:对应数据库Time [23:12:10]

FloatField: 对应数据库Double

FileField: 对应数据库varChar

ImageField:对应数据库varChar

DecumalField:对应数据库Decimal

Meta 属性

db_table: 值类型字符串->对应生成的数据库表名

manager:值类型 boolean ->是否还由Django管理生命周期

ordering: 值类型 列表->排序,字段前加'-' 表示降序

index_together:值类型列表中放元组,表示唯一键

unique_together:值类型列表中放元组,表示唯一键

例子

python 复制代码
class DwDatabaseAssetItemPwMap(models.Model):
    id = models.CharField(primary_key=True)
    asset_item_id = models.IntegerField('资产项id')
    asset_item_name = models.CharField('资产项名称', max_length=128, blank=True, null=True)
    name = models.CharField('服务器名', max_length=255)
    instance_id = models.CharField('实例id', max_length=128, blank=True, null=True)
    region = models.CharField('区域', max_length=255, blank=True, null=True)
    dw_server_id = models.IntegerField('dw服务器id')
    project = models.ForeignKey(Project, on_delete=models.CASCADE, verbose_name='项目')
    public_ip = models.CharField('公网ip', max_length=255, blank=True, null=True)
    local_ip = models.CharField('内网ip', max_length=255, blank=True, null=True)
    port = models.IntegerField('端口')
    asset_item_pw_id = models.IntegerField('密码id', null=True)
    username = models.CharField('账号', max_length=99)
    password = AesEncryptedCharField(verbose_name='密码', max_length=255)
    asset_id = models.IntegerField('资产项id', null=True)

    class Meta:
        app_label = 'test_table'
        managed = False
        db_table = 'dw_sink_database_asset_item_pw_map'
        unique_together = (('asset_item_id', 'dw_server_id', 'asset_item_pw_id',))
相关推荐
best_virtuoso11 分钟前
PostgreSQL PostGIS安装与配置,现有数据库启用PostGIS扩展
数据库·postgresql
橙汁味的风11 分钟前
3关系型数据库的SQL语言
数据库·sql
学编程的董12 分钟前
07 计算字段的创建与使用 - 数据转换的艺术
数据库·oracle
程序员云帆哥28 分钟前
MySQL JDBC Driver URL参数配置规范
数据库·mysql·jdbc
TDengine (老段)1 小时前
TDengine 数学函数 FLOOR 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
大气层煮月亮1 小时前
Oracle EBS ERP开发——报表生成Excel标准模板设计
数据库·oracle·excel
云和数据.ChenGuang2 小时前
达梦数据库的命名空间
数据库·oracle
三三木木七2 小时前
mysql拒绝连接
数据库·mysql
蹦跶的小羊羔2 小时前
sql数据库语法
数据库·sql
唐古乌梁海2 小时前
【mysql】InnoDB的聚簇索引和非聚簇索引工作原理
数据库·mysql