最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django框架使用內(nèi)置方法實現(xiàn)登錄功能詳解

 更新時間:2019年06月12日 10:47:18   作者:cakincqm  
這篇文章主要介紹了Django框架使用內(nèi)置方法實現(xiàn)登錄功能,結(jié)合實例形式詳細分析了Django框架內(nèi)置方法實現(xiàn)登錄功能的相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下

本文實例講述了Django框架使用內(nèi)置方法實現(xiàn)登錄功能。分享給大家供大家參考,具體如下:

一 內(nèi)置登錄退出思維導圖

二 Django內(nèi)置登錄方法

1 位置

2 源碼

@deprecate_current_app
@sensitive_post_parameters()
@csrf_protect
@never_cache
# 視圖函數(shù)要渲染的模板位置(registration/login.html)
def login(request, template_name='registration/login.html',
     redirect_field_name=REDIRECT_FIELD_NAME,
     authentication_form=AuthenticationForm,
     extra_context=None, redirect_authenticated_user=False):
  """
  Displays the login form and handles the login action.
  """
  redirect_to = request.POST.get(redirect_field_name, request.GET.get(redirect_field_name, ''))
  if redirect_authenticated_user and request.user.is_authenticated:
    redirect_to = _get_login_redirect_url(request, redirect_to)
    if redirect_to == request.path:
      raise ValueError(
        "Redirection loop for authenticated user detected. Check that "
        "your LOGIN_REDIRECT_URL doesn't point to a login page."
      )
    return HttpResponseRedirect(redirect_to)
  elif request.method == "POST":
    form = authentication_form(request, data=request.POST)
    if form.is_valid():
      auth_login(request, form.get_user())
      return HttpResponseRedirect(_get_login_redirect_url(request, redirect_to))
  else:
    form = authentication_form(request)
  current_site = get_current_site(request)
  context = {
    'form': form,
    redirect_field_name: redirect_to,
    'site': current_site,
    'site_name': current_site.name,
  }
  if extra_context is not None:
    context.update(extra_context)
  return TemplateResponse(request, template_name, context)

三 實戰(zhàn)一 

1 編輯mysite/account/urls.py

from django.conf.urls import url
from . import views
from django.contrib.auth import views as auth_views
urlpatterns = [
  # 自定義登錄
  # url(r'^login/$', views.user_login, name='user_login'),
  # django內(nèi)置的登錄
  url(r"^login/$", auth_views.login, name="user_login"),
]

2 因為默認的模板位置為registration/login.html,因此我們創(chuàng)建該文檔如下:

{% extends "base.html" %}
{% block title %}登錄{% endblock %}
{% block content %}
<div class="row text-center vertical-middle-sm">
 <h1>登錄</h1>
 <p>請輸入用戶名和密碼</p>
  <!--用具體的URL指明了數(shù)據(jù)的POST目標-->
 <form class="form-horizontal" action="{% url 'account:user_login' %}" method="post">
 {% csrf_token %}
    <!--每個表單元素在一對P標簽內(nèi)-->
    <!--{{ form.as_p }}-->
    <!--使用Bootstrap樣式使得表單更美麗-->
    <div class="form-group">
  <label for="{{ form.username.id_for_label }}" class="col-md-5 control-label" style="color:red"><span class="glyphicon glyphicon-user"></span>Username</label>
  <div class="col-md-6 text-left">{{ form.username }}</div>
 </div>
 <div class="form-group">
  <label for="{{ form.password.id_for_label }}" class="col-md-5 control-label" style="color:blue"><span class="glyphicon glyphicon-floppy-open"></span>Password</label>
  <div class="col-md-6 text-left">{{ form.password }}</div>
 </div>
 <input type="submit" value="Login">
 </form>
</div>
{% endblock %}

3 修改mysite/mysite/settings.py

# 登錄后重定向到http://localhost:8000/blog/頁面
LOGIN_REDIRECT_URL = '/blog/'

4 測試

四 實戰(zhàn)二

1 編輯mysite/account/urls.py

from django.conf.urls import url
from . import views
from django.contrib.auth import views as auth_views
urlpatterns = [
  # 自定義登錄
  # url(r'^login/$', views.user_login, name='user_login'),
  # django內(nèi)置的登錄
  url(r"^login/$", auth_views.login, name="user_login"),
  url(r"^new-login/$", auth_views.login, {"template_name": "account/login.html"}),
]

2 測試

希望本文所述對大家基于Django框架的Python程序設(shè)計有所幫助。

相關(guān)文章

  • Python datetime庫函數(shù)的示例詳解

    Python datetime庫函數(shù)的示例詳解

    datetime?是 Python 內(nèi)置的日期時間處理庫,它包含了處理日期、時間、時間間隔等的類和函數(shù),這篇文章主要介紹了Python datetime庫函數(shù)的詳解,需要的朋友可以參考下
    2023-07-07
  • python編程使用PyQt制作預覽窗口游戲中的小地圖

    python編程使用PyQt制作預覽窗口游戲中的小地圖

    這篇文章主要為大家介紹了python使用PyQt制作預覽窗口游戲中的小地圖實現(xiàn)示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • 對python條件表達式的四種實現(xiàn)方法小結(jié)

    對python條件表達式的四種實現(xiàn)方法小結(jié)

    今天小編就為大家分享一篇對python條件表達式的四種實現(xiàn)方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python3+pycuda實現(xiàn)執(zhí)行簡單GPU計算任務(wù)

    Python3+pycuda實現(xiàn)執(zhí)行簡單GPU計算任務(wù)

    GPU的加速技術(shù)在深度學習、量子計算領(lǐng)域都已經(jīng)被廣泛的應用。這篇文章就來和大家聊聊Python3如何利用pycuda執(zhí)行簡單GPU計算任務(wù)?,感興趣的可以了解一下
    2023-03-03
  • python使用psutil模塊獲取系統(tǒng)狀態(tài)

    python使用psutil模塊獲取系統(tǒng)狀態(tài)

    作為程序猿,大家可能都熟悉linux系統(tǒng)的基礎(chǔ)信息獲取方法都是通過shell來獲取,但是在python中,我們還可以使用psutil模塊來獲取系統(tǒng)信息。psutil模塊把shell查看系統(tǒng)基礎(chǔ)信息的功能都包裝了下,使用更加簡單,功能豐富。
    2016-08-08
  • python和pygame實現(xiàn)簡單俄羅斯方塊游戲

    python和pygame實現(xiàn)簡單俄羅斯方塊游戲

    這篇文章主要為大家詳細介紹了python和pygame實現(xiàn)簡單俄羅斯方塊游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • PyCharm在新窗口打開項目的方法

    PyCharm在新窗口打開項目的方法

    今天小編就為大家分享一篇PyCharm在新窗口打開項目的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python異常和文件處理機制詳解

    python異常和文件處理機制詳解

    這篇文章主要介紹了python異常和文件處理機制,詳細分析了Python異常處理的常用語句、使用方法及相關(guān)注意事項,需要的朋友可以參考下
    2016-07-07
  • python list.sort()根據(jù)多個關(guān)鍵字排序的方法實現(xiàn)

    python list.sort()根據(jù)多個關(guān)鍵字排序的方法實現(xiàn)

    Python list內(nèi)置sort()方法用來排序,也可以用python內(nèi)置的全局sorted()方法來對可迭代的序列排序生成新的序列,本文詳細的介紹了python list.sort()根據(jù)多個關(guān)鍵字排序,感興趣的可以了解一下
    2021-12-12
  • Python+matplotlib實現(xiàn)折線圖的美化

    Python+matplotlib實現(xiàn)折線圖的美化

    這篇文章主要和大家分享一個非常有趣的Python教程—如何美化一個?matplotlib折線圖。文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-05-05

最新評論

夹江县| 乌什县| 邻水| 喀什市| 南雄市| 苍溪县| 福建省| 怀来县| 阿拉尔市| 中江县| 昭觉县| 牙克石市| 高雄市| 临夏市| 资源县| 长泰县| 克什克腾旗| 郁南县| 襄汾县| 佳木斯市| 通州区| 黑龙江省| 乐山市| 建始县| 滨州市| 依安县| 宁城县| 汉阴县| 牙克石市| 长海县| 山阴县| 大方县| 东阿县| 永济市| 竹北市| 鹤庆县| 宁明县| 兴和县| 株洲市| 北京市| 济南市|