Django模型类创建

在应用下的models.py中 编写模型类
from django.db import models
class 模型类名(models.Model):
	字段名 = models.字段类型(verbose_name,字段选项)

迁移同步 makemigrations & migrate
例:为bookstore_book表添加一个名为info的字段varchar(100)
class Book(models.Model):
	title = models.CharField('书名',max_length=50,defalut='')   //这个函数必须有长度
	
	
序列化器
from rest_framework import serializers

from music.models import UserInfo
class UserInfoSerializer(serializers.ModelSerializer):
    "定义序列化器"
    name = serializers.CharField(max_length=10)
    pwd = serializers.CharField(max_length=19)
    age = serializers.CharField(min_value=0,max_value=18)

    class Meta:
        model = UserInfo
        fields = '__all__'

字段选项

primary_key如果设置为True,表示该列为主键,如果指定一个字段为主键,则此数据库表不会创建id字段,不指定则自动创建id字段
blank设置为True时,字段可以为空。设置为False时,字段是必须填写的
null设置为True时,表示该列值允许为空。默认为false,如果此选项为false建议加入default选项来设置默认值
default设置所在列的默认值,如果字段选项null=False建议添加此项
db_index设置为True时,表示为该列增加索引
unique设置为True时,表示该字段在数据库中的值必须是唯一(不能重复出现的)
db_column指定列的名称,如果不指定的话则采用属性名作为列名,一般情况下不用给,不用
verbose_name设置此字段在admin界面上的显示名称
choices可供选择的选项,如:性别的选项(男女)
get_FOO_display()展示choices对应的值
 字段选项样例
 #创建一个属性,表示用户名称,长度30个字符,必须是唯一的,不能为空,添加索引
 name = models.CharField(max_length=30,unique=True,null=False,db_index=True,choices=(
 ('1','男'),('2','女')
 ))

模型类Meta类

使用内部Meta类 来给模型赋予属性,Meta类下有很多
class Book(models.Mode):
	class Meta:
		db_table = 'book'  #可以改变当前模型类对应的表名

数据库迁移

生成迁移文件-执行 
python3 manage.py makemigrations 
python manage.py makemigrations
//将在应用下的models.py文件生成一个中间文件,并保存在migrations文件夹中执行迁移脚本程序-执行 
python3 manage.py migrate 
python manage.py migrate 
//执行迁移程序实现迁移。将每个应用下的migrations目录的中间文件同步回数据库

模型基类

django.db.models.Field
CharField DateField FloatField
RelatedField ForeignKey

特殊类型

  • OneToOneField 一对一关联
  • ForeignKey 外键关联
  • ManyToManyField 多对多关联
  • GenericForeignKey 复合关联

类型的选项(可选参数)

  • verbose_name
    大多数模型的第一个参数
    特例: ForeignKey\ManyToManyField\OneToOneField
    方便阅读

DateTimeField

  • auto_now 更新时间为记录更改时的时间
  • auto_now_add 记录创建的时间

使用bulk_create()批量新增数据

user1 = User(name='admin',password='dsa')
user2 = User(name="丛",passworad=password)
user_list = [user1,user2]
User.objects.bulk_create(user_list)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CongJiYong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值