Django 用戶登陸訪問限制 @login_required

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

要實(shí)現(xiàn)這樣的需求其實(shí)很簡(jiǎn)單:
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 -->
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容