<博客建立历程>阿里云建站16——页面权限

时间:Dec. 29, 2016 分类:

目录:

页面添加登录

起因是以为把我的博客给朋友看,因为添加博客的页面没有登录验证,他就可以在我的博客上写博客,这就尴尬了,然后我就决定给添加博客的页面添加登录验证。

测试流程

我们使用的权限认证是最简单的方式,通过django自带的auth权限认证即可,就是我们使用的django登录的时候

urls.py

省略部分
    url(r'^home/$', views.home, name='home'),
    url(r'^postlogin/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
    url(r'^postlogout/$', 'django.contrib.auth.views.logout', {'template_name': 'blog.html'}),

views.py

from django.http import HttpResponse  
from django.contrib.auth.decorators import login_required
@login_required(login_url="/blog/postlogin/")
def home(request):  
    return HttpResponse('Welcome, <a href="/blog/postlogout/">logout</a>')

对应页面

login.html

<!DOCTYPE html>
<html>
    <head>  
        <title>login</title>  
    </head>
    <body>
    {% if form.errors %}
        <p>Your username and password didn't match. Please try again.</p>
    {% endif %}
    <form method="post" action="{% url 'django.contrib.auth.views.login' %}">
    {% csrf_token %}
            <table>
            <tr>
                <td>{{ form.username.label_tag }}</td>
                <td>{{ form.username }}</td>
            </tr>
            <tr>
                <td>{{ form.password.label_tag }}</td>
                <td>{{ form.password }}</td>
            </tr>
            </table>

        <input type="submit" value="login" />
        <input type="hidden" name="next" value="{{ next }}" />
    </form>
    </body>
</html>

logout.html

<!DOCTYPE html>
<html>
    <head>  
        <title>login</title>  
    </head>
    <body>
    <p>Bye</p>
    </body>
</html>

验收

还是老样子,修改views,urls和html即可, 当访问http://www.whysdomain.com/blog/home的时候会自动跳转到http://www.whysdomain.com/blog/postlogin/?next=/blog/home/,就是通过@login_required(login_url="/blog/postlogin/")指定的,这个和登录admin使用的相同的用户名和密码,因为我们就是调用那里的代码。 然后就可以根据这个来修改了。