使用者模組開發
1. django認證系統
文件:專案需要用的方法有:
方法名備註
create_user
建立使用者
authenticate
登入驗證
login
記錄登入狀態
logout
退出使用者登入
is_authenticated
判斷使用者是否登入
login_required裝飾器
進行登入判斷
說明:is_authenticated可以用於模板上判斷是否登入,同時對於ajax請求的檢視類來判斷是否登入。
瀏覽器 請求時用 login_required 來進行登入判斷
url(
''', login_required(userinfoview.as_view()), name='user')
建立乙個公共類 mixin.py
from django.contrib.auth.decorators import login_required
class
loginrequiredmixin
(object):
@classmethod
defas_view
(cls,
**initkwargs)
:# 呼叫父類的as_view
view =
super
(loginrequiredmixin, cls)
.as_view(
**initkwargs)
return login_required(view)
呼叫
使用login_required,如果沒登入django的認證系統會讓頁面導航到jango預設的login頁面,我們需要修改預設的登入路徑
修改settings檔案的配置檔案
# 配置登入url位址
login_url=
'/user/login'
# /accounts/login```
2. 使用者註冊- django傳送 註冊啟用 郵件
傳送郵件需要第三方的smtp伺服器,該專案採用的是免費的網易郵箱開啟網易郵箱 smtp服務
settings.py配置:
# 傳送郵件配置
email_backend = 'django.core.mail.backends.smtp.emailbackend'
# smpt服務位址
email_host = 'smtp.163.com'
email_port = 25
# 傳送郵件的郵箱
email_host_user = '******[email protected]'
# 在郵箱中設定的客戶端授權密碼
email_host_password = '******xx'
# 收件人看到的發件人
email_from = '天天生鮮'
封裝傳送郵件方法:
from django.core.mail import send_mail
from django.conf import settings
defsend_register_active_email
(to_email, username, token)
:'''傳送啟用郵件'''
# 組織郵件資訊
subject =
'天天生鮮歡迎資訊'
message =
'' sender = settings.email_from
receiver =
[to_email]
html_message =
'下面鏈結啟用您的賬戶
'%(username, token, token)
send_mail(subject, message, sender, receiver, html_message=html_message)
- celery 非同步傳送 註冊啟用 郵件celery文件可參考:
pip install celery
在專案目錄下 建立celery_tasks的python包,在celery_tasks資料夾下建立tasks.py
from celery import celery
from django.core.mail import send_mail
from django.conf import settings
# 建立乙個celery類的例項物件
'celery_tasks.tasks'
, broker=
'redis:'
)# 定義任務函式
defsend_register_active_email
(to_email, username, token)
:'''傳送啟用郵件'''
# 組織郵件資訊
subject =
'天天生鮮歡迎資訊'
message =
'' sender = settings.email_from
receiver =
[to_email]
html_message =
'下面鏈結啟用您的賬戶
'%(username, token, token)
send_mail(subject, message, sender, receiver, html_message=html_message)
# 發郵件
send_register_active_email.delay(email, username, token)
需要進入虛擬環境,才能執行
#啟動worker
celery -a celery_tasks.tasks worker -l info
Django學習(三)安裝Django
參考文件 1.workon gp1進入指定的python虛擬環境 2.使用pip freeze命令檢視是否安裝好django pip install django 3.1.6 4.進入指定資料夾 home dll gp1 day01建立django專案hellodjango cd home dll ...
Django框架學習 初識Django專案
django admin 檢查是否安裝好django環境 django admin startproject name 建立乙個名為name的django專案 python manage.py check 檢查專案的完整性 python manage.py runserver 本地執行django專...
django專案學習十
1 在本機進入虛擬環境,執行命令匯出當前需要的所有包。pip freeze plist.txt2 通過ftp軟體將專案 和plist.txt檔案上傳到伺服器。3 建立虛擬環境,在虛擬環境上安裝包。mkvirtualenv 虛擬環境名稱 pip install r plist.txt settings...