django|django form表单和代码 处理登录用户名字密码
#_*_encoding:utf-8_*_
from django.contrib.authimport authenticate, login
# Create your views here.
from django.contrib.auth.backendsimport ModelBackend
from django.shortcutsimport render
from .modelsimport UserProfile
from django.db.modelsimport Q
from django.views.generic.baseimport View
from .formsimport LoginForm
class LoginView(View):
#无需判断是get还是postdef get() 这个方法会自动判断
def get(self,request):
return render(request,"login.html",{})
def post(self,request):
login_form= LoginForm(request.POST)
if login_form.is_valid():
user_name= request.POST.get("username","")
pass_word= request.POST.get("password","")
user= authenticate(username=user_name,password=pass_word)
if useris not None:
login(request, user)
return render(request,"index.html")
else:
return render(request,"login.html", {"msg": u"用户名密码错误"})
else:
return render(request,"login.html",{"login_form":login_form})
class CustomBackend(ModelBackend):
def authenticate(self,username=None,password=None,**kwargs):
try:
user= UserProfile.objects.get(Q(username = username)|Q(email=username))
ifuser.check_password(password):
return user
except Exception as e:
return None
# def user_login(request):
#if request.method == "POST":
#user_name = request.POST.get("username","")
#pass_word = request.POST.get("password","")
#user = authenticate(username=user_name,password=pass_word)
#if user is not None:
#login(request,user)
#return render(request,"index.html")
#else:
#return render(request,"login.html",{"msg":u"用户名密码错误"})
#
#
#elif request.method == "GET":
#return render(request,"login.html",{})
#_*_encoding:utf-8_*_
__author__= 'Administrator'
__time__= '2018/1/13 12:44'
from djangoimport forms
class LoginForm(forms.Form):
username= forms.CharField(required=True)
password= forms.CharField(required=True,min_length=5)
{##}
用 户 名
密码
{%for key,error in login_form.errors.items %}{{error }}{%endfor %}{{msg }}
忘记密码?
">
{##}
【django|django form表单和代码 处理登录用户名字密码】{%csrf_token %}
推荐阅读
- django-前后端交互
- ffmpeg源码分析01(结构体)
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- performSelectorOnMainThread:withObject:waitUntilDone:参数设置为NO或YES的区别
- django2.2|django2.2 一般项目步骤(初步)
- React.js的表单(六)
- django|django 自定义.save()方法
- @逆战千锋|@逆战千锋 为什么sql语句执行之后表单中没有数据
- django|django 获取用户的域名
- django开发电子商城(二十二)购物车商品的所有者身份转换