看了看 4399网站 首页 就是 head 一些广告 和一些 登录 搜索 这个先不管
然后就是写下面的 导航 分类 ,然后 下面还有更加细致的分类 每个一级类别 下面还有一个二级类别,
然后 就是游戏信息
然后进入 游戏详情页 看看 就是 开始游戏 一些游戏的信息 下面有一个富文本 介绍如何游戏
旁边的推荐 热门 相似 之类
按照上面 我们创造 三个 app 一个是 user 一个是 game 另一个 user_operation
首先 我们来写 user 的 model:
先简单的写一些 后期 如果 还有更详细的内容 在加上来
from django.db import models
from datetime import datetime
from django.contrib.auth.models import AbstractUser
# Create your models here.
class UserProfile(AbstractUser):
name = models.CharField(max_length=10,verbose_name="昵称",default='')
birday = models.DateField(verbose_name="生日",null=True,blank=True)
gender = models.CharField(max_length=6,choices=(('male','男'),('female','女')),default='female')
mobile = models.CharField(max_length=11,null=True,blank=True,verbose_name='手机号')
image = models.ImageField(upload_to="image/%Y/%m",default='',max_length=100)
class Meta:
verbose_name = "用户信息"
verbose_name_plural = verbose_name
def __str__(self):
return self.username
# email验证
class EmailVerifyRecord(models.Model):
code = models.CharField(max_length=20, verbose_name=u"验证码")
email = models.EmailField(max_length=50, verbose_name=u"邮箱")
send_type = models.CharField(verbose_name="验证码类型", max_length=30,
choices=(("register", '注册'), ("forget", "找回密码"), ('update_email', '修改邮箱')))
send_time = models.DateTimeField(verbose_name="发送时间", default=datetime.now)
class Meta:
verbose_name = "邮箱"
verbose_name_plural = verbose_name
def __str__(self):
return "{0}({1})".format(self.code, self.email)
然后是 game 的model:
我这里 以类别 为一级类别 标签为二级类别
游戏可以有一个 一级类别 有很多个 二级类别
游戏和 类别 是多对一关系
游戏和标签 是多对多关系
标签和类别 是 多对一关系
from django.db import models
from datetime import datetime
# Create your models here.
class Category(models.Model):
name = models.CharField(max_length=10, verbose_name="类别")
add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
class Meta:
verbose_name = '类别管理'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class Tags(models.Model):
name = models.CharField(max_length=10, verbose_name="标签")
category = models.ForeignKey(Category, verbose_name="类别")
add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
class Meta:
verbose_name = '标签管理'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class Games(models.Model):
name = models.CharField(max_length=10, verbose_name="游戏名")
category = models.ForeignKey(Category, verbose_name='类别')
tags = models.ManyToManyField(Tags, verbose_name="标签")
file = models.FileField(upload_to="game/%Y/%m", verbose_name="游戏")
fav_nums = models.IntegerField(default=0, verbose_name='收藏数')
detail = models.TextField()
is_hot = models.BooleanField(default=False)
is_new = models.BooleanField(default=False)
add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
class Meta:
verbose_name = '游戏信息'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
然后 就是user_opreation 的model
想了一下 似乎 就只有 用户收藏 和 用户玩过 这两个操作 以后 还可以加上评论 或者 其他的
from game.models import Games
User = get_user_model()
class UserFav(models.Model):
user = models.ForeignKey(User, verbose_name="用户名")
game = models.ForeignKey(Games, verbose_name="游戏")
add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
class Meta:
verbose_name = '用户收藏'
verbose_name_plural = verbose_name
def __str__(self):
return self.user.username
class UserPlay(models.Model):
user = models.ForeignKey(User, verbose_name="用户名")
game = models.ForeignKey(Games, verbose_name="游戏")
add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
class Meta:
verbose_name = '用户玩过'
verbose_name_plural = verbose_name
def __str__(self):
return self.user.username
网友评论