欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django 用戶登陸訪問限制實(shí)例 @login_required

 更新時間:2020年05月13日 10:37:20   作者:菲宇  
這篇文章主要介紹了Django 用戶登陸訪問限制實(shí)例 @login_required,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在網(wǎng)站開發(fā)過程中,經(jīng)常會遇到這樣的需求:用戶登陸系統(tǒng)才可以訪問某些頁面,如果用戶沒有登陸而直接訪問就會跳轉(zhuǎn)到登陸界面。

要實(shí)現(xiàn)這樣的需求其實(shí)很簡單:

1、在相應(yīng)的 view 方法的前面添加 django 自帶的裝飾器 @login_required

2、在 settings.py 中配置 LOGIN_URL 參數(shù)

3、修改 login.html 表單中的 action 參數(shù)

# views.py
from djanco.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response
@login_required
 
def index(request):
return render_to_response('index.html')
# settings.py
....
LOGIN_URL = '/accounts/login/' # 根據(jù)你網(wǎng)站的實(shí)際登陸地址來設(shè)置
....

如果要使用 django 默認(rèn)登陸地址,則可以通過在 urls.py 中添加如此配置:

# urls.py
....
url(r'^accounts/login/', views.login),
....
# login.html
<div class="container">
<form class="form-signin" action="/accounts/login/" method="post">
{% csrf_token %}
<!--csrf_token:生成令牌-->
<h2 class="form-signin-heading" align="center">登錄系統(tǒng)</h2>
<label for="inputUsername" class="sr-only">username</label>
<input type="text" name="username" id="inputUsername" class="form-control" placeholder="username" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" name="password" id="inputPassword" class="form-control" placeholder="Password" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> 記住密碼
</label>
</div>
<br />
<button class="btn btn-lg btn-primary btn-block" type="submit">登錄</button>
<br />
<span style="color: red;">{{ login_err }}</span>
</form>
</div>
<!-- /container -->

補(bǔ)充知識:Django 之禁止特定的 IP訪問系統(tǒng)

有時候我們上一些網(wǎng)站,或者用爬蟲技術(shù)去爬,使用的次數(shù)很頻繁,會被網(wǎng)站記錄加入黑名單,當(dāng)我們再次訪問的時候會被提示,你不能訪問該網(wǎng)址。

那么這個技術(shù)在 Django 里面如何實(shí)現(xiàn)呢?

我搜索了一些方法,找到的資料不多,有一些可能有效,但是沒有可以直接運(yùn)行 demo,那么這里就提供一種使用中間件的 demo,親測有效。

自定義一個 middleware.py 文件,這個文件要在 Django 的 settings.py 配置文件中被引用,所以我放在與 settings.py 同文件夾的目錄下。

middleware.py

from django.http import HttpResponse
from django.utils.deprecation import MiddlewareMixin # 1.10.x

class TestMiddleware(MiddlewareMixin):
 def process_view(self,request,view_func,*view_args,**view_kwargs):
  EXCLUDE_IPS = ['192.168.1.54']
  if 'HTTP_X_FORWARDED_FOR' in request.META:
   ip = request.META['HTTP_X_FORWARDED_FOR']
  else:
   ip = request.META['REMOTE_ADDR']
  if ip in EXCLUDE_IPS:
   return HttpResponse('<h1>您的ip被禁止</h1>')

其中,關(guān)于自定義中間件的函數(shù)名稱例如 process_view() ,還有其它的例如 _init_ 之類在文檔中有具體解釋,這里只用到這個。

然后在 settings.py 中引入這個中間件:

settings.py

[
 'hunter.middleware.TestMiddleware',
]

其中 hunter 是我的系統(tǒng)的名稱,在末尾添加即可。

然后重啟我們的 Django 系統(tǒng),就可以實(shí)現(xiàn)禁止特定 IP 訪問的功能。

注意

這個 EXCLUDE_IPS 是我手動添加的一個列表,如果想對這個 IP 進(jìn)行可持續(xù)發(fā)展的管理,可以在用戶訪問系統(tǒng)的時候記錄下他們的 IP ,然后記錄在 MySQL 數(shù)據(jù)庫中,對其中的異常數(shù)據(jù)進(jìn)行禁止的處理。

對于訪問用戶頻繁訪問、添加黑名單有很好的療效,這里值得推薦。

以上這篇Django 用戶登陸訪問限制實(shí)例 @login_required就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解python虛擬機(jī)之多繼承與?mro

    深入理解python虛擬機(jī)之多繼承與?mro

    在本篇文章當(dāng)中將主要給大家介紹?python?當(dāng)中的多繼承和mro,通過介紹在多繼承當(dāng)中存在的問題就能夠理解在cpython當(dāng)中引入c3算法的原因了,從而能夠幫助大家更好的了理解mro,需要的朋友可以參考下
    2023-05-05
  • python 搜索大文件的實(shí)例代碼

    python 搜索大文件的實(shí)例代碼

    今天小編就為大家分享一篇python 搜索大文件的實(shí)例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • PyTorch的深度學(xué)習(xí)入門教程之構(gòu)建神經(jīng)網(wǎng)絡(luò)

    PyTorch的深度學(xué)習(xí)入門教程之構(gòu)建神經(jīng)網(wǎng)絡(luò)

    這篇文章主要介紹了PyTorch的深度學(xué)習(xí)入門教程之構(gòu)建神經(jīng)網(wǎng)絡(luò),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • python 多進(jìn)程通信模塊的簡單實(shí)現(xiàn)

    python 多進(jìn)程通信模塊的簡單實(shí)現(xiàn)

    這篇文章主要介紹了python 多進(jìn)程通信模塊的簡單實(shí)現(xiàn),需要的朋友可以參考下
    2014-02-02
  • python使用OpenCV模塊實(shí)現(xiàn)圖像的融合示例代碼

    python使用OpenCV模塊實(shí)現(xiàn)圖像的融合示例代碼

    這篇文章主要介紹了python使用OpenCV模塊實(shí)現(xiàn)圖像的融合示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python保留兩位小數(shù)的五種方法

    python保留兩位小數(shù)的五種方法

    很多小伙伴在學(xué)習(xí)python的時候可能會遇到對數(shù)據(jù)進(jìn)行格式化輸出的需求,其中最常見的需求為:保留幾位小數(shù),今天小編就以python怎么保留兩位小數(shù)為例,來介紹一下python數(shù)據(jù)格式化的方法,需要的朋友可以參考下
    2024-08-08
  • 使用pyecharts1.7進(jìn)行簡單的可視化大全

    使用pyecharts1.7進(jìn)行簡單的可視化大全

    這篇文章主要介紹了使用pyecharts1.7進(jìn)行簡單的可視化大全,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • python中的type,元類,類,對象用法

    python中的type,元類,類,對象用法

    這篇文章主要介紹了python中的type,元類,類,對象用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python處理PDF與CDF實(shí)例

    Python處理PDF與CDF實(shí)例

    今天小編就為大家分享一篇Python處理PDF與CDF實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python基于Tensor FLow的圖像處理操作詳解

    Python基于Tensor FLow的圖像處理操作詳解

    這篇文章主要介紹了Python基于Tensor FLow的圖像處理操作,結(jié)合實(shí)例形式分析了Python基于Tensor FLow操作圖像解碼、縮放、剪切、翻轉(zhuǎn)、調(diào)整對比度、明度、飽和度等相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01

最新評論