目录
摘 要 I
目录 III
第一章 绪论 1
1.1 课题研究背景及意义 1
1.2 国内外研究现状 2
1.3 本文的主要工作 3
第二章 技术选型 4
2.1 Python 4
2.2 Django 5
2.3 MySQL 6
2.4 Django Rest Framework 7
2.5 Vue 8
第三章 系统分析 9
3.1 可行性分析 9
3.2 系统需求分析 10
3.2.1 业务需求分析 10
3.2.2 用户需求 11
3.2.3 功能需求分析 12
3.2.4 非功能需求分析 14
第四章 总体设计 16
4.1 总体功能模块设计 16
4.2 数据库设计 18
4.2.1 数据表结构 18
4.2.2 数据表字段 18
第五章 详细设计与实现 25
5.1 用户模块 25
5.2 商品模块 32
5.3 用户操作模块 41
5.4 交易模块 44
5.5 后台模块 51
5.6 其他模块 52
第六章 系统测试与部署 54
6.1 测试环境 54
6.2 系统测试 54
6.3 测试内容 55
6.4 测试结果 58
第七章 全文总结 59
参考文献 60
致谢 61
第三章 系统分析
3.1 可行性分析
可行性研究的目的就是用最小的代价在尽可能短的时间里确定问题是否能解决。本章将从以下四个方面去阐述该项目的可行性。
从经济可行性的角度分析,该项目的实施不涉及物力成本,只涉及人力的成本。若该项目是市场上的某个商业项目,确定项目是否值得投资开发,即要分析在整个软件生存周期中所花费的代价和效益之间的度量。本课题属于毕业设计,不涉及成本和效益,默认可行。
从技术可行性角度讲,如今要实现一个电商网站,技术已经不是问题,本项目中将使用开源免费的Python生态中的多个组件去完成这样一个电商网站,使用Django去实现网站基础的搭建、使用DRF去实现网站向前端所提供的各个接口、使用Vue实现前端页面的制作,期间设计的第三方登录、第三方支付都可以使用第三方开放平台所提供的API来实现,在项目部署时,本项目同样使用开源免费的Nginx容器。以上所提到的各种技术都已相对成熟,并且在行业内也属于领先水平,所以在技术上,是完全行得通的。
从操作可行性上分析,本项目开发阶段是在Windows环境下实施的,在这个环境下各种操作都非常方便,各种开发工具一应俱全,对于编写代码也十分便利,是十分友好的开发环境。项目编码结束后将会部署在Linux环境下,这个环境对于Python的支持十分到位,同时其灵活性和稳定性也相较于Windows更高,操作也十分便捷。所以在操作可行性上,是可行的。
最后从法律可行性上讲,本项目并不涉及与国家安全相关的一些信息,也不会危害社会。在项目的安全性得到保障的条件下,也不会泄露用户的个人信息。本项目属于B2C的电商网站,所出售的产品都是商家自己的产品,这也免去了很多C2C电商所产生的法律问题。在法律上,项目是可行的。
综上所述,本项目在经济可行性、技术可行性、操作可行性和法律可行性上都行得通,是值得去实施的一个项目。
3.2 系统需求分析
软件需求分析是软件开发期的第一个阶段,是软件生存周期最重要的一步,是关系到软件开发成败的关键步骤。它在问题定义和可行性研究阶段之后进行。它的基本任务是准确地回答"系统必须做什么?"这个问题。虽然在可行性研究阶段粗略了解了用户的需求,至还提出了一些可行的方案,但是可行性研究的基本目的是最小的代价在尽可能短的时间内确定问题是否存在可行的解法,因此许多细节都被忽略了,一个微小的错漏都可能导致误解或铸成系统的大错,在纠正时付出巨大的代价。因而可行性研究并不能代替需求分析,它实际上并没有准确地回答"系统必须做什么"这个关键问题。
需求分析是整个软件生命周期中非常重要的阶段,决定着软件项目的成败,在这个阶段本章将从业务需求、用户需求、功能需求和非功能需求这四个方面去阐述项目的需求问题。
3.2.1 业务需求分析
业务需求主要是面向投资人的需求,通过客户访谈的方式可以获取项目的业务需求。客户访谈是一个直接与客户交流的过程,既可以了解高层用户对软件的要求,也可以直接听取用户的呼声。
通过带入甲方角色来分析项目的业务需求。
甲方需要这样一个平台,在这个平台上,作为直接向用户出售商品商户,可以轻松地管理商品,这里面包括对商品的分类管理、首页头图投放等问题。在此之上,甲方也需要方便地管理用户和订单,若用户对于账户或订单有一些变更,作为管理者的甲方管理员可以轻松的进行管理。还有其最基本的功能,要完成一个或多个商品的交易流程,这个过程一定要是安全的。
业务需求分析是客户或机构组织层面的需求分析。由于这一些人并不是专业的技术人员,所以我们在与他们进行沟通是要注意引导和提取他们对系统业务需求。
项目的系统目标是构建一个B/S架构的电子设备线上商城,管理员可以进行用户的权限管理、信息管理,还可以进行交易管理和订单管理,也可以进行商品的添加、删除、修改等操作。用户可以注册登录商城账号,浏览商品,并对商品进行过滤筛选,完成一个完整的交易。实现以上功能即满足基本业务需求。
3.2.2 用户需求
用户需求是在软件设计和开发的过程中以用户为核心,进心调查与分析,发掘用户的具体要求。在本系统中,有以下两种重要角色,用户和管理员。作为用户,主要任务是访问网站进行商品购买和其他操作,而作为管理员,主要是对于数据库中的商品、订单、用户进行管理操作。项目中将系统划分为以下几个模块,这也是Django提倡开发者这样做的,以模块的方式划分职责,将系统划分为商品模块、交易模块、用户操作模块、用户模块和后台模块。
在本项目中,配合使用DRF,使用REST风格的API使接口更加通俗易懂且易于管理维护。
在本项目中,主要由四个模块组成,这四个模块分别是用户模块、用户操作模块、交易模块和商品模块,本文转载自http://www.biyezuopin.vip/onews.asp?id=13089这四个模块相互协作,完成网站的主体功能,具体主体功能模块设计图如图4-2:

图4-2 功能模块设计图

from django.shortcuts import render# Create your views here.
from django.contrib.auth.backends import ModelBackend
from django.contrib.auth import get_user_model
from django.db.models import Q
from rest_framework.mixins import CreateModelMixin
from rest_framework import viewsets
from .serializers import SmsSerializer, UserRegSerializer, UserDetailSerializer
from rest_framework.response import Response
from rest_framework import status
from random import choice
from rest_framework import mixins
from rest_framework import permissions
from rest_framework import authentication
from rest_framework_jwt.authentication import JSONWebTokenAuthenticationfrom rest_framework_jwt.serializers import jwt_encode_handler, jwt_payload_handlerfrom utils.yunpian import YunPian
from .models import VerifyCodeUser = get_user_model()class CustomBackend(ModelBackend):"""自定义用户验证"""def authenticate(self, username=None, password=None, **kwargs):try:user = User.objects.get(Q(username=username) | Q(mobile=username))if user.check_password(password):return userexcept Exception as e:return Noneclass SmsCodeViewset(CreateModelMixin, viewsets.GenericViewSet):"""发送短信验证码"""serializer_class = SmsSerializerdef generate_code(self):"""生成四位数字的验证码:return:"""seeds = "1234567890"random_str = []for i in range(4):random_str.append(choice(seeds))return "".join(random_str)def create(self, request, *args, **kwargs):serializer = self.get_serializer(data=request.data)serializer.is_valid(raise_exception=True)mobile = serializer.validated_data["mobile"]# yun_pian = YunPian("")code = self.generate_code()# sms_status = yun_pian.send_sms(code=code, mobile=mobile)sms_status = {}sms_status["code"] = 0if sms_status["code"] != 0:return Response({"mobile": sms_status["msg"]}, status=status.HTTP_400_BAD_REQUEST)else:code_record = VerifyCode(code=code, mobile=mobile)code_record.save()return Response({"mobile": mobile}, status=status.HTTP_201_CREATED)class UserViewset(CreateModelMixin, mixins.RetrieveModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet):"""用户(用户注册,用户获取)"""serializer_class = UserRegSerializerqueryset = User.objects.all()authentication_classes = (authentication.SessionAuthentication, JSONWebTokenAuthentication)# 在用户注册的时候,不可以使用这种permission# permission_classes = (permissions.IsAuthenticated, )# 通过重写get_permissions函数,动态的加载permission_classesdef get_permissions(self):if self.action == "retrieve":return [permissions.IsAuthenticated()]elif self.action == "create":return []return []# 通过重写get_serializer_class函数,动态加载Serializerdef get_serializer_class(self):if self.action == "retrieve":return UserDetailSerializerelif self.action == "create":return UserRegSerializerreturn UserDetailSerializerdef create(self, request, *args, **kwargs):serializer = self.get_serializer(data=request.data)serializer.is_valid(raise_exception=True)user = self.perform_create(serializer)re_dict = serializer.datapyload = jwt_payload_handler(user)re_dict["token"] = jwt_encode_handler(pyload)re_dict["name"] = user.name if user.name else user.usernameheaders = self.get_success_headers(serializer.data)return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)# 重写get_object方法,在url中随意请求一个,都会返回当前用户def get_object(self):return self.request.userdef perform_create(self, serializer):return serializer.save()


























基于python的django框架数码电子产品销售交易商城电商平台设计相关推荐

  1. 淘品优选积分商城电商平台有哪些功能?

    新冠肺炎疫情对消费者的购物习惯产生了深远的影响,虽然大众早就形成了线上购物的习惯,但经过此次疫情,线上购物被更深的发掘,消费者更多的追求线上消费的体验感,为消费者提供更大实惠的淘品优选迅速成长. 疫情 ...

  2. 基于python的Django框架 校园鲜花水果购物商城设计与实现毕业设计毕设参考

    首页.分类.商品详情页面,包含加入购物车.收藏商品.立即购买.用户登录.订单管理.地址管理:完整的购物流程,商品的加入.编辑.删除.批量选择,收货地址的选择,下单.会员中心(订单.收藏.收货地址等) ...

  3. 基于PHP+html+MySQL的团购商城电商平台设计

    目录 目录 摘 要 1 Abstract 2 目录 3 商家评分更新触发器(shop_star_update) 10 5 用户年龄检查触发器(check_user_age) 11 5 商品详情检查触发 ...

  4. 基于python下django框架 实现校园网站系统详细设计

    前言介绍(开发目的和意义) 校园网站是当前信息化的表现.在没有电脑和互联网的时代.要想了解校园信息.专业分院信息.老师信息等只能通过纸质的报纸或者杂志.在PC电脑和互联网的发展下,现在只有在有网络的地 ...

  5. 基于python下django框架 实现多用户商城平台详细设计

    前言介绍(开发目的和意义) 本课题主要目标是设计并能够实现一个基于web网页的多用户商城系统,整个网站项目使用了B/S架构,基于python的Django框架下开发:用户通过登录网站,查询商品,购买商 ...

  6. 基于python下django框架 实现校园失物招领系统详细设计

    前言介绍(开发目的和意义) 本课题主要目标是设计并能够实现一个基于web网页的校园失物招领系统,整个网站项目使用了B/S架构,基于python的Django框架下开发:管理员通过后台录入信息.管理信息 ...

  7. 基于Python的Django框架的二手物品交易平台的设计与实现

    基于Python的Django框架的二手物品交易平台的设计与实现  源码获取:https://www.bilibili.com/video/BV1Ne4y1g7dC/ 由于科学技术的快速进步,社会的每 ...

  8. python制作物联网控制软件下载_基于Python和Django框架的物联网智能设备管理系统的设计与实现...

    论文写作指导:请加QQ229366758 基于Python和Django框架的物联网智能设备管理系统的设计与实现 作者:未知 摘 要:针对目前日益增多的智能设备提出了兼容性好,稳定性高,易于管理的管理 ...

  9. 基于python下django框架 实现校园教室图书馆座位预约系统详细设计

    前言介绍(开发目的和意义) 本课题主要目标是设计并能够实现一个基于web网页的教室图书馆座位预约系统,整个网站项目使用了B/S架构,基于python的Django框架下开发:管理员通过后台录入信息.管 ...

最新文章

  1. DPM全方位保护SQL Server,DPM2007系列之五
  2. ubuntu 11.04下Android开发环境的搭建!
  3. 用户,群组和权限 二
  4. 程序员怎么样保证自己的程序没有BUG
  5. c语言教程的辅导书,清华大学出版社-图书详情-《C语言程序设计案例教程学习辅导》...
  6. Phoenix 关联查询异常 , MaxServerCacheSizeExceededException phoenix.query.maxServerCacheBytes
  7. python logger filter_使用Filter过滤python中的日志输出的实现方法
  8. 安卓调用系统拍照功能:1、启动拍照返回图片,2、启动拍照,图片存储在指定路径下
  9. Java-JDK:JDK百科
  10. 了解PHP中$_SERVER变量对路径的解析
  11. 两组基下有相同坐标的向量_特征向量与线性变换
  12. Python制作局域网双人聊天软件(一)
  13. PHP 51tracking物流单个查询接口调用
  14. 【GDOI2018模拟7.14】小奇的糖果
  15. 最短路及最短路计数(SPFA)
  16. #CF div2 1670D Very Suspicious题解(思维+贪心)
  17. xshell连接成功
  18. 《道德经》·第二十八章
  19. 2021年信息学部物联网工程学院学生科协第二次硬件大培训
  20. 计算机校园网网络工程论文,【网络工程论文】网络工程研究及校园网设计

热门文章

  1. Mycat原理详解,Mycat 实现 MySQL 的读写分离(Mysql主从复制)
  2. 自学python第四课——字符串运算符、字符串内置函数、字符串常用方法总结
  3. 最小二乘以及最小二乘求解超定方程组最优解的推导
  4. python两张图片融合_两张脸融合在一起长啥样?Opencv-Python 来告诉你!
  5. 微信授权Java重定向前端地址_微信网页授权+分享踩过的坑
  6. GoodNotes 5 for Mac(手写笔记软件)
  7. 【Storybook】Storybook在React中的使用
  8. 2022黑龙江最新消防设施操作员模拟试题题库及答案
  9. “云”中谁寄锦书来:ABC比萧敬腾准,比诸葛孔明稳
  10. 静态数据成员和静态成员函数