python Django垃圾分类系统
python Django垃圾回收系统
python 校园垃圾分类系统
后端:python 3.7+Django3.2
前端:html js css等
数据库:MySQL
功能:注册、登录、修改密码、个人中心、查看垃圾类别、查看垃圾回收点、对某个垃圾回收点投放垃圾、查看投放记录、数据分析。
管理员可以新增垃圾回收点、管理普通用户、查看所有人的投放记录。
源码下载:如果提示验证码错误,请手动输入
链接:https://pan.baidu.com/s/1_22WzGhH9a0qbHZQ9H15ww?pwd=aeca
提取码:aeca
注册代码展示:
# 普通用户注册
def common_register(request):
name = request.POST.get("common_name") # 获取用户输入的姓名
id = request.POST.get("common_id") # 获取用户输入的昵称
address = request.POST.get("common_address") # 获取用户输入的地址
email = request.POST.get("common_email") # 获取用户输入的邮箱
telephone = request.POST.get("common_telephone") # 获取用户输入的手机号
ret = re.match(r"^1[35678]\d{9}$", telephone) # 验证手机号
password = request.POST.get("common_password") # 获取用户输入的密码
result1 = User.objects.filter(account=telephone) # 在用户表中查询该手机号的记录
result2 = Common.objects.filter(common_id=id) # 在普通用户信息表中查询该昵称的记录
context = {}
if ret: # 判断该手机号格式是否正确
if len(result1) == 1: # 判断该手机号是否存在(即判断是否注册过),如果后台存在记录,则返回相应的提示语句
context["info"] = "该手机号已注册!!!"
context["status"] = 0 # 零表示注册失败
return render(request, 'login.html', context=context)
else: # 该账号是新用户
if len(result2) == 1: # 判断该昵称是否有用户已使用
context["info"] = "该昵称已占用!!!"
context["status"] = 4
return render(request, 'login.html', context=context)
else:
User.objects.create(account=telephone, user_password=password, user_identity='用户') # 用create为user表添加一条记录
Common.objects.create(common_name=name, common_id=id, common_address=address, common_tel=telephone, common_email=email) # 用create为common表添加一条记录
context["info"] = "注册成功!"
context["status"] = 1 # 1表示注册成功
return render(request, 'login.html', context=context)
else:
context["info"] = "手机号格式错误!!!"
context["status"] = 6
return render(request, 'login.html', context=context)
# 管理员注册
def manager_register(request):
id = request.POST.get("manager_id") # 获取管理员输入的昵称
telephone = request.POST.get("manager_telephone") # 获取管理员输入的手机号
ret = re.match(r"^1[35678]\d{9}$", telephone) # 验证手机号
result1 = User.objects.filter(account=telephone) # 在用户表中查询该手机号的记录
result2 = Manager.objects.filter(manager_id=id) # 在管理员信息表中查询该昵称的使用记录
name = request.POST.get("manager_name") # 获取管理员输入的姓名
email = request.POST.get("manager_email") # 获取管理员输入的邮箱
password = request.POST.get("manager_password") # 获取管理员输入的密码
context = {}
if ret: # 判断该手机号格式是否正确
if len(result1) == 1: # 判断该手机号是否存在(即判断是否注册过),如果后台存在记录,则返回相应的提示语句
context["info"] = "该手机号已注册!!!"
context["status"] = 0 # 零表示注册失败
return render(request, 'login.html', context=context)
else: # 该账号是新用户
if len(result2) == 1: # 判断该昵称号是否有管理员已使用
context["info"] = "该昵称已占用!!!"
context["status"] = 5
return render(request, 'login.html', context=context)
else:
User.objects.create(account=telephone, user_password=password, user_identity='管理员') # 用create为user表添加一条记录
Manager.objects.create(manager_name=name, manager_id=id, manager_tel=telephone, manager_email=email) # 用create为manager表添加一条记录
context["info"] = "注册成功!"
context["status"] = 1 # 1表示注册成功
return render(request, 'login.html', context=context)
else:
context["info"] = "手机号格式错误!!!"
context["status"] = 6
return render(request, 'login.html', context=context)
登录代码展示:
# 登入判定
def login_judge(request):
global account, global_cname, global_mname # 定义全局变量account,存储该用户的账号,global_cname保存普通用户的姓名,global_mname保存管理员的姓名
account = request.POST.get("telephone") # 获取前端输入的手机号
user_password = request.POST.get("password") # 获取前端输入的密码
result = User.objects.filter(account=account) # 在user表里查询是否存在该账号
if len(result) == 1: # 判断后台是否存在该用户,有则进一步判断密码是否正确
password = result[0].user_password # 获取后台的密码
identity = result[0].user_identity # 获取该账号的身份信息
if user_password == password: # 将用户输入的密码和后台密码进行比对,如果密码一致,判断该账号身份
if identity == '用户':
result1 = Common.objects.filter(common_tel=account)
global_cname = result1[0].common_name # 用全局变量保存一下该用户的姓名
context = {
"name": result1[0].common_name,
"id": result1[0].common_id,
"address": result1[0].common_address,
"telephone": result1[0].common_tel,
"email": result1[0].common_email,
"integral": result1[0].common_integral,
}
return render(request, 'common/common_information.html', context) # 跳转到用户主界面
else:
result2 = Manager.objects.filter(manager_tel=account) # account为全局变量
global_mname = result2[0].manager_name # 用全局变量保存一下该管理员的姓名
context = {
"name": result2[0].manager_name,
"id": result2[0].manager_id,
"telephone": result2[0].manager_tel,
"email": result2[0].manager_email,
}
return render(request, 'manager/manager_information.html', context) # 跳转到管理员主界面
else: # 如果密码不一致,则返回相应提示语句
context = {
"info": "密码错误!!!",
"status": 2
}
return render(request, 'login.html', context=context) # 密码错误返回到登入界面
else: # 如果不存在该用户则返回相应的提示语句
context = {
"info": "该账号不存在!!!",
"status": 3
}
return render(request, 'login.html', context=context) # 账号不存在则返回到登入界面