订单交易平台三(登录界面整个实现过程)阶段一(只实现简单的登录功能)

news/2024/10/5 22:22:58

1.在视图函数account进行写代码逻辑(需要了解django中form组件的知识、md5码加密、脚本的编写)

1.1 登录界面后端的编写

"""  在account.py文件   """from django.shortcuts import render, redirect
from web import modelsfrom utils.encrypt import md5# 1.定义类
from django import formsclass LoginForm(forms.Form):role = forms.ChoiceField(required=True,choices=(("2", "客户"), ("1", "管理员")),widget=forms.Select(attrs={"class": "form-control"}))username = forms.CharField(required=True,widget=forms.TextInput(attrs={"class": "form-control", "placeholder": "用户名"}))password = forms.CharField(required=True,widget=forms.PasswordInput(attrs={"class": "form-control", "placeholder": "密码"},render_value=True))def login(request):if request.method == "GET":form = LoginForm()return render(request, "login.html", {"form": form})# 1.接收并获取数据(数据格式或是否为空验证 - Form组件 & ModelForm组件)form = LoginForm(data=request.POST)if not form.is_valid():print("验证失败")return render(request, "login.html", {"form": form})# {'role': '1', 'username': 'asdfasdf', 'password': '123123'}# print(form.cleaned_data)  # {"username":'',"password":'xxx","role":xxx}role = form.cleaned_data.get("role")username = form.cleaned_data.get("username")password = form.cleaned_data.get("password")password = md5(password)# 2.去数据库校验  1管理员  2客户mapping = {"1": "ADMIN", "2": "CUSTOMER"}if role not in mapping:return render(request, "login.html", {'form': form, 'error': "角色不存在"})if role == "1":user_object = models.Administrator.objects.filter(active=1, username=username, password=password).first()else:user_object = models.Customer.objects.filter(active=1, username=username, password=password).first()# 2.1 校验失败if not user_object:return render(request, "login.html", {'form': form, 'error': "用户名或密码错误"})# 2.2 校验成功,用户信息写入session+进入项目后台request.session['user_info'] = {'role': mapping[role], 'name': user_object.username, 'id': user_object.id}return redirect("/level/list/")

1.2 使用两个脚本(在script文件中进行创建、编写)

"""  在init_admin.py文件中   """# 启动django
import os
import sys
import djangobase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_dir)os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'day06.settings')
django.setup()  # 伪造让django启动from web import models
from utils.encrypt import md5models.Administrator.objects.create(username='root', password=md5("root"), mobile="1888888889")
"""  在init_customer.py文件中   """# 启动django
import os
import sys
import djangobase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_dir)os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'day06.settings')
django.setup()  # 伪造让django启动from web import models
from utils.encrypt import md5# 创建级别
# level_object = models.Level.objects.create(title="VIP", percent=90)models.Customer.objects.create(username='xinchen',password=md5("xinchen"),mobile='1999999998',level_id=1,creator_id=1
)

1.3 md5码加密

"""  在encrypt.py文件中   """import hashlib
from django.conf import settingsdef md5(data_string):obj = hashlib.md5(settings.SECRET_KEY.encode('utf-8'))obj.update(data_string.encode('utf-8'))return obj.hexdigest()

img

2.前端界面的编写

2.1 登录界面的编写

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugins/bootstrap/css/bootstrap.css' %}"><style>.box {width: 450px;border: 1px solid #f0f0f0;margin-left: auto;margin-right: auto;margin-top: 100px;padding-left: 40px;padding-right: 40px;padding-bottom: 30px;box-shadow: 5px 10px 10px rgb(0 0 0 / 5%);}</style>
</head>
<body><div class="box"><h2 style="text-align: center;">用户登录</h2><form method="post" novalidate>{% csrf_token %}<div class="form-group"><label>角色</label>{{ form.role }}</div><div class="form-group"><label>用户名</label>{{ form.username }}</div><div class="form-group"><label>密码</label>{{ form.password }}</div><button type="submit" class="btn btn-primary">登 录</button><span style="color: red;">{{ error }}</span><a href='{% url 'sms_login' %}' style="float: right;">短信登录</a></form>
</div></body>
</html>

2.2 短信登录界面的编写

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugins/bootstrap/css/bootstrap.css' %}"><style>.box {width: 450px;border: 1px solid #f0f0f0;margin-left: auto;margin-right: auto;margin-top: 100px;padding-left: 40px;padding-right: 40px;padding-bottom: 30px;box-shadow: 5px 10px 10px rgb(0 0 0 / 5%);}</style>
</head>
<body>
<div class="box"><form method="post"><h2 style="text-align: center;">短信登录</h2>{% csrf_token %}<div class="form-group"><label>手机号</label><input type="text" class="form-control" placeholder="手机号"></div><div class="form-group"><label>短信验证码</label><div class="row"><div class="col-xs-7"><input type="text" class="form-control" placeholder="短信验证码"></div><div class="col-xs-5"><input type="button" value="发送短信" class="btn btn-default"/></div></div></div><button type="submit" class="btn btn-primary">登 录</button><a href="{% url 'login' %}" style="float: right;">用户名登录</a></form>
</div>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

订单交易平台二(写代码之前的准备工作)

订单交易平台准备工作 1.先搭建环境 # 1.先创建python基本环境,并且创建虚拟环境# 2.创建完成后,先安装你所需要的Django版本: pip install Django==3.2# 3.创建Django项目: django-admin startproject app01 .# 4.创建Django,在app01根目录文件下创建apps文件,里面放app文…

PM的正交调解法

1.PM的模拟调制过程 ​ PM信号是一种相位调制信号,其携带的信息保存在其信号的相位中,通过改变载波的相位来实现基带数据的传输。 其函数表达式如下: \[s(t) = A*cos(w_c*t + K_f*m(t)) \]其中: \(A\):表示载波幅度。 \(m(t)\):表示基带信号。 \(w_c\):表示载波信号角度增量…

监控室值班人员脱岗睡岗识别系统

监控室值班人员脱岗睡岗识别系统基于Yolov7深度学习神经网络算法,监控室值班人员脱岗睡岗识别系统可以7*24小时不间断自动监控总监控室值班人员是否在工位上(脱岗睡岗玩手机),若值班人员没有在总监控室系统则立即抓拍告警,算法鲁棒性强。监控室值班人员脱岗睡岗识别系统检…

监控室值班人员脱岗识别系统

监控室值班人员脱岗识别系统通过AI视觉技术,监控室值班人员脱岗识别系统实现企业总监控室值班人员脱岗、睡岗、玩手机等场景的AI识别,不需人为干预全天候自动识别。监控室值班人员脱岗识别系统通过建设视频监控智能识别功能赋能企业端,监控室值班人员脱岗识别系统对各个生产…

非煤矿山电子封条

非煤矿山电子封条 支持对接甘肃省矿山监管平台通过AI智能分析技术,非煤矿山电子封条可以实现矿山与甘肃省应急管理部门互联互通,非煤矿山电子封条 支持对接甘肃省矿山监管平台通过在关键地点(关键位置包括矿山主副井口、风井口、车辆出入口和调度室)安装摄像机,非煤矿山电…

甘肃省非煤矿山电子封条建设方案

甘肃省非煤矿山电子封条建设方案通过AI视频智能分析技术,甘肃省非煤矿山电子封条建设方案利用在煤矿风井口、煤矿调度室、煤矿主副井口、矿区车辆出入口重要位置安装摄像机,甘肃省非煤矿山电子封条建设方案对非煤矿区生产作业状态以及矿井出井入井人员数量变化、监控室人员睡…

校园食堂明厨亮灶监控分析系统

校园食堂明厨亮灶监控分析系统通过yolov5网络模型技术,校园食堂明厨亮灶监控分析系统针对校园餐厅后厨厨师穿戴及行为进行7*24小时不间断实时分析预警,如:不按要求戴口罩、不穿厨师帽、陌生人员进入后厨、厨师不穿厨师服、上班时间玩手机、老鼠识别等行为。校园食堂明厨亮灶…