我们的登录验证是浏览器级别的验证还有用户级别的验证,
使用我们的django内部的数据库表,auth_user,然后使用它内部的一些模块和方法,
在视图函数里面需要引入模块写逻辑代码:
from django.shortcuts import render,redirect
# Create your views here.
from django.contrib import auth
from django.contrib.auth.models import User
# 以上两句是固定模式,
def log_in(request):
if request.method=="POST":
user=request.POST.get("user")
pwd=request.POST.get("pwd")
# 验证成功,返回user对象,否则返回None
user=auth.authenticate(username=user,password=pwd)
if user:
auth.login(request,user) # session写操作
return redirect("/index/")
return render(request,"login.html")
def index(request):
print(request.user)
print(type(request.user))
# if not request.user.id:
# return redirect("/login/")
# user=request.user
# if not user.is_authenticated():return redirect("/login/")
return render(request,"index.html",locals())
def log_out(request):
auth.logout(request)
return redirect("/login/")
def reg(request):
User.objects.create_user(username="egon123",password="1234")
return redirect("/login/")
在验证中我们有几种状态固定语句:
登录:
user1=auth.authenticate(username=user,password=pwd)
auth.login(request,user1) # 类似于session写操作
==============================================================
退出登录状态:
auth.logout(request)
request.session.flush()
=================================================
验证 :
user.is_authenticated()
登录状态时,返回True,否则返回False
===================================================
创建用户:
user.objects.create_user(username=‘egon‘,password=‘1234‘)
没写完...................................