美文网首页django-game
(一)django-game:model 设计

(一)django-game:model 设计

作者: 你常不走的路 | 来源:发表于2018-01-19 14:23 被阅读70次
看了看 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

到这里 基本 model就 可以了 然后 下一篇 讲一讲 xadmin集成

相关文章

  • (一)django-game:model 设计

    看了看 4399网站 首页 就是 head 一些广告 和一些 登录 搜索 这个先不管 然后就是写下面的 导...

  • 关于iOS中的MVC框架模式的学习

    Model-View-Controller Model-View-Controller设计模式即MVC设计模式,也...

  • 简单谈谈MVC设计模式

    一、MVC设计模式 MVC,全称是 Model View Controller,是模型 (model)-视图 (v...

  • vue笔记

    设计模式(MVC/MVP/MVVM) MVC(Model View Controller): 数据模型(Model...

  • Java Web的网站架构模式

    一、设计模式 Model 1 和Model 2 Model 1 前面学习了Servlet和Jsp,对这两个有个大概...

  • MVC和MVT框架对比

    MVC框架 ——一种常用的设计框架 MVC全名是Model View Controller,是模型(model)-...

  • VUE面试题

    一、什么是MVVM?MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model ...

  • Vue.js面试题整理

    一、什么是MVVM?MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model ...

  • Model的设计

    前言 很多的app使用MVC设计模式来将“用户交互”与“数据和逻辑”分开,而model其中一个重要作用就是持久化。...

  • 1、Vue入门初探

    简述MVVM MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model 层代表...

网友评论

    本文标题:(一)django-game:model 设计

    本文链接:https://www.haomeiwen.com/subject/fjpooxtx.html