目录
1、app/user_operation/models.py的设计:
一、项目需求分析
1、项目介绍
1、技术难点
- Vue + Django Rest Framework 前后端分离技术
- xadmin后台管理系统
- throttling 用户和IP限速
- 文档自动化管理
- Sentry 完成线上系统的错误日志的监控和告警
- 第三方登录和支付宝支付的集成
- 本地调试远程服务器代码的技巧
2、系统功能
- 用户注册、登录、注销和第三方登录。 其中手机号码注册支持倒计时功能,服务器端手机号码发送频次限制。
- 用户个人中心展示和更新个人信息、用户收藏、用户评论、用户收货地址和用户订单。
- 商品管理: 商品分页展示、商品过滤/搜索/排序、商品搜索、热卖商品、商品详情、商品收藏等。
- 商品分类管理 : 子分类、 搜索、 大类的推荐商品。
- 留言 支付宝支付,扫码支付。跳回商户页面。
- 购物车管理、订单管理。
3、项目环境
- 操作系统: Windows/Linux/Mac
- 编程语言: Python3.x
- Web框架: Django 2.2 Xadmin
- 前端框架: Vue Vue-router Vuex
- 数据库: MySQL/Mariadb/sqlite
- IDE工具: Pycharm
4、后台管理页面
后台呈现的界面将会以以下界面显示出来。
二、数据库模型设计
声明:此次项目设计是在windws下完成的。
一、准备工作
- 创建项目NewShopProject
- 创建子应用: 存储在app目录中(创建的是package,不是目录)
users 用户认证
goods 商品
trade 交易
user_operation 用户操作
创建子应用的时候,可以选择手动创建,也可以选择在命令行进行创建:(
注意:创建的是package)
pycharm中命令行创建子应用的方法:
NewShopProject\app>python ../manage.py startapp users
NewShopProject\app>python ../manage.py startapp goods
NewShopProject\app>python ../manage.py startapp trade
NewShopProject\app>python ../manage.py startapp user_operate
创建后效果如下:
二、用户认证数据库模型设计
1、 app/users/models.py
# app/users/models.py
from datetime import datetime
from django.contrib.auth.models import AbstractUser
from django.db import models
class UserProfile(AbstractUser):
"""用户信息"""
GENDER_CHOICES = (
("male", "男"),
("female", "女")
)
# 用户用手机注册,所以姓名,生日和邮箱可以为空,verbose是列属性在后台admin显示的名称。
name = models.CharField(verbose_name="姓名", max_length=30, null=True, blank=True)
birthday = models.DateField(verbose_name="出生年月", null=True, blank=True)
gender = models.CharField(verbose_name="性别", max_length=6, choices=GENDER_CHOICES,default="female")
"""
null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空。
blank 是针对表单的,如果 blank=True,表示你的表单填写该字段的时候可以不填
"""
mobile = models.CharField("电话", max_length=11, null=True, blank=True)
email = models.EmailField("邮箱", max_length=100, null=True, blank=True)
# 元数据操作
class Meta:
# 后台管理显示单数和复数的名称
verbose_name = "用户信息"
verbose_name_plural = verbose_name
def __str__(self):
return self.username
class VerifyCode(models.Model):
code = models.CharField("验证码", max_length=10)
mobile = models.CharField("电话", max_length=11)
add_time = models.DateTimeField("添加时间", default=datetime.now)
class Meta:
verbose_name = "短信验证"
verbose_name_plural = verbose_name
def __str__(self):
return self.code
模型文件写完了,怎么生效呢?要想替换系统的用户,还要在settings中配置