用户登录+注销

1,简单用户登录

login.html
{% load static %}
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录</title> <link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.min.css' %}"> <style> .account { width: 400px; border: 1px solid #dddddd; border-radius: 5px; box-shadow: 5px 5px 20px #aaa; margin-left: auto; margin-right: auto; margin-top: 100px; padding: 20px 40px; } .account h2 { margin-top: 10px; text-align: center; } </style> </head> <body> <div class="account"> <h2>用户登录</h2> <form method="post" novalidate> {% csrf_token %} <div class="form-group"> <label>用户名</label> {{ form.username }} <span style="color: red;">{{ form.username.errors.0 }}</span> </div> <div class="form-group"> <label>密码</label> {{ form.password }} <span style="color: red;">{{ form.password.errors.0 }}</span> </div> {# <div class="form-group">#} {# <label for="id_code">图片验证码</label>#} {# <div class="row">#} {# <div class="col-xs-7">#} {# {{ form.code }}#} {# <span style="color: red;">{{ form.code.errors.0 }}</span>#} {# </div>#} {# <div class="col-xs-5">#} {# <img id="image_code" src="/image/code/" style="width: 125px;">#} {# </div>#} {# </div>#} {# </div>#} <input type="submit" value="登 录" class="btn btn-primary"> </form> </div> </body> </html>

 

 

 

 

 

 

 

 

 

 

 

 

account.py
#
-*- coding = utf-8 -*- # @Time : 2022/4/13 11:03 # @Author : 舒奇 # @File : account.py # @Software : PyCharm from django.shortcuts import render,redirect from django import forms from app01 import models from app01.utils.bootstrap import BootStrapForm from app01.utils.encrypt import md5 class LoginForm(BootStrapForm): username=forms.CharField( label="用户名", widget=forms.TextInput, required=True ) password=forms.CharField( label="密码", widget=forms.PasswordInput, required=True ) #数据加密 def clean_password(self): pwd=self.cleaned_data.get("password") return md5(pwd) def login(request): '''登录''' if request.method=="GET": form=LoginForm return render(request,'login.html',{"form":form}) #获取提交的数据 form=LoginForm(data=request.POST) if form.is_valid(): #验证成功,获取用户名和密码,在数据库中校验 #print(form.cleaned_data) #{'username': 'zhangsan', 'password': 'vfddfdvbsdsfdgvdfvffdbfd'} # admin_object=models.Admin.objects.filter(username=form.cleaned_data["username"],password=form.cleaned_data["password"]) #前提:Admin中的字段名=form.cleaned_data的字段名 admin_object=models.Admin.objects.filter(**form.cleaned_data).first() if not admin_object: form.add_error("password","用户名或密码错误") # form.add_error("username","用户名或密码错误") return render(request, 'login.html', {"form": form}) #用户名和密码正确 #网站生成随机字符串;写到用户浏览器的cookie中;写到session中 request.session['info']={'id':admin_object.id,'name':admin_object.username} return redirect('/admin/list') #输入的数据,检验失败 return render(request, 'login.html', {"form": form})

 

 

 

 

from django import forms


class BootStrap:
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 循环ModelForm中的所有字段,给每个字段的插件设置
        for name, field in self.fields.items():
            # 字段中有属性,保留原来的属性,没有属性,才增加。
            if field.widget.attrs:
                field.widget.attrs["class"] = "form-control"
                field.widget.attrs["placeholder"] = field.label
            else:
                field.widget.attrs = {
                    "class": "form-control",
                    "placeholder": field.label
                }

class BootStrapModelForm(BootStrap, forms.ModelForm):
    pass


class BootStrapForm(BootStrap, forms.Form):
    pass

 

2,注销

 

 

 

 

 

posted @ 2022-04-13 16:04  shuqi123  阅读(6)  评论(0)    收藏  举报