seo织梦网站建设步骤网站建设管理分工
Model和Meta
- 概念
 - 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:值类型列表中放元组,表示唯一键
例子
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 = Falsedb_table = 'dw_sink_database_asset_item_pw_map'unique_together = (('asset_item_id', 'dw_server_id', 'asset_item_pw_id',))
