大家好,我是java1234_小锋老师,看到一个不错的基于Python的Django在线(生鲜)商城(电子商城)管理系统,分享下哈。
项目视频演示
【免费】基于Python的Django在线(生鲜)商城(电子商城)管理系统 Python毕业设计_哔哩哔哩_bilibili
项目介绍
随着电子商务的迅速发展,在线商城作为现代商业的重要组成部分,已经深刻地改变了消费者的购物方式和商业运营模式。本论文提出并实现了一种基于Python的Django框架的在线生鲜商城管理系统。该系统旨在为用户提供便捷的商品浏览、下单、支付等一站式服务,同时为商家提供高效的商品管理、订单处理、用户管理等功能,提升运营效率和用户体验。
首先,论文介绍了Django框架的特点及其在Web开发中的优势,阐述了采用Django框架进行开发的技术选型与架构设计。系统设计中,前端采用HTML、CSS、JavaScript等技术实现用户界面的交互和响应式布局;后端则通过Django的MVC架构实现数据管理、用户认证和业务逻辑处理。数据库部分使用SqlLite进行数据存储,并通过Django ORM进行数据操作。
该系统主要包括用户端和管理端两大模块。用户端提供生鲜商品展示、购物车管理、订单支付、评价系统等功能,确保用户能够方便地浏览、购买商品,并享受个性化推荐和优惠信息;管理端则包含商品管理、订单管理、用户管理、统计分析等功能,帮助商家有效管理库存、跟踪订单和优化运营策略。
通过系统的设计与实现,本文展示了基于Django的生鲜商城管理系统的可行性及其在实际应用中的潜力。系统的高可扩展性、灵活性和安全性,满足了现代电子商务平台对高效、稳定和易维护的要求。最终,通过测试与用户反馈,验证了该系统在功能完整性、性能表现和用户体验方面的优越性。
系统展示
部分代码
from django.shortcuts import render, redirect, HttpResponseRedirect, reverse
from django.core.paginator import Paginator
from django.http import JsonResponse
from hashlib import sha1
from .models import GoodsBrowser
from . import user_decorator
from df_order.models import *
def register(request):
context = {
'title': '用户注册',
}
return render(request, 'df_user/register.html', context)
def register_handle(request):
username = request.POST.get('user_name')
password = request.POST.get('pwd')
confirm_pwd = request.POST.get('confirm_pwd')
email = request.POST.get('email')
# 判断两次密码一致性
if password != confirm_pwd:
return redirect('/user/register/')
# 密码加密
s1 = sha1()
s1.update(password.encode('utf8'))
encrypted_pwd = s1.hexdigest()
# 创建对象
UserInfo.objects.create(uname=username, upwd=encrypted_pwd, uemail=email)
# 注册成功
context = {
'title': '用户登陆',
'username': username,
}
return render(request, 'df_user/login.html', context)
def register_exist(request):
username = request.GET.get('uname')
count = UserInfo.objects.filter(uname=username).count()
return JsonResponse({'count': count})
def login(request):
uname = request.COOKIES.get('uname', '')
context = {
'title': '用户登陆',
'error_name': 0,
'error_pwd': 0,
'uname': uname,
}
return render(request, 'df_user/login.html', context)
def login_handle(request): # 没有利用ajax提交表单
# 接受请求信息
uname = request.POST.get('username')
upwd = request.POST.get('pwd')
jizhu = request.POST.get('jizhu', 0)
users = UserInfo.objects.filter(uname=uname)
if len(users) == 1: # 判断用户密码并跳转
s1 = sha1()
s1.update(upwd.encode('utf8'))
if s1.hexdigest() == users[0].upwd:
url = request.COOKIES.get('url', '/')
red = HttpResponseRedirect(url) # 继承与HttpResponse 在跳转的同时 设置一个cookie值
# 是否勾选记住用户名,设置cookie
if jizhu != 0:
red.set_cookie('uname', uname)
else:
red.set_cookie('uname', '', max_age=-1) # 设置过期cookie时间,立刻过期
request.session['user_id'] = users[0].id
request.session['user_name'] = uname
return red
else:
context = {
'title': '用户名登陆',
'error_name': 0,
'error_pwd': 1,
'uname': uname,
'upwd': upwd,
}
return render(request, 'df_user/login.html', context)
else:
context = {
'title': '用户名登陆',
'error_name': 1,
'error_pwd': 0,
'uname': uname,
'upwd': upwd,
}
return render(request, 'df_user/login.html', context)
def logout(request): # 用户登出
request.session.flush() # 清空当前用户所有session
return redirect(reverse("df_goods:index"))
@user_decorator.login
def info(request): # 用户中心
username = request.session.get('user_name')
user = UserInfo.objects.filter(uname=username).first()
browser_goods = GoodsBrowser.objects.filter(user=user).order_by("-browser_time")
goods_list = []
if browser_goods:
goods_list = [browser_good.good for browser_good in browser_goods] # 从浏览商品记录中取出浏览商品
explain = '最近浏览'
else:
explain = '无最近浏览'
context = {
'title': '用户中心',
'page_name': 1,
'user_phone': user.uphone,
'user_address': user.uaddress,
'user_name': username,
'goods_list': goods_list,
'explain': explain,
}
return render(request, 'df_user/user_center_info.html', context)
@user_decorator.login
def order(request, index):
user_id = request.session['user_id']
orders_list = OrderInfo.objects.filter(user_id=int(user_id)).order_by('-odate')
paginator = Paginator(orders_list, 2)
page = paginator.page(int(index))
context = {
'paginator': paginator,
'page': page,
# 'orders_list':orders_list,
'title': "用户中心",
'page_name': 1,
}
return render(request, 'df_user/user_center_order.html', context)
@user_decorator.login
def site(request):
user = UserInfo.objects.get(id=request.session['user_id'])
if request.method == "POST":
user.ushou = request.POST.get('ushou')
user.uaddress = request.POST.get('uaddress')
user.uyoubian = request.POST.get('uyoubian')
user.uphone = request.POST.get('uphone')
user.save()
context = {
'page_name': 1,
'title': '用户中心',
'user': user,
}
return render(request, 'df_user/user_center_site.html', context)
#!/user/bin/env python
# -*- coding: utf-8 -*-
from django.conf.urls import url
from .views import *
app_name = 'df_user'
urlpatterns = [
url(r'^register/$', register, name="register"),
url(r'^register_handle/$', register_handle, name="register_handle"),
url(r'^register_exist/$', register_exist, name="register_exist"),
url(r'^login/$', login, name="login"),
url(r'^login_handle/$', login_handle, name="login_handle"),
url(r'^info/$', info, name="info"),
url(r'^order/(\d+)$', order, name="order"),
url(r'^site/$', site, name="site"),
# url(r'^place_order/$', views.place_order),
url(r'^logout/$', logout, name="logout"),
]
源码代码
链接:https://pan.baidu.com/s/1qF5-QZP9wvl7cvwZxziySQ
提取码:1234