12(2),2024-2024华为Python面试真题

  • 数据库类型:varchar

  • 注意: 必须要指定max_length参数值

  • DateField()

  • 数据库类型:date

  • 作用:表示日期

  • 参数:

  • auto_now:每次保存对象时,自动设置该字段为当前时间(取值:True / False)

  • auto_now_add:当对象第一次被创建时自动设置当前时间(取值:True / False)

  • default:设置当前时间(取值:字符串格式时间,如:‘2019-6-1’)

  • 以上三个参数只能多选一

  • DateTimeField()

  • 数据库类型:datetime(6)

  • 作用:表示日期和时间

  • 参数同DateField

  • FloatField()

  • 数据库类型:double

  • Django、数据库中都是用小数表示值

  • DecimalField()

  • 数据库类型:decimal(x,y)

  • Django、数据库中都是用小数表示值

  • 参数:

  • max_digits:位数总数,包括小数点后的位数。该数值必须大于等于decimal_places

  • decimal_places:小数点后的数字量数

  • EmailField()

  • 数据库类型:varchar

  • Django、数据库中都是用字符串表示值

  • IntegerField()

  • 数据库类型:int

  • Django、数据库中都是用整数表示值

  • ImageField()

  • 数据库类型:varchar(100)

  • 作用:在数据库中为了保存图片的路径

  • Django、数据库中都是用字符串表示值

  • TextField()

  • 数据库类型:longtext

  • 作用:表示不定长的字符数据

  • 官方文档

https://docs.djangoproject.com/en/2.2/ref/models/fields/#field-types

3.3. 创建模型类测试


在bookstore/models.py应用中,添加一个模型类

  • Author - 作者

  • name CharField 姓名 长度最大11

  • age IntegerField 年龄

  • email EmailField 邮箱

  • 代码:

class Author(models.Model):

name = models.CharField(“姓名”, max_length=11)

age = models.IntegerField(“年龄”)

email = models.EmailField(“邮箱”)

  • 迁移:

在这里插入图片描述

3.4. 字段选项


  • 字段选项,指定创建的列的额外的信息

  • 允许出现多个字段选项,多个选项之间使用,隔开

  • primary_key:如果设置为True,表示该列为主键,如果指定一个字段为逐渐,则此数据表不会创建id字段。

  • blank:设置为True时,字段可以为空。设置为False时,字段是必须填写的。

  • null:如果设置True,表示该列值允许为空。默认为False,如果此选项为False,建议加入default选项来设置默认值。

  • default:设置所在列的默认值,如果字段选项null=False,建议添加此项。

  • db_index:如果设置为True,表示为该列增加索引。

  • unique:如果设置为True,表示该字段在数据库中的值必须是唯一(不能重复出现)。

  • db_column:指定列的名称,如果不指定的话则采用属性名作为列名。

  • verbose_name:设置此字段在admin界面上的显示名称

3.5. 字段选项样例


创建一个属性,表示用户长度,长度30个字符,必须是唯一的,不能为空,添加索引

name = models.CharField(max_length=30, unique=True, null=False, db_index=True)

官方文档:

https://docs.djangoproject.com/en/2.2/ref/models/fields/#field-options

3.6. 注意


修改过字段选项、添加或更改均要执行makemigrations和migrate

3.7. Meta类


使用内部Meta类,来给模型赋予属性,Meta类下面有很多内建的类属性,可以对模型类做一些控制:

示例:

file : bookstore/models.py

from django.db import modele

class Book(models.Model):

title = models.CharField(“书名”, max_length=50, default=‘’)

price = models.DecimalField(“定价”, max_digits=7, decimal_places=2, default=0.0)

info = models.CharField(“信息”, max_length=100, default=‘’)

class Meta:

db_table = ‘book’ # 可改变当前模型类对应的表名

迁移后:

在这里插入图片描述

表名变成了book

在这里插入图片描述

练习:

在这里插入图片描述

class Book(models.Model):

title = models.CharField(“书名”, max_length=50, default=‘’, unique=True)

pub = models.CharField(“出版社”, max_length=100, default=‘’, null=False)

price = models.DecimalField(“价格”, max_digits=7, decimal_places=2)

marker_price = models.Dec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值