django專案學習三

2021-10-23 03:10:15 字數 3403 閱讀 9717

使用者模組開發

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...