Django框架学习之网上商城项目一(后端设计)

本文详细介绍了使用Django框架构建网上商城的后端设计,包括项目需求分析、数据库模型设计(用户认证、商品管理、交易管理、用户操作)、Xadmin后台管理配置、数据库迁移、商品数据批量导入及常见问题的解决方案。通过Vue + Django Rest Framework实现前后端分离,整合xadmin后台管理系统,涵盖了用户管理、商品分类、交易、购物车、订单等多个功能模块。
摘要由CSDN通过智能技术生成

目录

一、项目需求分析

1、项目介绍

1、技术难点

2、系统功能

3、项目环境

4、后台管理页面

二、数据库模型设计

一、准备工作

二、用户认证数据库模型设计

1、 app/users/models.py

三、商品管理模型设计

1、插件安装(xadmin和DjangoUeditor)

2、子应用配置

3、商品分类model 设计

1、app/goods/models.py的代码:

4、trade交易的model设计

1、app/trade/models.py 的设计:

5、用户操作的model设计

1、app/user_operation/models.py的设计:

四、Xadmin后台管理

1、路由配置

2、子应用Xadmin注册

3、用户认证注册

4、商品管理注册

5、交易管理注册

6、用户操作管理注册: 

五、数据库迁移

六、商品数据批量导入

七、一些常遇到的问题以及解决方法

1、问题一: 时区问题

2、问题二: 数据库模型问题

3、问题三: 数据库模型导入问题

八、最终后端设计结果展示:


一、项目需求分析

1、项目介绍

1、技术难点

2、系统功能

3、项目环境

4、后台管理页面

二、数据库模型设计

一、准备工作

二、用户认证数据库模型设计

1、 app/users/models.py

三、商品管理模型设计

1、插件安装(xadmin和DjangoUeditor)

2、子应用配置

3、商品分类model 设计

4、trade交易的model设计

5、用户操作的model设计

四、Xadmin后台管理

1、路由配置

2、子应用Xadmin注册

3、用户认证注册

4、商品管理注册

5、交易管理注册

6、用户操作管理注册: 

五、数据库迁移

六、商品数据批量导入

七、一些常遇到的问题以及解决方法

1、问题一: 时区问题

2、问题二: 数据库模型问题

3、问题三: 数据库模型导入问题

八、最终后端设计结果展示:


一、项目需求分析

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中配置

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值