项目运行
需要先安装Python的相关依赖:pymysql,Django==3.2.8 ,requests使用pip install 安装
第一步:创建数据库
第二步:执行SQL语句,.sql文件,运行该文件中的SQL语句
第三步:修改源代码中的settings.py文件,改成自己的mysql数据库用户名和密码
第四步:运行命令:python manage.py runserver 8000
第五步:打开浏览器查看http://127.0.0.1:8000
毕设帮助,指导,本源码分享,调试部署(见文末)
系统介绍:
前台:
用户注册与登录:用户们如果想在网站录入自己的个人信息,需要经过一系列的有验证信息的注册,注册成功并登录后,用户可以各模块功能
后台:
(4)汇总了基本的每日数据情况包括用户数,收入支出等基本内容,便于使用系统的用户进行查看。
(5)展示了当前计算机的系统信息,包括使用的python版本,mysql版本等。
(6)注销账号功能,便于后续人员继续使用该系统,不同的职级拥有不同的账号权限。
订单管理模块:
(3)临时订单:临时订单中用户可以查看订单,但并无操作权限,需要更高级别权限便可操作审核
(4)正式订单:正式订单包括货物id,状态,产品名等,用户可以进行具体的订单修改
货物管理模块:用户可以对公司货物进行系统录入,包括产品名称,id,状态
仓储管理模块:用户对以及录入系统的货物进行出入库操作管理
运输管理模块:
(3)运输员管理:对今日正常工作的运输员进行管理,包括其姓名,车牌,运输数量和是否在岗,可根据货物名称查询。
(4)运输订单:可根据运输员姓名对订单进行查找,管理订单情况,包括收发车时间等。
人事管理模块:
(1)用户管理:对员工进行管理,包括id,姓名车牌号,状态等信息可根据具体姓名进行查找信息。
(2)个人信息:可对用户资料进行修改,以及修改登陆密码等功能。
功能截图:
编程人员在搭建的开发环境中,会让各种编程技术一起呈现出最终效果。本节就展示关键部分的页面效果。
代码实现:
import datetime
import os
from django.core.paginator import Paginator
from django.db.models import Sum
from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden, JsonResponse
from django.shortcuts import render
from user.models import User
from .models import *
workdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
def login(req):
"""
跳转登录
:param req:
:return:
"""
return render(req, 'login.html')
def dashboard(request):
total_user = len(User.objects.all())
total_sr = CangkuOrder.objects.filter(status='出库').aggregate(MyCulate=Sum('price'))['MyCulate']
total_zc = CangkuOrder.objects.filter(status='入库').aggregate(MyCulate=Sum('price'))['MyCulate']
total_cc = CangkuOrder.objects.count()
total_ts = Transporter.objects.count()
total_goods = Goods.objects.count()
print(total_sr)
date = datetime.datetime.today()
month = date.month
year = date.year
day = date.day
username = request.session['username']
current_day = str(year) + '-' + str(month) + "-" + str(day)
return render(request, 'welcome.html',locals())
def register(req):
"""
跳转注册
:param req:
:return:
"""
return render(req, 'register.html')
def ls_order(req):
"""
跳转注册
:param req:
:return:
"""
goods = Goods.objects.all()
role = int(req.session.get('role', 2))
username = req.session.get('username', 'admin')
return render(req, 'ls_order.html', locals())
def change_status(request, status):
response_data = {}
user_id = request.POST.get('id')
if status == 0:
status = "不通过"
else:
status = "正式"
Order.objects.filter(id=user_id).update(
status=status)
response_data['msg'] = 'success'
return JsonResponse(response_data, status=201)
def zs_order(req):
"""
跳转注册
:param req:
:return:
"""
goods = Goods.objects.all()
username = req.session.get('username', 'admin')
return render(req, 'zs_order.html', locals())
def index(req):
"""
跳转首页
:param req:
:return:
"""
username = req.session['username']
total_user = len(User.objects.all())
date = datetime.datetime.today()
month = date.month
year = date.year
return render(req, 'index.html', locals())
def login_out(req):
"""
注销登录
:param req:
:return:
"""
del req.session['username']
return HttpResponseRedirect('/')
def personal(req):
username = req.session['username']
role_id = req.session['role']
user = User.objects.filter(name=username).first()
return render(req, 'personal.html', locals())
def get_zs_order(request):
"""
获取列表信息 | 模糊查询
:param request:
:return:
"""
keyword = request.GET.get('name')
page = request.GET.get("page", '')
limit = request.GET.get("limit", '')
role_id = request.GET.get('position', '')
response_data = {}
response_data['code'] = 0
response_data['msg'] = ''
data = []
if keyword is None:
results_obj = Order.objects.filter(status='正式').all()
else:
results_obj = Order.objects.filter(owner__contains=keyword, status='正式').all()
paginator = Paginator(results_obj, limit)
results = paginator.page(page)
if results:
for user in results:
record = {
"id": user.id,
"name": user.goods.name,
"count1": user.count,
"status": user.status,
"owner": user.owner,
'create_time': user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
"desc": user.description,
}
data.append(record)
response_data['count'] = len(results_obj)
response_data['data'] = data
return JsonResponse(response_data)
def get_ls_order(request):
"""
获取列表信息 | 模糊查询
:param request:
:return:
"""
keyword = request.GET.get('name')
page = request.GET.get("page", '')
limit = request.GET.get("limit", '')
role_id = request.GET.get('position', '')
response_data = {}
response_data['code'] = 0
response_data['msg'] = ''
data = []
if keyword is None:
results_obj = Order.objects.filter(status='临时').all()
else:
results_obj = Order.objects.filter(owner__contains=keyword, status='临时').all()
paginator = Paginator(results_obj, limit)
results = paginator.page(page)
if results:
for user in results:
record = {
"id": user.id,
"name": user.goods.name,
"count1": user.count,
"status": user.status,
"owner": user.owner,
'create_time': user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
"desc": user.description,
}
data.append(record)
response_data['count'] = len(results_obj)
response_data['data'] = data
return JsonResponse(response_data)
def get_goods(request):
"""
获取列表信息 | 模糊查询
:param request:
:return:
"""
keyword = request.GET.get('name')
page = request.GET.get("page", '')
limit = request.GET.get("limit", '')
role_id = request.GET.get('position', '')
response_data = {}
response_data['code'] = 0
response_data['msg'] = ''
data = []
if keyword is None:
results_obj = Goods.objects.all()
else:
results_obj = Goods.objects.filter(name__contains=keyword).all()
paginator = Paginator(results_obj, limit)
results = paginator.page(page)
if results:
for user in results:
record = {
"id": user.id,
"name": user.name,
"source": user.source,
"status": user.status,
"yxq": user.yxq,
'create_time': user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
"desc": user.description,
}
data.append(record)
response_data['count'] = len(results_obj)
response_data['data'] = data
return JsonResponse(response_data)
def goods(request):
"""
跳转页面
"""
username = request.session['username']
role = int(request.session['role'])
user_id = request.session['user_id']
return render(request, 'goods.html', locals())
def add_goods(request):
name = request.POST.get('name')
source = request.POST.get('source')
desc = request.POST.get('desc')
yxq = request.POST.get('yxq')
goods_obj = Goods.objects.filter(name=name)
if goods_obj:
return JsonResponse({'message': '用户已存在,请直接登录'}, status=403)
Goods.objects.create(
name=name,
description=desc,
yxq=yxq,
source=source,
)
response_data = {'message': '注册成功'}
return JsonResponse(response_data)
def add_order(request):
goods_id = request.POST.get('goods')
count = request.POST.get('count')
owner = request.POST.get('username')
Order.objects.create(
goods_id=goods_id,
count=count,
owner=owner,
status='临时'
)
response_data = {'message': '注册成功'}
return JsonResponse(response_data)
def edit_order(request):
"""
修改信息
"""
response_data = {}
user_id = request.POST.get('id')
goods_id = request.POST.get('goods')
count = request.POST.get('count')
Order.objects.filter(id=user_id).update(
goods_id=goods_id,
count=count)
response_data['msg'] = 'success'
return JsonResponse(response_data, status=201)
def del_order(request):
"""
删除信息
"""
user_id = request.POST.get('id')
result = Order.objects.filter(id=user_id).first()
try:
if not result:
response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
return JsonResponse(response_data, status=403)
result.delete()
response_data = {'message': '删除成功!'}
return JsonResponse(response_data, status=201)
except Exception as e:
response_data = {'message': '删除失败!'}
return JsonResponse(response_data, status=403)
def edit_goods(request):
"""
修改信息
"""
response_data = {}
user_id = request.POST.get('id')
name = request.POST.get('name')
source = request.POST.get('source')
yxq = request.POST.get('yxq')
desc = request.POST.get('desc')
Goods.objects.filter(id=user_id).update(
name=name,
source=source,
description=desc,
yxq=yxq)
response_data['msg'] = 'success'
return JsonResponse(response_data, status=201)
def del_goods(request):
"""
删除信息
"""
user_id = request.POST.get('id')
result = Goods.objects.filter(id=user_id).first()
try:
if not result:
response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
return JsonResponse(response_data, status=403)
result.delete()
response_data = {'message': '删除成功!'}
return JsonResponse(response_data, status=201)
except Exception as e:
response_data = {'message': '删除失败!'}
return JsonResponse(response_data, status=403)
def add_cangchu(request):
goods = request.POST.get('goods')
owner = request.POST.get('owner')
status = request.POST.get('status')
count = request.POST.get('count')
price = request.POST.get('price')
cangku_order = CangkuOrder.objects.create(
goods_id=goods,
owner=owner,
status=status,
count=count,
price=price
)
print(cangku_order.id)
ts = Transporter.objects.filter(status='在岗').all()[0].id
print('ts',ts)
if status=='出库':
CarOrder.objects.create(
transporter_id=ts,
order_id = cangku_order.id,
status='正常',
create_time ='待定',
sc_time = '待定'
)
Transporter.objects.filter(id=ts).update(
status='送货'
)
response_data = {'message': '注册成功'}
return JsonResponse(response_data)
def edit_cangchu(request):
"""
修改信息
"""
response_data = {}
user_id = request.POST.get('id')
price = request.POST.get('price')
count = request.POST.get('count')
status = request.POST.get('status')
CangkuOrder.objects.filter(id=user_id).update(
price=price,
status=status,
count=count)
response_data['msg'] = 'success'
return JsonResponse(response_data, status=201)
def del_cangchu(request):
"""
删除信息
"""
user_id = request.POST.get('id')
result = CangkuOrder.objects.filter(id=user_id).first()
try:
if not result:
response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
return JsonResponse(response_data, status=403)
result.delete()
response_data = {'message': '删除成功!'}
return JsonResponse(response_data, status=201)
except Exception as e:
response_data = {'message': '删除失败!'}
return JsonResponse(response_data, status=403)
def get_cangchu(request):
"""
获取列表信息 | 模糊查询
:param request:
:return:
"""
keyword = request.GET.get('name')
page = request.GET.get("page", '')
limit = request.GET.get("limit", '')
role_id = request.GET.get('position', '')
response_data = {}
response_data['code'] = 0
response_data['msg'] = ''
data = []
if keyword is None:
results_obj = CangkuOrder.objects.all()
else:
results_obj = CangkuOrder.objects.filter(owner__contains=keyword).all()
paginator = Paginator(results_obj, limit)
results = paginator.page(page)
if results:
for user in results:
record = {
"id": user.id,
"name": user.goods.name,
"count1": user.count,
"price": user.price,
"status": user.status,
"owner": user.owner,
'create_time': user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
}
data.append(record)
response_data['count'] = len(results_obj)
response_data['data'] = data
return JsonResponse(response_data)
def cangchu(request):
"""
跳转页面
"""
username = request.session['username']
role = int(request.session['role'])
user_id = request.session['user_id']
goods = Goods.objects.all()
return render(request, 'cangchu.html', locals())
def add_ts(request):
name = request.POST.get('name')
chepai = request.POST.get('chepai')
status = request.POST.get('status')
weight = request.POST.get('weight')
desc = request.POST.get('desc')
Transporter.objects.create(
name=name,
chepai=chepai,
status=status,
weight=weight,
description=desc
)
response_data = {'message': '注册成功'}
return JsonResponse(response_data)
def edit_ts(request):
"""
修改信息
"""
response_data = {}
user_id = request.POST.get('id')
name = request.POST.get('name')
desc = request.POST.get('desc')
weight = request.POST.get('weight')
chepai = request.POST.get('chepai')
status = request.POST.get('status')
Transporter.objects.filter(id=user_id).update(
chepai=chepai,
name=name,
status=status,
desc=desc,
weight=weight)
response_data['msg'] = 'success'
return JsonResponse(response_data, status=201)
def del_ts(request):
"""
删除信息
"""
user_id = request.POST.get('id')
result = Transporter.objects.filter(id=user_id).first()
try:
if not result:
response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
return JsonResponse(response_data, status=403)
result.delete()
response_data = {'message': '删除成功!'}
return JsonResponse(response_data, status=201)
except Exception as e:
response_data = {'message': '删除失败!'}
return JsonResponse(response_data, status=403)
def get_ts(request):
"""
获取列表信息 | 模糊查询
:param request:
:return:
"""
keyword = request.GET.get('name')
page = request.GET.get("page", '')
limit = request.GET.get("limit", '')
role_id = request.GET.get('position', '')
response_data = {}
response_data['code'] = 0
response_data['msg'] = ''
data = []
if keyword is None:
results_obj = Transporter.objects.all()
else:
results_obj = Transporter.objects.filter(owner__contains=keyword).all()
paginator = Paginator(results_obj, limit)
results = paginator.page(page)
if results:
for user in results:
record = {
"id": user.id,
"name": user.name,
"chepai": user.chepai,
"weight": user.weight,
"status": user.status,
"desc": user.description,
'create_time': user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
}
data.append(record)
response_data['count'] = len(results_obj)
response_data['data'] = data
return JsonResponse(response_data)
def ts(request):
"""
跳转页面
"""
username = request.session['username']
role = int(request.session['role'])
user_id = request.session['user_id']
goods = Goods.objects.all()
return render(request, 'transporter.html', locals())
def add_co(request):
name = request.POST.get('name')
chepai = request.POST.get('chepai')
status = request.POST.get('status')
weight = request.POST.get('weight')
desc = request.POST.get('desc')
Transporter.objects.create(
name=name,
chepai=chepai,
status=status,
weight=weight,
description=desc
)
response_data = {'message': '注册成功'}
return JsonResponse(response_data)
def edit_co(request):
"""
修改信息
"""
response_data = {}
user_id = request.POST.get('id')
create_time = request.POST.get('create_time')
sc_time = request.POST.get('sc_time')
CarOrder.objects.filter(id=user_id).update(
create_time=create_time,
sc_time=sc_time)
response_data['msg'] = 'success'
return JsonResponse(response_data, status=201)
def del_co(request):
"""
删除信息
"""
user_id = request.POST.get('id')
result = CarOrder.objects.filter(id=user_id).first()
try:
if not result:
response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
return JsonResponse(response_data, status=403)
result.delete()
response_data = {'message': '删除成功!'}
return JsonResponse(response_data, status=201)
except Exception as e:
response_data = {'message': '删除失败!'}
return JsonResponse(response_data, status=403)
def get_co(request):
"""
获取列表信息 | 模糊查询
:param request:
:return:
"""
keyword = request.GET.get('name')
page = request.GET.get("page", '')
limit = request.GET.get("limit", '')
role_id = request.GET.get('position', '')
response_data = {}
response_data['code'] = 0
response_data['msg'] = ''
data = []
if keyword is None:
results_obj = CarOrder.objects.all()
print(results_obj)
else:
results_obj = CarOrder.objects.filter(status__contains=keyword).all()
paginator = Paginator(results_obj, limit)
results = paginator.page(page)
if results:
for user in results:
record = {
"id": user.id,
"order": user.order.id,
"ts": user.transporter.name,
"sc_time": user.sc_time,
"status": user.status,
'create_time': user.create_time,
}
data.append(record)
response_data['count'] = len(results_obj)
response_data['data'] = data
return JsonResponse(response_data)
def car_order(request):
"""
跳转页面
"""
username = request.session['username']
role = int(request.session['role'])
user_id = request.session['user_id']
goods = Goods.objects.all()
return render(request, 'car_order.html', locals())
总结:
基于Python的企业物流管理系统使用的编程技术为python+mysql数据库的开发模式,也是当下最实用、开发效率最高的模式之一。经过我的努力和不懈的工作,我成功地开发了这个系统,它已经通过了全面的测试,符合预期的设计要求和功能需求,性能稳定可靠,达到了预期的开发目标。
在开发过程中,我采用了现代化的开发工具和技术,如Python编程语言、Django框架、MySQL数据库等,从需求分析、系统设计、编码实现、测试调试等各个环节认真严谨地工作,不断优化系统的功能和性能,以满足用户的需求和期望。
源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻