1.我们现在模拟的是Django开发构建网站,在开发网站开发的时候,首先我们要考虑的一个问题就是
如何实现我们的业务分离,这是一个课程类的网站
1.用户
2.课程
3.机构
也就是说,不同的业务模块就觉得了,我们需要业务分离,也就是我们要构建多个不同的mode,例如: user mode ,course mode ,organization mode,我们还需要一个记录用户操作模块的mode,引入所有的mode,因为不同的业务mode之间是不可以被相互引用的,也就是operaation mode。
2.在tast中,执行startapp courses ,创建courses mode
3.继续来构建我们的表,像独立的验证码和轮播表,我们可以放在我们的user表里面,代码如下:
# _*_ encoding:utf-8 _*_
from datetime import datetime
from django.contrib.auth.models import AbstractUser
from django.db import models
# Create your models here.
class UserInfo(AbstractUser):
nick_name = models.CharField(max_length=50, verbose_name=u"昵称", default="")
birthday = models.DateField(verbose_name=u"生日", null=True, blank=True)
sex = models.CharField(max_length=5, choices=(("nan", u"男"), ("nv", u"女")), default="nan")
address = models.CharField(max_length=50, default="")
mobile = models.CharField(max_length=11, null=True, blank=True)
img = models.ImageField(max_length=100, upload_to="img/%Y/%X", default="")
class Meta:
verbose_name = "用户信息"
verbose_name_plural = verbose_name
def __unicode__(self):
print(self.username)
return self.username
# 验证码表
class VerificationCode(models.Model):
code = models.CharField(max_length=20, verbose_name="验证码")
email = models.EmailField(max_length=50, verbose_name="邮箱")
send_type = models.CharField(choices=(("register", "注册"), ("signin", "登录")), max_length=10)
send_time = models.DateTimeField(default=datetime.now, )
class Meta:
verbose_name = "验证码"
verbose_name_plural = verbose_name
# 轮播图
class Bannr(models.Model):
title = models.CharField(max_length=20, verbose_name="标题")
bannr_img = models.ImageField(upload_to="bannr/%Y/%X", default="")
link_url = models.CharField(max_length=200, verbose_name="访问地址")
index = models.IntegerField(default=100, verbose_name="排序")
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
class Meta:
verbose_name = "轮播图"
verbose_name_plural = verbose_name
from datetime import datetime 是Python自带api,我们需要再添加字段的时候自动添加所有要引用这个,构建表的时候生成的时间
default=datetime.now
代码写完过后需要生成表,执行以下操作:
makemigrations mxteaching_app
migrate mxteaching_app
makemigrations mode名字
migrate mode名字
效果:
做上面操作,就是我们定义的mode