开源django+mysql+vue3前后端分离商城baykeShop使用指南

logo

baykeShop开源商城系统

项目简介

baykeShop(拜客商城系统)是一款全开源Python栈商城系统,管理后台完全前后端分离重写以适配项目,前后端100%开源,后台前端采用开源SCUI开源库对接开发,美观、易用、符合当前时下流行的技术栈,后端依托django强大的框架体系,深度结合rest_framework第三方包,使得前后端共用一套接口体系分发扩展,商城PC端采用接口数据可视化的方式采用html渲染还原页面,使其更符合web端的需求,更利于SEO优化,摆脱了前后端分离所带来的打包过程,以及上手难度,更易维护,开发,学习!

本项目融合了django的传统模版体系,同时结合了前后端分离的开发方式,在不同场景选择了不同的技术栈,使其更具学习和研究价值,是python django初学者开发上手学习的不二选择!

项目演示

商城PC端前台:http://s.bayke.shop

商城管理后台:http://s.bayke.shop/baykeadmin

演示账号:demo 密码:123456

备注:前后台用户通用

快速上手

一、 拉取项目

将本仓库拉取到本地,也就是当前你看到的分支main

git clone https://gitee.com/bayke/bayke-shop.git

二、 创建虚拟环境

在项目根目录中,也就是在manage.py的同级创建,命令如下:

python -m venv venv

运行该命令之后会创建一个venv的文件夹,此时虚拟环境则创建成功!

三、 激活虚拟环境,安装依赖

3.1 激活虚拟环境:

# windows系统
venv\Scripts\activate# Liunx系统
source venv/bin/activate

激活成功后在终端命令行最开始会出现(venv)则代表激活成功,注意,后边所有的操作都是在激活虚拟环境的状态下进行的

3.2 安装项目依赖:

在安装依赖之前有必要先对项目的配置有个简单的了解。

项目目录为bayke目录,其中将配置文件拆分成了三部分:

  1. settings.py为共用配置,也就是在开发环境和生产环境共同的配置项

  2. development.py为开发环境配置,当前的默认配置

  3. production.py为生产环境配置,部署上线时尽量启用该配置(非必须)

备注:为了使用简便,降低开发者理解难度,我们仅是通过引入包的方式 from .development import *将开发环境或生产环境配置引入到了settings.py中,也就是说你可以在开发时随意引入他们两个的任何一个,没有局限,不同之处是production.py中启用了mysql数据库和redis,需要安装对应的依赖,已包含在依赖列表requirements.txt中!

由于mysql数据库的依赖包mysqlclient在不同的环境下安装时会常出现安装失败的现象,目前测试在windows和ubuntu中都没有问题,但在Centos系统中会出现莫名其妙的错误,导致安装失败,由于每个人出现的错误可能不一样,没有一个通用的行之有效的解决方案,目前暂时建议开发环境选择windows或ubuntu其中一个,部署系统选择Ubuntu即可!

如果不启用mysql,则可以在requirements.txt中注释掉mysqlclient依赖项之后再运行安装命令!

安装依赖:pip install -r requirements.txt

注意:当启用了mysql之后,需在根目录的mysql.cnf配置中配置自己的数据库信息!

[client]
database = baykedb
user = root
password = 123456
host = 127.0.0.1
port = 3306
default-character-set = utf8

四、初始化项目

4.1 同步数据库并建表

python manage.py redb

该命令会清空新建app中应用的迁移文件并重新生成,然后自动向数据库执行建表操作,也就是说他会自动执行makemigrations和migrate命令!

5.1 导入初始化数据及权限接口数据

python manage.py pushdata

注意:与之对应的有一个exportdata的导出命令,当你改变了后台的扩展配置、后台菜单、接口管理中的任何一项,则可以使用到处命令进行备份,以便在别的地方部署时及时导入,这几个数据是本项目运行的必要数据,所以必须要有!(其他数据备份的方式自行决定!)

五、创建超级管理员运行项目

5.1 创建超级管理员

python manage.py createsuperuser

5.2 运行项目后端

python manage.py runserver 3000

到这里项目的后端接口就已经运行起来了,PC端商城也可以预览了,但管理后台采用了前后端分离的方式开发,需要再配置运行一下前端!

六、后台前端运行

后台前端源码目录在根目录的fronted/scui中,标准的vue项目,选择scui这个开源项目就是因为其上手简单易使用组件众多,便于开发,没有使用TS,徒增心智负担,对很多项目来说都是没有必要的!

这里启动和运行可以参考scui本身的文档:介绍 | SCUI

在这里再次感谢scui开源作者的辛苦付出!

注意:开发环境由于前端和后端不同域,会存在跨域问题,后端需要再配置文件的CORS_ALLOWED_ORIGINSCSRF_TRUSTED_ORIGINS配置中放行前端地址!如下所示:

# 配置允许跨域访问的站点列表
CORS_ALLOWED_ORIGINS = ['http://192.168.31.174','http://127.0.0.1:2800'
]# csrf可信来源
CSRF_TRUSTED_ORIGINS = ['http://192.168.31.174','http://127.0.0.1:2800'
]

支付宝支付配置

为了简化支付宝的配置难度,本项目将支付宝的配置项内置到了管理后台系统设置的扩展配置当中,仅超级管理员拥有该权限!

如上图所示,目前该配置仅允许超级管理员增删改查,虽然内置了删除功能但最好不要删除,扩展配置均是代码运行过程中需要调用的配置,作为开发者除非你非常清楚你知道某个配置项的作用以及调用位置,否则不建议删除和修改配置项的key值!

  • alipay_app_id 支付宝支付APPID

  • alipay_private_key 支付宝支付私钥pivate_key

  • alipay_public_key 支付宝公钥alipay_public_key

这里需要注意的是支付宝一般的配置流程是,下载官方的支付宝开放平台秘钥工具,首先生成秘钥,此时就得到了应用的公钥和私钥,然后用应用公钥去支付宝后台加签换取支付宝公钥,将支付宝公钥对应的配置到后台,应用私钥还要经过一个步骤,就是需要将得到的应用私钥进行一次格式转换,在支付宝开放平台秘钥工具中操作,将转换后的私钥,配置到后台对应的私钥项,配置APPID,支付宝配置即完成!

异步通知及同步通知不需要在支付宝后台配置,代码中已经配置好了,支付完之后会自动跳转和通知回调修改订单状态!

  1. 生成应用公钥和私钥 

  2. 用应用公钥加签换取支付宝公钥

  3. 转换应用私钥格式 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/97295.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目介绍:《Online ChatRoom》网页聊天室 — Spring Boot、MyBatis、MySQL和WebSocket的奇妙融合

在当今数字化社会,即时通讯已成为人们生活中不可或缺的一部分。为了满足这一需求,我开发了一个名为"WeTalk"的聊天室项目,该项目基于Spring Boot、MyBatis、MySQL和WebSocket技术,为用户提供了一个实时交流的平台。在本…

jmeter单接口和多接口测试

最近接触到了多接口串联,接口串联的技术会在其他帖子有说明,其核心技术点就是通过正则表达式和变量来实现接口的关联。目前为止呢笔者用到的地方还只有一个,就是关于session保持的时候。但是看到很多资料都说测试过程中经常遇到b接口需要用a接…

Nginx安装与部署

文章目录 一,说明二,下载三,Windows下安装1,安装2,启动3,验证 四,Linux下安装1,安装2,启动3,验证 五,Nginx配置 一,说明 Nginx是一款高性能Web和反向代理服务器,提供内存少,高并发,负载均衡和反向代理服务,支持windos和linux系统 二,下载 打开浏览器,输入地址: https://ngin…

机器学习基础17-基于波士顿房价(Boston House Price)数据集训练模型的整个过程讲解

机器学习是一项经验技能,实践是掌握机器学习、提高利用机器学习 解决问题的能力的有效方法之一。那么如何通过机器学习来解决问题呢? 本节将通过一个实例来一步一步地介绍一个回归问题。 本章主要介绍以下内容: 如何端到端地完成一个回归问题…

linux免密登录最简单--图文详解

最简单的免密登录 1.A电脑生成秘钥 ssh-keygen -t rsa 2.A电脑将秘钥传给B电脑 ssh-copy-id root192.168.1.129 #将秘钥直接传给B电脑 需要输入B电脑的密码,可以看到成功。 3.测试 同理:如果B->A也需要免密登录,统一的操作。 大功告…

uniapp 开发之仿抖音,上下滑动切换视频、点击小爱心效果

效果图: 功能描述: 上下滑动视频,双击暂停,然后第一个视频再往上滑显示”已经滑到顶了“ 开始代码: 首先视频接口使用的公开的视频测试接口 开放API-2.0 官网展示 Swagger UI 接口文档 一…

RHCA之路---EX280(4)

RHCA之路—EX280(4) 1. 题目 Use the S2I functionality of your OpenShift instance to build an application in the rome project Use the Git repository at http://services.lab.example.com/php-helloworld for the application source Use the Docker image labeled re…

Windows 安装 RabbitMq

Windows 上安装 RabbitMQ 的步骤 RabbitMQ 是一个强大的开源消息队列系统,广泛用于构建分布式、可扩展的应用程序。本教程将带您一步一步完成在 Windows 系统上安装 RabbitMQ 的过程。无需担心,即使您是初学者,也能够轻松跟随这些简单的步骤…

数字生意 经“九”长兴 | 秦丝9周年荣誉盘点

数字生意 经“九”长兴 转眼间,秦丝已经成立了9年 帮助200万商家实现数字化转型 在数字生意的道路上经“九”长兴 9年来,秦丝深入全国各地服装市场调研 9年来,秦丝结合百万商家建议不断更新 9年来,秦丝产品和服务市场好评率9…

ELK安装、部署、调试(六) logstash的安装和配置

1.介绍 Logstash是具有实时流水线能力的开源的数据收集引擎。Logstash可以动态统一不同来源的数据,并将数据标准化到您选择的目标输出。它提供了大量插件,可帮助我们解析,丰富,转换和缓冲任何类型的数据。 管道(Logs…

html2canvas 截图空白 或出现toDataURL‘ on ‘HTMLCanvasElement或img标签没截下来 的所有解决办法

1.如果截图空白: 1.1以下的参数是必须要有的。 width: shareContent.offsetWidth, //设置canvas尺寸与所截图尺寸相同,防止白边height: shareContent.offsetHeight, //防止白边logging: true,useCORS: true,x:0,y:0,2,如果出现了报错 toData…

使命召唤中将启用AI检测仇恨言论!

“ToxMod”将自动标记口头骚扰、欺凌和歧视。 周三,动视宣布的它将在即将于11月10日发布的中引入实时人工智能语音聊天调节功能使命召唤:现代战争3。该公司正与调整为了实现这一特性,我们使用了一种叫做托西莫德识别仇恨言论、欺凌、骚扰和歧视并采取行动…