python - 会员登录页面
account.py 页面
from django.shortcuts import render, redirect from django import forms from app import models from app.utils.encrypt import md5 from app.utils.bootsrap import BootsrapForm # 使用form class LoginForm(BootsrapForm): username = forms.CharField( label='用户名', widget=forms.TextInput ) pwd = forms.CharField( label='密码', widget=forms.PasswordInput ) # 密码加密 与 数据库对比 def clean_pwd(self): pwd = self.cleaned_data.get('pwd') 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(): pass # 注意form 是没有form.save 保存 form.clean_data 来校验数据 admin_row = models.Admin.objects.filter(**form.cleaned_data).first() if not admin_row: #提示错误信息 form.add_error('pwd', '用户名或密码错误!') return render(request, 'login.html', {'form': form}) # 用户名 与 密码输入正确 网站产生随机码 写入用户的cookie 中 ,再写入 session 中 request.session['info'] = {'id': admin_row.id, 'name': admin_row.username} return redirect('/admin/list/') return render(request, 'login.html', {'form': form})
BootsrapForm.py
class BootsrapForm(forms.Form): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # 循环出所有字段, 并用插件 插入 clas 样式 for name, field in self.fields.items(): # if name == 'name': # continue 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}
login,html
{% extends 'layout.html' %} {% block content %}"width: 450px; box-shadow: 0 0 10px #ccc; height: 320px; background:#d9edf7; margin-top: 10%; margin-left: 30%; padding: 20px 70px; border-radius:10px ">{% endblock%}class="text-center"> 用户登录
效果 :
页面显示 :
错误提示 :
登录成功跳转 :