亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

詳解Django框架中用戶的登錄和退出的實現

2020-01-04 17:59:32
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了詳解Django框架中用戶的登錄和退出的實現,Django是重多Python人氣框架中最為知名的一個,需要的朋友可以參考下
 


Django 提供內置的視圖(view)函數用于處理登錄和退出 (以及其他奇技淫巧),但在開始前,我們來看看如何手工登錄和退出。 Django提供兩個函數來執行django.contrib.auth/中的動作 : authenticate()和login()。

認證給出的用戶名和密碼,使用 authenticate() 函數。它接受兩個參數,用戶名 username 和 密碼 password ,并在密碼對給出的用戶名合法的情況下返回一個 User 對象。 如果密碼不合法,authenticate()返回None。
 

  1. >>> from django.contrib import auth 
  2. >>> user = auth.authenticate(username='john', password='secret'
  3. >>> if user is not None: 
  4. ...   print "Correct!" 
  5. ... else
  6. ...   print "Invalid password." 
?

authenticate() 只是驗證一個用戶的證書而已。 而要登錄一個用戶,使用 login() 。該函數接受一個 HttpRequest 對象和一個 User 對象作為參數并使用Django的會話( session )框架把用戶的ID保存在該會話中。

下面的例子演示了如何在一個視圖中同時使用 authenticate() 和 login() 函數:
 

  1. from django.contrib import auth 
  2.  
  3. def login_view(request): 
  4.   username = request.POST.get('username'''
  5.   password = request.POST.get('password'''
  6.   user = auth.authenticate(username=username, password=password) 
  7.   if user is not None and user.is_active: 
  8.     # Correct password, and the user is marked "active" 
  9.     auth.login(request, user) 
  10.     # Redirect to a success page. 
  11.     return HttpResponseRedirect("/account/loggedin/"
  12.   else
  13.     # Show an error page 
  14.     return HttpResponseRedirect("/account/invalid/"
?

注銷一個用戶,在你的視圖中使用 django.contrib.auth.logout() 。 它接受一個HttpRequest對象并且沒有返回值。
 

  1. from django.contrib import auth 
  2.  
  3. def logout_view(request): 
  4.   auth.logout(request) 
  5.   # Redirect to a success page. 
  6.   return HttpResponseRedirect("/account/loggedout/"
?

注意,即使用戶沒有登錄, logout() 也不會拋出任何異常。

在實際中,你一般不需要自己寫登錄/登出的函數;認證系統提供了一系例視圖用來處理登錄和登出。 使用認證視圖的第一步是把它們寫在你的URLconf中。 你需要這樣寫:
 

  1. from django.contrib.auth.views import login, logout 
  2.  
  3. urlpatterns = patterns(''
  4.   # existing patterns here... 
  5.   (r'^accounts/login/$', login), 
  6.   (r'^accounts/logout/$', logout), 
?

/accounts/login/ 和 /accounts/logout/ 是Django提供的視圖的默認URL。

缺省情況下, login 視圖渲染 registragiton/login.html 模板(可以通過視圖的額外參數 template_name 修改這個模板名稱)。 這個表單必須包含 username 和 password 域。如下示例: 一個簡單的 template 看起來是這樣的
 

  1. {% extends "base.html" %} 
  2.  
  3. {% block content %} 
  4.  
  5.  {% if form.errors %} 
  6.   <p class="error">Sorry, that's not a valid username or password</p> 
  7.  {% endif %} 
  8.  
  9.  <form action="" method="post"
  10.   <label for="username">User name:</label> 
  11.   <input type="text" name="username" value="" id="username"
  12.   <label for="password">Password:</label> 
  13.   <input type="password" name="password" value="" id="password"
  14.  
  15.   <input type="submit" value="login" /> 
  16.   <input type="hidden" name="next" value="{{ next|escape }}" /> 
  17.  </form> 
  18.  
  19. {% endblock %} 
?

如果用戶登錄成功,缺省會重定向到 /accounts/profile 。 你可以提供一個保存登錄后重定向URL的next隱藏域來重載它的行為。 也可以把值以GET參數的形式發送給視圖函數,它會以變量next的形式保存在上下文中,這樣你就可以把它用在隱藏域上了。

logout視圖有一些不同。 默認情況下它渲染 registration/logged_out.html 模板(這個視圖一般包含你已經成功退出的信息)。 視圖中還可以包含一個參數 next_page 用于退出后重定向。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲аv电影天堂网| 日韩精品在线观| 国产成人鲁鲁免费视频a| 国产欧美欧洲在线观看| 亚洲黄色av女优在线观看| 国外成人性视频| 亚洲欧洲一区二区三区在线观看| 综合网中文字幕| 欧美日韩免费看| 午夜精品免费视频| 欧美影院在线播放| 国产精品91久久久| 欧美日本高清一区| 5566成人精品视频免费| 亚洲新声在线观看| 色偷偷av亚洲男人的天堂| 国产激情久久久久| 欧美激情伊人电影| 美乳少妇欧美精品| 日韩av在线免费播放| 久久综合电影一区| 国产精品一区二区性色av| 成人有码视频在线播放| 国产精品日韩一区| 亚洲美女久久久| 色yeye香蕉凹凸一区二区av| 久久97精品久久久久久久不卡| 欧美日韩国产91| 超碰97人人做人人爱少妇| 亚洲国产成人精品久久| 亚洲午夜精品久久久久久久久久久久| 国产91免费看片| 国产99视频在线观看| 韩国国内大量揄拍精品视频| 成人免费视频a| 国产欧美精品久久久| 日韩美女av在线免费观看| 中文字幕亚洲欧美日韩在线不卡| 不卡毛片在线看| 久久伊人色综合| 欧美丰满少妇xxxxx做受| 91精品免费看| 欧美在线视频一区| 亚洲国产精彩中文乱码av| 最近2019中文字幕大全第二页| 最近2019免费中文字幕视频三| 国产亚洲精品久久久久久牛牛| 久久久久久噜噜噜久久久精品| 久久久av电影| 久久久免费精品视频| 欧美成人在线免费视频| 亚洲另类图片色| 国内精品视频久久| 亚洲欧美日韩天堂一区二区| 欧美人与性动交a欧美精品| 亚洲黄在线观看| 亚洲国产精品va在线看黑人| 午夜精品久久久久久久男人的天堂| 亚洲区一区二区| 欧美激情2020午夜免费观看| 久久99精品国产99久久6尤物| 色婷婷亚洲mv天堂mv在影片| 国产美女精品视频免费观看| 亚洲欧美日韩第一区| 日韩美女在线观看一区| 精品久久久一区| 亚洲网在线观看| 欧美在线视频一区二区| 亚洲免费视频在线观看| 麻豆一区二区在线观看| 亚洲国产精品专区久久| 欧美日本啪啪无遮挡网站| 青青草精品毛片| 亚洲精品国产精品国自产观看浪潮| 欧美久久精品一级黑人c片| 欧美在线视频在线播放完整版免费观看| 羞羞色国产精品| 亚洲国产精品久久久| 欧美激情在线有限公司| 福利微拍一区二区| 国产精品久久久久久久9999| 懂色aⅴ精品一区二区三区蜜月| 色七七影院综合| 日韩av网站大全| 欧美理论电影在线播放| 国产福利视频一区二区| xx视频.9999.com| 日韩精品极品在线观看| 亚洲美女免费精品视频在线观看| 亚洲免费视频一区二区| 成人性生交大片免费看视频直播| 国产精品久久久久久久久久久不卡| 欧美丝袜美女中出在线| 亚洲精品91美女久久久久久久| 91精品国产综合久久香蕉922| www.日韩免费| 国产在线观看不卡| 欧美激情在线播放| www国产精品视频| 成人激情视频免费在线| 欧美在线视频在线播放完整版免费观看| 国产精品白丝av嫩草影院| 亚洲精品视频二区| 国产成人亚洲综合91| 韩国三级电影久久久久久| 国产一区二区三区欧美| 欧洲精品在线视频| 国产精品一区二区三区在线播放| 亚洲高清在线观看| 亚洲娇小xxxx欧美娇小| 日韩高清免费观看| 久久天堂av综合合色| 91免费视频国产| 久久91超碰青草是什么| 亚洲欧美中文日韩v在线观看| 亚洲最新在线视频| 91亚洲精品在线| 国产91网红主播在线观看| 大胆欧美人体视频| 欧美成人性色生活仑片| 国产精品va在线播放我和闺蜜| 亚洲片国产一区一级在线观看| 亚洲精品日韩av| 亚州精品天堂中文字幕| 亚洲黄色成人网| 日韩精品免费在线| 日韩动漫免费观看电视剧高清| 91老司机在线| 亚洲嫩模很污视频| 国产美女精彩久久| xxxxxxxxx欧美| 国产精品黄色影片导航在线观看| 久久夜色精品亚洲噜噜国产mv| 国产精品免费久久久久影院| 国产在线拍揄自揄视频不卡99| 欧美在线视频播放| 欧美wwwxxxx| 日韩av电影在线播放| 欧美日韩亚洲视频| 久久99精品久久久久久琪琪| 亚洲综合日韩中文字幕v在线| 欧美大成色www永久网站婷| 亚洲自拍高清视频网站| 色偷偷偷亚洲综合网另类| 国产日韩欧美夫妻视频在线观看| 国产精品一区专区欧美日韩| 亚洲白虎美女被爆操| 亚洲欧洲一区二区三区在线观看| 欧美精品videossex88| 国产成人亚洲综合91精品| www.欧美免费| 国产精品久久久久aaaa九色| 欧美综合在线观看| 日本不卡免费高清视频| 国产成人综合久久| 欧日韩在线观看| 91免费版网站入口| 精品国产乱码久久久久久婷婷| 永久免费毛片在线播放不卡| 亚洲影视九九影院在线观看| 久久久久久久一| 一区二区三区视频免费在线观看| 欧美性videos高清精品| 一个人看的www久久|