转:http://www.cnblogs.com/ccorz/p/Django-zhong-loginrequired-yong-fa-jian-jie.html

1、网站开发时的登录需求:

===用户登录系统才可以访问某些页面

===如果用户没有登录而直接访问就会跳转到登录界面,而不能访问其他页面

===用户在跳转的登录界面中完成登录后,自动访问跳转到之前访问的地址

实现上面的需求可以使用下面的方法

?===使用django自带的装饰器@login_required

?===在相应的view方法的前面添加@login_required

?==并在settings.py中配置LOGIN_URL参数

?===修改login.html中的表单action参数

views.py设置:

from django.contrib.auth.decorators import login_required

from djangp.shortcuts import render_to_response

from django.http import HttpResponse

@login_required

def myview(request):

  return render_to_response("index.html")

如果用户还没有登录,默认会跳转到"/accounts/login/"。通过这个值可以在settings中通过LOGIN_URL参数来设定。(后面还会自动加上你请求的url作为登录后跳转的地址,如:/accounts/login/?next=/polls/3/登录完成之后,会去请求/poll/3)

setting.py设置

LOGIN_URL="/accounts/login/"#这个路径需要根据你网站的实际登录地址来设置

urls.py设置:

from django.conf.urls import url

from django.contrib import admin

from app01 import views

urlpatterns=[

  url(r"^admin/",admin.site.urls),

  url(r"^accounts/login/",views.acc_login)

如果LOGIN_URL使用默认值,那么在urls.py中还需要进行如下设置:加入下面这句()

(r"^accounts/login/$","django.contrib.auth.views.login"),

这样的话,如果未登录,程序会默认跳转到"templates/registration/login.html"这个模板

如果想换个路径,另一种方式:那就再加个template_name参数,如下:

(r"accounts/login/$","django.contrib.auth.views.login",{"template_name":"myapp/login.html"}),

这样程序就会跳转到template/myapp/login.html

login.html设置

django中的@login_required的更多相关文章

  1. django中的认证与登录

    认证登录 django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1  authenticate(**credentials)    提供了用户认证,即验证用户名以及密码是否 ...

  2. Django 中的用户认证

    Django 自带一个用户认证系统,这个系统处理用户帐户.组.权限和基于 cookie 的 会话.本文说明这个系统是如何工作的. 概览 认证系统由以下部分组成: 用户 权限:控制用户进否可以执行某项任 ...

  3. Django中用户权限模块

    Django中用户权限模块 1 auth模块 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理. auth可以和admin模块配合使用, 快速建立网站的管理系 ...

  4. 详解Django中六个常用的自定义装饰器

    装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式.这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很方便地修改对象行为, ...

  5. Django中六个常用的自定义装饰器

    装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式.这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很方便地修改对象行为, ...

  6. django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066

    1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate(*args,**kwargs) : 通过对QuerySet进行计算 ,返回一个聚合值的字典. ...

  7. 重新整理django中Auth模块

    0907自我总结 重新整理django中Auth模块 from django.contrib import auth 一.设置 默认Auth表单 auth默认是使用自带的user表单 自定义Auth表 ...

  8. 1205 CSRF跨站请求与django中的auth模块使用

    目录 今日内容 昨日回顾 基于配置文件的编程思想 importlib模块 简单代码实现 跨站请求伪造csrf 1. 钓鱼网站 如何实现 模拟该现象的产生 2. 解决问题 解决 {% csrf_toke ...

  9. Django中常用的那些模块路径

    Django中常用的那些模块路径 from django.shortcuts import HttpResponse, render, redirect from django import temp ...

随机推荐

  1. HTML5堆木头游戏

    在线演示 本地下载

  2. 基于HTML5和SVG的手机菜单动画

    在线演示 本地下载

  3. What's the difference between UTF-8 and UTF-8 without BOM?

    https://stackoverflow.com/questions/2223882/whats-the-difference-between-utf-8-and-utf-8-without-bom ...

  4. AngularJS Source code

    Angular.js 辅助函数 lowercase hasOwnProperty uppercase mannualLowercase mannualUppercase isArrayLike for ...

  5. 64位机的pl/sql不安装32位oracle的连接方式

    第一步:下载即时客户端包    在Oralce官方网站上下载Oracle Instantclient Basic package.地址如下:http://www.oracle.com/technetw ...

  6. 抓jsoup_01_方案代码

    1.方案选择: 1.1.HttpClient库 获取 原始的 json数据 1.2.JSON库 取得 我们需要的HTML内容 1.3.使用 jsoup 解析 我们取得的HTML内容 2.不直接使用 j ...

  7. TextView实现图文混合编排

    TextView实现图文混合编排 一.简介 在这里实现图文混合编排使用的是:TextView中预定义的类似Html的标签 二.方法 * 1.设置好html标签的文本 String html=" ...

  8. 今夜我们一起学习 Apache Shiro

    简介 Apache Shiro 是一个功能强大但又非常容易使用的 Java 安全框架,提供了认证,授权,加密以及会话管理功能.因为 Shiro 的 API 是非常容易理解的,所以使用 Shiro 你可 ...

  9. 客户端类中中记录异常的方法: 使用Log4net

    1.首先引用Log4Net 的命名空间 using log4net; 2.在使用的类中生命静态变量 log public class FileService    {        static re ...

  10. time模块详解

    本文转自这里: 在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. 在开始之前,首先要说明这几点: 在Python中,通常有 ...