Django判断用户是否登录和内置退出方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/85107118

一 判断用户是否登录

1 代码

<!--模板中声明引入静态文件的标签,只有使用它,static标签才能使用-->
{% load staticfiles %}
<div class="container">
    <nav class="navbar navbar-default" role="navigation">
        <div class="navbar-header">
            <a class="navbar-brand" href="https://blog.csdn.net/chengqiuming"><img src="{% static '/images/logo.png' %}" width="100px"></a>
        </div>
        <div>
            <ul class="nav navbar-nav" role="navigation">
                <!--blog是urlpatterns中定义的namespace,blog_title是视图函数-->
                <li><a href="{% url 'blog:blog_title' %}">记录我的点点滴滴</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right" style="margin-right:10px">
                {% if user.is_authenticated %}
                <li><a href="#">{{ user.username }}</a></li>
                <li><a href="#">退出</a></li>
                {% else %}
                <li><a href="{% url 'account:user_login' %}">LOGIN</a></li>
                {% endif %}
            </ul>
        </div>
    </nav>
</div>

2 测试效果

二 内置退出方法

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内置的登录
    url(r"^login/$", auth_views.login, name="user_login"),
    url(r"^new-login/$", auth_views.login, {"template_name": "account/login.html"}),
    url(r'^logout/$', auth_views.logout, {"template_name": "account/logout.html"}, name='user_logout'),
]

2 修改mysite/templates/header.html

<!--模板中声明引入静态文件的标签,只有使用它,static标签才能使用-->
{% load staticfiles %}
<div class="container">
    <nav class="navbar navbar-default" role="navigation">
        <div class="navbar-header">
            <a class="navbar-brand" href="https://blog.csdn.net/chengqiuming"><img src="{% static '/images/logo.png' %}" width="100px"></a>
        </div>
        <div>
            <ul class="nav navbar-nav" role="navigation">
                <!--blog是urlpatterns中定义的namespace,blog_title是视图函数-->
                <li><a href="{% url 'blog:blog_title' %}">记录我的点点滴滴</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right" style="margin-right:10px">
                {% if user.is_authenticated %}
                <li><a href="#">{{ user.username }}</a></li>
                <li><a href="{% url 'account:user_logout' %}">退出</a></li>
                {% else %}
                <li><a href="{% url 'account:user_login' %}">登录</a></li>
                {% endif %}
            </ul>
        </div>
    </nav>
</div>

3 增加退出模板mysite/templates/account/logout.html

{% extends "base.html" %}
{% block title %}退出{% endblock %}
{% block content %}
<div class="row text-center vertical-middle-sm">
    <p>你已经退出</p>
    <p>你能再次 <a href="{% url 'account:user_login' %}">登录</a></p>
</div>
{% endblock %}

4 测试

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/85107118
今日推荐