# 前言
> 这是一个Java里Java气的`django`项目,有熟悉的bean实体类(在models.py),有dao用于数据库操作(在dao.py)
- 本项目前后端进行了分离,前端使用vue实现,并且前端代码已经打包好放在`static`目录下
- 后端使用django的views.py来制作api接口,具体请求接口可以查看`API接口文档.md`
> 环境要求:MySQL 8、python3.11、django4.2、pymysql
# 如何运行
## 1、下载本项目到你的电脑后解压
![下载](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6/img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20005530.png)
## 2、附加数据库
将根目录下的 `sports_shop.sql` 附加到你的mysql中
![附加数据](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6//img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20005814.png)
### 3、修改数据库连接语句
在`sports_shop_backend_war/dao.py`文件中,将登录名和密码修改为你mysql的配置
![修改数据库连接语句](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6//img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20010056.png)
### 4、pip安装所需的库
一共有如下两个个:
- `pip install django==4.2`
- `pip install pymysql`
### 5、运行项目
前端已经写死了请求后端api的基准地址为`http://127.0.0.1:8888`
因此需要切到 `项目根目录` 执行如下命令:
```shell
python .\manage.py runserver 8888
```
然后,就可以项目就跑起来了
![运行](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6//img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20011718.png)
# 效果总览
![运行](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6//img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20011853.png)
![运行](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6//img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20011949.png)
![运行](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6//img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20012035.png)
![运行](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6//img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20012112.png)
![运行](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6//img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20012148.png)
![运行](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6//img/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-05-04%20012225.png)
# 如何入手
- static 文件夹是前端打包过后的代码,具体前端代码可以移步:https://gitee.com/kang-zhenbin/sports_shop_front
- django_shop是项目,sports_shop_backend_war是app。一下讲的都是app
- models.py里面编写了对应数据库表的实体类
- dao.py里面编写了数据库连接方法,已经对应表的增删改查操作
- urls.py和views.py以及service.py 一起完成了api的逻辑
- 其中urls.py是请求的路由分发逻辑
- views.py和service.py完成了api逻辑实现
# 踩坑记录
### 2023/4/25
django自带的ORM对mysql进行增删改查很奇怪,会给你的数据库生成一大堆表(似乎帮你搞好了一个后台管理系统)
与spring开发并不相同,没法用实体类对应数据库表的习惯来理解这东西
Template 这东西并不能挂载静态资源
得用static来挂载静态资源,默认访问路径是 `ip+端口号/static/xxx`
### 2023/4/26
挂载vue打包后的静态文件,只需在urls.py的urlpatterns中添加一行:
```path('', RedirectView.as_view(url='/static/index.html', permanent=False), name='index'),```
### 2023/4/27
python这语言简直是非主流,当你习惯了主流C,Java,JavaScript之类的语言,再来写python,简直要世界观崩塌
关于实体类:
- 1.文件名也算名,并不是文件名与类名一致就可以了。导入的时候要 `entity.User.User` 是的,第一个是文件名,第二个是类名
- 2.如果你的项目分了多个子目录,比如dao、entity、util。那么你想要在dao中调用entity,你还得用`sys.path.appedn()`去拼接路径
- 3.如果你要调用一个python文件中的类,然后这个文件的类又引用了其他文件的类,你还得改这个文件的类import的路径,去迎合最大的那个调用类。。。。。amazing
- 4.在python中定义一个类 简直就是依托答辩。。。。
### 2023/4/27
不错不错,逐渐适应了这个语言
django现在暂时只用来挂载我vue打包好的静态页面,默认进入`loclahost:8000`的时候,自动路由跳转到`localhost:8000/static/index.html`
在django_shop项目下,有一个名为sports_shop_backend_war的app
这个app里面目前主要编写的文件夹和文件有
- dao文件夹
- entity文件夹
- test.py
entity里面是实体类
dao里面是一些未来service将要用到的数据库操作
test.py用来测试写好的代码,已经测了各个实体类,还有一些XxxDaoImpl类下的方法
### 2023/4/28
由于python奇葩的导包机制,比如
```shell
¬父级目录∨:
urls.py
views.py
¬dao文件夹∨:
UserDao.py
OrderDao.py
Shopping_cartDao.py
GoodDao.py
CommentDao.py
Mini_Shopping_cartDao.py
¬entity文件夹∨:
User.py
Order.py
Shopping_cart.py
Good.py
Comment.py
Mini_Shopping_cart.py
```
然后,
我在那些dao操作的类中,引用了entity文件夹里面的实体类
```python
from entity.User import User
```
我在那些service操作的类中,引用了dao文件夹里面的dao数据访问类
```python
from dao.UserDao import UserDaoImpl
```
最后,
我在views.py开始编写后端网络api请求:
```python
from django.http import HttpResponse, JsonResponse
from django.shortcuts import render
# 服务层
from .service.UserService import UserService
# Create your views here.
def index(request):
return HttpResponse('欢迎测试')
# 登录API
def login(request):
username = request.POST.get('username')
password = request.POST.get('password')
return JsonResponse(UserService().login(username,password))
```
在urls.py绑定请求路径:
```python
# app/urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("login", views.login, name="login")
]
```
一通操作猛如虎,一开测试凉凉
![错误示范](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6/img/%E9%94%99%E8%AF%AF%E7%A4%BA%E8%8C%83.png)
![错误示范](/sports_shop_backend_war/%E8%88%8D%E4%B8%8D%E5%BE%97_%E5%AE%9D%E8%B4%9D%E5%9E%83%E5%9C%BE%E6%A1%B6/img/%E5%AF%BC%E5%8C%85%E6%8A%A5%E9%94%99%E4%BF%A1%E6%81%AF.png)
最后的解决办法只能是:
- 把实体类一股脑粘贴到models.py文件内
- 把dao数据访问类一股脑粘贴到models.py同级的dao.py文件内
这个时候在回来写`views.py`,`urls.py`作为control
### 2023/4/29
#### 关于多个类存进字典再转换成JSON数据
```python
def login (self,username:str,password:str):
'''通过用户ID查询用户信息
@param 用户名,
@param 密码,
@return {User+Meta} 字典数据'''
user_id = UserDaoImpl().selectByNamePWD(username,password)
data = UserDaoImpl().selectByID(user_id)
meta = Meta("登录成功",200)
response = {
'data': data,
'meta': meta
}
json_str = json.dumps(response, default=lambda o: o.__json__() if
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
python课程设计-基于Django的购物商城系统源码+数据库+运行文档.zip文件 该项目是个人项目源码,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!!!评审分达到95分以上。资源项目的难度比较适中 本项目前后端进行了分离,前端使用vue实现,并且前端代码已经打包好放在static目录下 后端使用django的views.py来制作api接口,具体请求接口可以查看API接口文档.md 环境要求:MySQL 8、python3.11、django4.2、pymysql 如何运行 1、下载本项目到你的电脑后解压 2、附加数据库 将根目录下的 sports_shop.sql 附加到你的mysql中 3、修改数据库连接语句 在sports_shop_backend_war/dao.py文件中,将登录名和密码修改为你mysql的配置 修改数据库连接语句 4、pip安装所需的库 pip install django==4.2 pip install pymysql 5、运行项目 前端已经写死了请求后端api的基准地址为http://127.0.0.1
资源推荐
资源详情
资源评论
收起资源包目录
python课程设计-基于Django的购物商城系统源码+数据库+运行文档.zip文件
(120个子文件)
chunk-vendors.e92fd658.css 206KB
app.282f74b9.css 4KB
index.html 665B
favicon.ico 4KB
favicon2.ico 2KB
dock2.66d71121.jpeg 36KB
lunbo1.5cb0f226.jpg 1.38MB
lunbo2.758bcac6.jpg 1.15MB
lunbo4.5f81ba56.jpg 945KB
nonyao.jpg 285KB
demo.jpg 161KB
applewatchse.jpg 111KB
huawei.jpg 111KB
applewatchSeries8.jpg 107KB
xiaomi.jpg 104KB
lunbo3.f0aba4b3.jpg 103KB
oppo.jpg 102KB
user.jpg 79KB
R.jpg 44KB
kzb68up.jpg 33KB
mainUserPic.c420635d.jpg 25KB
asideLogin.c4702ae3.jpg 15KB
asideRegister.684c313b.jpg 14KB
chunk-vendors.eeae9080.js 1.91MB
app.a39ff3ea.js 31KB
VSWorkspaceState.json 211B
PythonSettings.json 95B
ProjectSettings.json 35B
LICENSE 1KB
read.lock 0B
chunk-vendors.eeae9080.js.map 9.7MB
app.a39ff3ea.js.map 119KB
与bing的对话.md 25KB
API接口文档.md 14KB
README.md 10KB
舍不得_初版瞎造python_bean.md 7KB
说明.md 2KB
屏幕截图 2023-05-04 011949.png 1.44MB
屏幕截图 2023-05-04 012035.png 960KB
屏幕截图 2023-05-04 011853.png 789KB
屏幕截图 2023-05-04 012225.png 280KB
屏幕截图 2023-05-04 012148.png 235KB
屏幕截图 2023-05-04 012112.png 207KB
屏幕截图 2023-05-04 010056.png 114KB
屏幕截图 2023-05-04 005530.png 62KB
错误示范.png 44KB
导包报错信息.png 39KB
屏幕截图 2023-05-04 005814.png 36KB
屏幕截图 2023-05-04 011718.png 21KB
dao.py 28KB
views.py 16KB
models.py 13KB
OrderDao.py 7KB
Shopping_cartDao.py 6KB
UserDao.py 6KB
CommentDao.py 5KB
settings.py 4KB
question.py 4KB
tests.py 3KB
GoodsDao.py 3KB
Order.py 2KB
Shopping_cart.py 2KB
User.py 2KB
urls.py 2KB
service.py 1KB
Comment.py 1KB
urls.py 1KB
Good.py 1KB
Mini_entity.py 876B
UserService.py 760B
MysqlHelper.py 698B
manage.py 667B
views.py 599B
Meta.py 535B
0001_initial.py 535B
wsgi.py 399B
asgi.py 399B
models.py 305B
urls.py 256B
views.py 251B
apps.py 175B
apps.py 146B
admin.py 63B
admin.py 63B
tests.py 60B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
dao.cpython-311.pyc 32KB
views.cpython-311.pyc 23KB
models.cpython-311.pyc 16KB
settings.cpython-311.pyc 3KB
service.cpython-311.pyc 2KB
urls.cpython-311.pyc 2KB
urls.cpython-311.pyc 2KB
UserService.cpython-311.pyc 1KB
views.cpython-311.pyc 1KB
0001_initial.cpython-311.pyc 1018B
共 120 条
- 1
- 2
资源评论
荒野大飞
- 粉丝: 1w+
- 资源: 2797
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【基于D-S证据的风机故障诊断程序】 证据理论 故障诊断 风机数据 1、风机典型传感器数据与三类典型故障标签; 2、基于朴素贝叶斯假设的基本信任分配函数; 3、对比传统DS证据方法,以及改进DS证据方
- Go编程入门:构建你的第一个Golang项目
- 履带行走抓取机器人sw18可编辑全套技术资料100%好用.zip
- 基于 SDN 的车辆网络、调度和路由中的电动汽车 (EV) 最佳充电方案32 电动汽车 (EV) 的最新发展引发了充电点和停车位的电力资源有限,还必须满足用户在时间和价格方面的偏好 本项目开发了一
- 数据驱动的建模与分析基础教程
- 内托自动装箱sw20可编辑全套技术资料100%好用.zip
- YOLO编程实战:从零构建图像识别项目基础教程
- 企业大厂应用级FPGA i2s verilog完整串口模块ip源代码,企业级应用源码,适合需要学习ic设计验证及soc开发的工程师 提供databook资料和verilog完整ip源代码 代码架构清
- 绿色无机蔬菜智能分选生产线sw17可编辑全套技术资料100%好用.zip
- EMD经验模态分解应用于流体力学流场数据的matlab程序 包含视频教程,实例数据和程序代码 流体力学,航空航天,船舶海洋,土木工程,能源动力专业必备
- 全自动炒菜机sw07可编辑全套技术资料100%好用.zip
- MATLAB[仿真2019b] 双馈风机,实现mppt,变速恒频及稳压控制
- 大厂的LLC设计资料,很详细的设计
- Simullink仿真 matlab2019 双馈风机-自励风机+他励风机,可实现MPPT 源侧,机侧,网侧参数都可观察
- 气压升降机sw21可编辑全套技术资料100%好用.zip
- 西南科技大学+竞赛与实践+私有链搭建
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功