1. 程式人生 > 其它 >搭建用webpack開發react專案的腳手架

搭建用webpack開發react專案的腳手架

Django(十一)

csrf相關裝飾器

# 在後端檢視層可以加裝飾器實現開啟,關閉csrf校驗
from django.views.decorators.csrf import csrf_exempt,csrf_protect

"""
csrf_exempt 
    忽略csrf校驗
csrf_protect
    開啟csrf校驗
"""

# 針對FBV
@csrf_protect\@csrf_exempt
def login(request):
    return render(request,'login.html')

# 針對CBV
csrf_protect 三種CBV新增裝飾器的方式都可以
csrf_exempt  只有一種方式可以生效(給重寫的dispatch方法裝)

基於中介軟體思想編寫專案

# 通過字串形式匯入模組
	importlib模組
    eg:
        import importlib
        res = 'test'
        ret = importlib.import_module(res)
        print(ret)
        '''匯入的最小單位是py檔案'''
  
'''以傳送提示資訊為需求 編寫功能'''
方式1:封裝成函式
方式2:封裝成配置
    import settings
    import importlib

    # 1.獲取配置資訊
    for i in settings.MODEL_URLS:
        # 2.地址拆分
        model_path,class_name = i.rsplit('.')
        # 3.匯入模組
        res = importlib.import_module(model_path)
        # 4.利用反射獲取類
        class_name_str = getattr(res,class_name)
        # 5.例項化物件
        obj = class_name_str()
        # 6.呼叫函式
        obj.send(f'{class_name}:你好啊')

auth認證模組

# django提供給你快速完成使用者相關功能的模組
	使用者相關功能:建立、認證、編輯...
# django也配套提供了一張'使用者表'
	執行資料庫遷移命令之後預設產生的auth_user
# django自帶的admin後臺管理使用者登入參考的就是auth_user表
	建立admin後臺管理員使用者:run manage.py task>>:createsuperuser
  自動對使用者密碼進行加密處理並儲存

auth模組方法大全

from django.contrib import auth
# 1.驗證使用者名稱和密碼是否正確
	auth.authenticate()  
    '''校驗正確返回使用者物件,錯誤返回None'''
# 2.儲存使用者登入狀態
	auth.login()
    '''自動記錄session'''
# 3.獲取當前使用者物件
	request.user
    '''
    如果有使用者登入返回使用者物件
    沒有登入返回AnonymousUser
    '''
# 4.判斷當前使用者是否登入
	request.user.is_authenticated()
    '''登入返回Ture,沒登入返回False'''
# 5.校驗登入裝飾器
	from django.contrib.auth.decorators import login_required
    '''沒有使用者登入預設跳轉到/accounts/login/頁面,也可以自己定義'''
    # 區域性配置
	@login_required(login_url='/login/')  
    # 全域性配置
	@login_required  
	LOGIN_URL = '/login/'  # 需要在配置檔案中新增配置
    
# 6.修改密碼
	request.user.check_password()  # 比較原密碼是否正確,自動加密再比較 
  request.user.set_password()  # 修改密碼
  request.user.save()  # 儲存資料
# 7.登出登入
	auth.logout(request)  # session失效
# 8.註冊使用者
	from django.contrib.auth.models import User
  User.objects.create_superuser()  # 註冊超級管理員
  User.objects.create_user()  # 註冊普通使用者

auth擴充套件表字段

# 方式1:編寫一對一表關係(瞭解)
# 方式2:類繼承(推薦)
from django.contrib.auth.models import AbstractUser
class Users(AbstractUser):
    # 編寫AbstractUser類中沒有的欄位 不能衝突!!!
    phone = models.BigIntegerField()
    addr = models.CharField(max_length=32)

AUTH_USER_MODEL = 'app01.Users'
"""
1.類繼承之後 需要重新執行資料庫遷移命令 並且庫裡面是第一次操作才可以
2.auth模組所有的方法都可以直接在自定義模型類上面使用
	自動切換參照表
"""