案例1:model中创建类的细节
models.py
from django.db import models
# Create your models here.
class department(models.Model):
"""部门表"""
title = models.CharField(verbose_name="部门名", max_length=64)
class UserInfo(models.Model):
"""员工表"""
name = models.CharField(verbose_name="姓名", max_length=16)
pwd = models.CharField(verbose_name="密码", max_length=64)
age = models.IntegerField(verbose_name="年龄")
#允许小数点后2位
account = models.DecimalField(verbose_name="账户余额", max_digits=10, decimal_places=2, default=0)
create_time = models.DateTimeField(verbose_name="入职时间")
#无约束
#depart_id = models.BigIntegerField(verbose_name="部门ID")
#1.有约束
# -to, 与哪张表关联
# -to_Field,表中的哪一列数据关联
# 变量名为depart,Django自动补足为depart_id
##当部门表被删除
##1.级联删除
depart = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)
##2.关联列置空,需允许为空
depart = models.ForeignKey(to="Department", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)
#性别
#在Django中做约束
gender_choices =(
(1, "男"),
(2, "女"),
)
gender = models.SmallIntegerField(verbose_name="性别", choices=gender_choices)
案例1:一些特殊操作
例如员工数据新增:
mysql> insert into app01_userinfo(name, pwd, age, account, create_time, gender,depart_id) values("刘楠", "123", 23, 100.68, "2010-10-11", 1, 2);
在views.py中试写员工内容的显示
即在python编写
def user_list(request):
user_list = models.UserInfo.objects.all()
for obj in user_list:
"""
将日期改为字符串
注意%Y(大写)显示2010
%y(小写)显示10
"""
print(obj.create_time.stftime("%Y-%m-%d"))
#以下是基于Django才有的操作
"""
创表时,gender定位元组,1代表男,2代表女
gender_choices =(
(1, "男"),
(2, "女"),
)
gender = models.SmallIntegerField(verbose_name="性别", choices=gender_choices)
obj.gender显示1或2
obj.get_gender_display() 显示男或女
"""
print(obj.get_gender_display())
"""
创表时,depart_id继承自department表
depart = models.ForeignKey(to="Department", to_field="id", on_delete=models.CASCADE)
命名为depart,但数据库中自动命名为dep