Django基於cookies實現完整登入

2022-06-04 03:00:13 字數 3946 閱讀 6458

django-admin startproject mysite
建立完成後目錄構如下:

開啟mysite/mysite/settings.py檔案,將應用新增進去:

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'online',

]開啟mysite/online/models.py檔案,新增如下內容:

from django.db import models

# create your models here.

class user(models.model):

username = models.charfield(max_length=50)

password = models.charfield(max_length=50)

def __str__(self):

return self.username

建立資料庫和user表,最後生成的online_user表就是我們models.py中建立的user類。

開啟mysite/mysite/urls.py:

from django.conf.urls import url,include

from django.contrib import admin

from online import urls

urlpatterns = [

url(r'^admin/', admin.site.urls),

url(r'^online/',include('online.urls')),

]

在mysite/online/目錄下建立 urls.py檔案:

from django.conf.urls import url,include

from online import views

urlpatterns = [

url(r'^$',views.login,name='login'),

url(r'^login/$',views.login,name='login'),

url(r'^regist/$',views.regist,name='regist'),

url(r'^index/$',views.index,name='index'),

url(r'^logout/$',views.logout,name = 'logout'),

]

登入頁

/login/ 登入頁

/regist/ 註冊頁

/index/ 登入成功

/logout/ 登出

開啟mysite/onlie/views.py檔案:

#表單class userform(forms.form):

username = forms.charfield(label='使用者名稱:',max_length=50)

password = forms.charfield(label='密碼:',max_length=50)

#註冊def regist(request):

#登入def login(request):

if request.method == 'post':

uf = userform(request.post)

if uf.is_valid():

username = uf.cleaned_data['username']

password = uf.cleaned_data['password']

user = user.objects.filter(username__exact = username,password__exact=password)

if user:

respone = render(request,'index.html')

# 將username寫入瀏覽器cookie,失效時間為3600

respone.set_cookie('username',username,3600)

return respone

else:

return render(request,'login.html',)

else:

uf = userform()

return render(request,'login.html',)

#登入成功

def index(request):

username = request.cookies.get('username',none)

return render(request,'index.html',)

#退出def logout(request):

#清理cookie

response.delete_cookie('username')

return response

先在mysite/online/目錄下建立templates目錄,接著在mysite/onlie/templates/目錄下建立regist.html檔案:

登陸

在mysite/onlie/templates/目錄下建立login.html檔案:

註冊

在mysite/onlie/templates/目錄下建立index.html檔案:

退出

註冊:

登入:

檢視cookies:

點選退出後,cookies中將不再顯示使用者名稱資訊。

Nginx 灰度發布(基於cookies)

灰度發布是指在黑與白之間,能夠平滑過渡的一種發布方式。ab test就是一種灰度發布方式,讓一部分使用者繼續用a,一部分使用者開始用b,如果使用者對b沒有什麼反對意見,那麼逐步擴大範圍,把所有使用者都遷移到b上面 來。灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以發現 調整問題,以保證其影響...

django之基於requests API驗證

驗證需要知道requests提交資料的幾種方式 get 方式 get 方式,傳遞數值可以直接通過url傳遞 服務端接受 get requests.get url get 方式也可通過引數 params 服務端接受 get requests.get url params post 方式 在django...

基於Django框架的python web

django是乙個開放源 的web應用框架,由python寫成。採用了mtv的框架模式,即模型m,檢視v和模版t。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的 的,即是cms 內容管理系統 軟體。並於2005年7月在bsd許可證下發布。這套框架是以比利時的吉普賽爵士吉他手djan...