爬虫、数据分析、人工智能、框架等领域。

Django项目

一、 分析页面抽象app
用户users 课程courses 机构 orgs 用户操作operations

二、 App设计
1、不能循环引用 2、设计上层app去解耦

三、 分析页面抽象模型

四、 模型设计
设置好settings和urls以后需要考虑到项目当中的数据,因此我们需要把每个App里面的模型类抽象并且把模型类创建出来,需要回过头再去查看页面,抽象每个模型类当中的数据模型字段

  1. from django.db import models
  2. from django.contrib.auth.models import AbstractUser
  3. from datetime import datetime
  4. # Create your models here.
  5. class UserProfile(AbstractUser):
  6. image = models.ImageField(upload_to='users/%y/%m/%d',max_length=200,verbose_name="用户头像",null=True,blank=True)
  7. nick_name = models.CharField(max_length=20,verbose_name="用户昵称",null=True,blank=True)
  8. birthday = models.DateTimeField(null=True,blank=True,verbose_name="用户生日")
  9. gender = models.CharField(choices=(('男','男'),('女','女')),verbose_name="用户性别",max_length=6,default='男')
  10. address = models.CharField(max_length=300,verbose_name="用户地址",null=True,blank=True)
  11. phone = models.CharField(max_length=11,verbose_name="用户手机")
  12. is_start = models.BooleanField(default=False,verbose_name="是否激活")
  13. add_time = models.DateTimeField(default=datetime.now,verbose_name="添加时间")
  14. def __str__(self):
  15. return self.username
  16. class Meta:
  17. verbose_name = '用户信息'
  18. verbose_name_plural = verbose_name
  19. class BannerInfo(models.Model):
  20. image = models.ImageField(upload_to='banners/%y/%m/%d',max_length=200,verbose_name="轮播图片")
  21. url = models.URLField(max_length=200,verbose_name='轮播链接')
  22. add_time = models.DateTimeField(default=datetime.now,verbose_name="添加时间")
  23. def __str__(self):
  24. return str(self.image)
  25. class Meta:
  26. verbose_name = '轮播图信息'
  27. verbose_name_plural = verbose_name
  28. class EmailVerifyCode(models.Model):
  29. email = models.EmailField(max_length=50,verbose_name="邮箱")
  30. code = models.CharField(max_length=20,verbose_name="验证码")
  31. send_type = models.CharField(choices=(('register','注册激活'),('forget','重置密码'),('change','修改邮箱')),max_length=15,verbose_name="发送类别")
  32. add_time = models.DateTimeField(default=datetime.now,verbose_name="发送时间")
  33. def __str__(self):
  34. return self.code
  35. class Meta:
  36. verbose_name='邮箱验证码'
  37. verbose_name_plural = verbose_name

五、 Xadmin的配置和使用
xadmin是一个django的管理后台实现,使用了更加灵活的架构设计及Bootstrap UI框架, 目的是替换现有的admin,国人开发,有许多新的特性。