越光后端开发——ygapi(2.新建Model)
1.新建Model
1.users数据
1.在apps/users/models.py中:
from datetime import datetime
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class UserProfile(AbstractUser):
"""
管理员
"""
name=models.CharField(max_length=30,null=True,blank=True,verbose_name='姓名')
mobile=models.CharField(max_length=11,null=True,blank=True,verbose_name='电话')
class Meta:
verbose_name='管理员'
verbose_name_plural = verbose_name
def __str__(self):
return self.username
class WxUsers(models.Model):
"""
微信用户
"""
open_id=models.CharField(max_length=64,null=True,blank=True,verbose_name='OpenId')
token=models.CharField(max_length=64,null=True,blank=True,verbose_name='token')
nickName=models.CharField(max_length=30,null=True,blank=True,verbose_name='微信名')
avatarUrl=models.CharField(max_length=200,null=True,blank=True,verbose_name='用户头像URL')
gender = models.CharField(max_length=4, choices=((',
verbose_name='性别')
province=models.CharField(max_length=20,null=True,blank=True,verbose_name='用户所在省')
city=models.CharField(max_length=20,null=True,blank=True,verbose_name='用户所在市')
country=models.CharField(max_length=20,null=True,blank=True,verbose_name='用户所在旗县区')
longitude=models.CharField(max_length=10,null=True,blank=True,verbose_name='经度')
latitude=models.CharField(max_length=10,null=True,blank=True,verbose_name='纬度')
last_login_time = models.DateTimeField(default=datetime.now, 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.nickName
2.在settings.py中增加配置项
AUTH_USER_MODEL='users.UserProfile'

3.执行数据更新命令:
python manage.py makemigrations python manage.py migrate

2.wish数据
1.apps/wish/models.py中
from django.db import models
from users.models import WxUsers,UserProfile
from datetime import datetime
from django.utils.safestring import mark_safe
# Create your models here.
class Wish(models.Model):
"""
愿望表
"""
wxuser=models.ForeignKey(WxUsers,on_delete=models.CASCADE)
content=models.CharField(max_length=200,default='',verbose_name='愿望内容',help_text='最多200字')
status=models.CharField(max_length=8, choices=((',
verbose_name='阶段')
pv_num=models.IntegerField(default=0,verbose_name='浏览数')
up_num=models.IntegerField(default=0,verbose_name='点赞数')
share_num=models.IntegerField(default=0,verbose_name='转发数')
bb_num=models.IntegerField(default=0,verbose_name='评论数')
end_time = models.DateTimeField(default=datetime.now, 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.content
class News(models.Model):
"""
新闻表
"""
user=models.ForeignKey(UserProfile,on_delete=models.CASCADE)
banner=models.ImageField(max_length=200, upload_to='banner/',verbose_name='轮播图')
title=models.CharField(max_length=15,default='',verbose_name='新闻标题',help_text='最多15字')
content=models.CharField(max_length=800,default='',verbose_name='新闻正文',help_text='最多800字')
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
class Meta:
verbose_name='新闻表'
verbose_name_plural=verbose_name
def __str__(self):
return self.title
def image_url(self):
return mark_safe('<img src="/media/{0}" class="field_img">'.format(self.banner))
image_url.short_description = '轮播图'
class Images(models.Model):
"""
新闻图片
"""
image = models.ImageField(max_length=200, upload_to='images/')
news=models.ForeignKey(News, verbose_name="新闻", blank=True,null=True,on_delete=models.CASCADE)
add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
class Meta:
verbose_name = "新闻图片"
verbose_name_plural = verbose_name
def image_url(self):
return mark_safe('<img src="/media/{0}" class="field_img">'.format(self.image))
image_url.short_description = '图片'
2.安装 pillow包(做图片处理的)
pip install pillow
3.执行数据更新命令:
python manage.py makemigrations python manage.py migrate
3.user_operation数据
1.apps/user_operation/models.py中
from django.db import models
from datetime import datetime
from users.models import WxUsers,UserProfile
from wish.models import Wish
# Create your models here.
class Message(models.Model):
"""
评论表,消息表
"""
user_send=models.ForeignKey(WxUsers,on_delete=models.CASCADE,verbose_name='发出方',related_name='send')
user_receive = models.ForeignKey(WxUsers, on_delete=models.CASCADE, verbose_name='接收方', related_name='receive')
wish=models.ForeignKey(Wish,on_delete=models.CASCADE,verbose_name='被评论的愿望')
content = models.CharField(max_length=30, default='', verbose_name='内容', help_text='最多30字')
is_read=models.BooleanField(default=False,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.content
class Pick(models.Model):
"""
点赞表
"""
user = models.ForeignKey(WxUsers, on_delete=models.CASCADE, verbose_name='点赞者')
wish = models.ForeignKey(Wish, on_delete=models.CASCADE, verbose_name='被点赞的愿望')
action=models.BooleanField(default=True,verbose_name='行为',help_text='true是点赞false是取消点赞')
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
class Meta:
verbose_name='点赞表'
verbose_name_plural=verbose_name
def __str__(self):
return self.user
class Share(models.Model):
"""
分享表
"""
user = models.ForeignKey(WxUsers, on_delete=models.CASCADE, verbose_name='分享者')
wish = models.ForeignKey(Wish, on_delete=models.CASCADE, 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
class Notice(models.Model):
"""
系统通知表(超越私信)
"""
admin=models.ForeignKey(UserProfile,on_delete=models.CASCADE)
content = models.CharField(max_length=200, default='', verbose_name='内容', help_text='最多200字')
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
class Meta:
verbose_name='系统通知表'
verbose_name_plural=verbose_name
def __str__(self):
return self.content
2.执行数据更新命令:
python manage.py makemigrations python manage.py migrate
越光后端开发——ygapi(2.新建Model)的更多相关文章
- 越光后端开发——ygapi(3.引入xadmin)
1.引入xadmin 1.将xadmin文件夹放入extra_apps目录下: 2.在每个app下新建adminx.py 1.apps/users/目录下新建adminx.py: import xad ...
- 越光后端开发——ygapi(1.新建项目ygapi、新建MySQL数据库yg、项目连接数据库)
1.新建MySQL数据库 show databases;//查看已经有的数据库 create database yg; 2.新建项目ygapi 1.使用pycharm新建django项目取名ygapi ...
- 超越村后端开发(2:新建models.py+xadmin的引入)
1.新建Model 1.users数据 1.在apps/users/models.py中: from datetime import datetime from django.db import mo ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 & 我的前后端开发简史
---新内容开始--- 番外 大家周一好呀,又是元气满满的一个周一呀!感谢大家在周一这个着急改Bug的黄金时期,抽出时间来看我的博文哈哈哈,时间真快,已经到第十四篇博文了,也很顺顺(跌跌)利利 (撞撞 ...
- 后端开发实践——Spring Boot项目模板
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...
- (译)Windows Azure:移动后端开发的主要更新
Windows Azure:移动后端开发的主要更新 这周我们给Windows Azure释出了一些很棒的更新,让云上的移动应用开发明显的简单了.这 些新功能包括: 移动服务:定制API支持移动服务:G ...
- 奉上简单的.Net后端开发模板
假定一个场景,开始做开发的你,领导走到你的面前说道:"小伙子,看了简历和最近的工作表现,很不错,现在交给一个任务,开发一个简单的CMS后端接口吧,前端有人配合你",当时你内心读白: ...
- 后端开发使用pycharm的技巧
后端开发使用pycharm的技巧 目录 后端开发使用pycharm的技巧 1.使用说明 2.database 3.HTTP Client 1.使用说明 首先说明,本文所使用的功能为pycharm专业版 ...
- Java 后端开发常用的 10 种第三方服务
请肆无忌惮地点赞吧,微信搜索[沉默王二]关注这个在九朝古都洛阳苟且偷生的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题. 严格意义上 ...
随机推荐
- 访问vsts私有nuget
访问vsts私有nuget Intro 有时候我们可能要自己搭建一个 nuget,如果不对外公开,即包浏览也是需要权限的,那我们应该怎么做才可以支持在哪里都可以正常的还原包呢? 我是在 VSTS(Vi ...
- 详解 OneAlert 排班可以帮你做什么
排班的存在,实质是通过有序安排,降低企业/团队人力成本,提升工作效率. 阅读导航(预计2min) 1. 详解排班功能 轮班机制 工作时间 双视图展示 灵活调整 2. 利用排班如何助力运维团队 排班 ...
- Oracle根据符合条件的数据循环批量更新
--批量对符合条件的表记录进行更新 --aa代表查询出的符合条件数据的别名 --aa后的表示需要符合的条件 --loop后开始写更新操作 begin for aa in (select a.objec ...
- Swift NSAttributedString的使用
NSMutableAttributedString let testAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue, ...
- 我的第一个python web开发框架(35)——权限数据库结构设计
接下来要做的是权限系统的数据库结构设计,在上一章我们了解了权限系统是通过什么来管理好权限的,我们选用其中比较常用的权限系统来实现当前项目管理要求. 下面是我们选择的权限系统关系模型: 从以上关系可以看 ...
- kunbernetes-快速入门
1.入门概述 本文以在容器云上部署一个nexus3应用为例,通过通过一步步的操作,帮助用户快速的对Kubernetes有一个快速和整体的认识.通过快速入门,可以提供如下知识内容: 在集群中部署一个容器 ...
- spring boot +mybatis(通过properties配置) 集成
注:日常学习记录贴,下面描述的有误解的话请指出,大家一同学习. 因为我公司现在用的是postgresql数据库,所以我也用postgresql进行测试 一.前言 1.Spring boot 会默认读取 ...
- R语言学习——因子
变量可分为名义型变量.有序型变量或者连续型变量.名义型变量是没有顺序之分的类别变量,如糖尿病类型Diabetes(Type1.Type2),即使在数据中Type1编码为1而Type2编码为2,这也并不 ...
- display:inline-block,block,inline的区别与用法
一.首先要了解什么是块级元素与行级元素 块级元素 会占领页面的一行,其后多个block元素自动换行. 可以设置width,height,设置了width后同样也占领一行.同样也可以设置 margi ...
- koa2源码解读及实现一个简单的koa2框架
阅读目录 一:封装node http server. 创建koa类构造函数. 二:构造request.response.及 context 对象. 三:中间件机制的实现. 四:错误捕获和错误处理. k ...