第四百零六節,自定義用戶表類來繼承Django的用戶表類,html
models.pypython
from django.db import models # Create your models here. from django.db import models from django.contrib.auth.models import AbstractUser # django自帶的用戶表類 class Userpro(AbstractUser): # 繼承django自帶的用戶表類 nick_name = models.CharField(max_length=50,verbose_name='暱稱',default='11') class Meta: verbose_name = '用戶表' verbose_name_plural = verbose_name def __str__(self): return self.username
settings.pydjango
AUTH_USER_MODEL = 'app1.Userpro' # 設置用戶表類名稱,從app,類名稱
makemigrations 而後在輸入 migrate 來生成表app
用戶登陸和驗證post
#!/usr/bin/env python # -*- coding:utf8 -*- from django.shortcuts import render from django.contrib.auth import authenticate,login # django自帶用戶認證方法 def loging(request): if request.method == 'post': user = authenticate(username='用戶名', password='密碼') # 只用於驗證用戶名和密碼是否正確 # 驗證成功返回,用戶對象,失敗返回None if user is not None: login(request,user) # login用於登陸,第一個參數request,第二個參數接收驗證返回的用戶對象 return render(request,'1.html') # login,會將用戶登陸狀態從request注入到HTML頁面,因此,在HTML頁面能夠判斷到 # { % if request.user.is_authenticated %} # ... # 判斷用戶是否登陸... # # { % endif %}
若是要求容許用戶表裏的兩個字段中的任意一個字段值均可以登陸,就須要邏輯處理頁面須要重寫authenticatespa
2,配置信息3d