http://www.cnblogs.com/liwenzhou/p/9030211.html
1、首先导入auth模块
from django.contrib import auth
2、创建auth表
manage.py makemigrations
manage.py migrate
这样才能使用
一、主要部分
from django.shortcuts import render,redirect from django.contrib import auth # Create your views here. def index(request): if request.user.is_authenticated: username = request.user.username return render(request,"index.html",locals()) return redirect("/login") def login(request): if request.method=="POST": username=request.POST.get("username") password=request.POST.get("password") user = auth.authenticate(username=username,password=password) auth.login(request,user) if user: return redirect("/index") else: return render(request,"login.html") return render(request,"login.html",locals()) def logout(request): auth.logout(request) return redirect("/login")
二、auth对象
1、创建用户
from django.contrib.auth.models import User User.objects.create_superuser(.......) #创建超级用户 Use.objects.create_user(....) #创建普通用户
2、修改密码
def set_pwd(request): if request.method == "POST": old_pwd = request.POST.get("old_pwd") new_pwd = request.POST.get("new_pwd") if request.user.check_password(raw_password=old_pwd): request.user.set_password(new_pwd) request.user.save() return redirect("/index") return render(request,"set_pwd.html",locals())
三、扩展auth表
from django.contrib.auth.models import AbstractUser class UserInfo(AbstractUser): """ 用户信息表 """ nid = models.AutoField(primary_key=True) phone = models.CharField(max_length=11, null=True, unique=True) def __str__(self): return self.username
使用继承的方式扩展auth表,需要在settings中配置默认的路径:
# 引用Django自带的User表,继承使用时需要设置 AUTH_USER_MODEL = "app名.UserInfo"