`
hanyh
  • 浏览: 235480 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

根据链接判断用户是否登录,没有则转到首页的django middleware

阅读更多
要求:“/operate”为受限制区域,要求必须登录;登录后若长时间不用,则自动logout
实现:django middleware非常适合这个要求,和java的filter差不多
from django.conf import settings
from django.contrib import auth
from datetime import datetime, timedelta
from django.http import HttpResponse,HttpResponseRedirect
class AutoLogout:
  def process_request(self, request):
    if request.path.startswith("/operate"):
#        print '***********************************************'
        if  not request.user.is_authenticated() :
            auth.logout(request)
            return HttpResponseRedirect("/")
    if not request.user.is_authenticated() :
      return
    try:
      if datetime.now() - request.session['last_touch'] > timedelta( 0, settings.AUTO_LOGOUT_DELAY * 60, 0):
        auth.logout(request)
        del request.session['last_touch']
        return
    except KeyError:
      pass

    request.session['last_touch'] = datetime.now()



分享到:
评论
7 楼 skysbird 2008-11-20  
gonefish 写道

既然要登陆,怎么不用login_required啊

因为他要对于全部的view,而不是某个某几个,这样做代码高校些。
6 楼 gonefish 2008-11-03  
既然要登陆,怎么不用login_required啊
5 楼 xunSir.lee 2008-11-02  
hama 写道
我用的是基于数据库的session,怎么做到关闭浏览器后,session就失效?

SESSION_EXPIRE_AT_BROWSER_CLOSE = True
4 楼 duka 2008-06-25  
建议
if request.path.startswith("/operate"):
改写成
if request.path.startswith("/operate/"):
3 楼 hama 2008-06-11  
我用的是基于数据库的session,怎么做到关闭浏览器后,session就失效?
2 楼 hellas 2008-04-29  
可以在setting里面设置SESSION_COOKIE_AGE(单位:秒),缺省是两个星期。
1 楼 andrewleung 2008-04-28  
在Java里的web.xml设置
<session-config>
        <session-timeout>30</session-timeout>
</session-config>
超过这个时间就需要重新登录,不知道Django里面有没有类似的设置啊
而不是写代码来判断

相关推荐

    django实现用户的登录注册连接后台数据库完成主页的搭建

    在本项目中,我们主要探讨如何使用Python的Web框架Django来实现用户登录、注册功能,同时连接后台数据库,构建一个完整的主页,并加入忘记密码和验证码等增强安全性的重要特性。以下将详细介绍这些知识点: 1. ...

    django登录注册实例代码.rar

    在这个名为"django登录注册实例代码.rar"的压缩包中,我们找到了一个使用Django实现用户登录和注册功能的示例项目。这个项目可能包括了创建用户模型、视图、模板以及URL配置等关键部分,帮助初学者理解Django框架...

    python-Django实现用户登录

    在Django中,用户登录是任何网站的核心功能之一,它允许用户保存个性化设置、保护私有内容并确保数据安全。下面我们将深入探讨如何使用Python Django实现用户登录。 首先,Django 自带了一个强大的认证系统,称为`...

    Django实现登录-注册等功能

    在本文中,我们将深入探讨如何使用Django框架来实现用户登录和注册功能,这对于任何Web应用程序来说都是核心组件。Django是一个用Python编写的高级Web框架,它鼓励快速开发和简洁实用的设计理念。 首先,我们需要...

    django-middleware-global-request-0.2.0.tar.gz

    在Python的Web开发框架Django中,Middleware(中间件)是一种强大的工具,它允许开发者插入自定义的行为到Django的请求处理流程中。标题提到的"django-middleware-global-request-0.2.0.tar.gz"是一个针对Django的...

    Django框架之登录后自定义跳转页面的实现方法

    自己尝试了一下,发现一个问题,当验证登陆成功后,页面会自动跳转到/account/profile,我并不想把页面跳转到这个页面,如何修改呢? 查了一堆网页,还是官网靠谱,很简单,就在project的setting里加一句话就Okay! ...

    适用于django及基于django框架的项目中添加jaeger实现的middleware.zip

    将这个中间件添加到`MIDDLEWARE`设置中,确保它在其他可能修改响应的中间件之前: ```python MIDDLEWARE = [ # ... 'myapp.middleware.JaegerMiddleware', # ... ] ``` 4. **在视图函数中使用**: 虽然...

    Django教程笔记之中间件middleware详解

    因为改变的是全局,所以需要谨慎实用,用不好会影响到性能。 每个中间件都会负责一个功能,例如,AuthenticationMiddleware,与sessions处理相关。 激活中间件 需要在settings.py配置文件中,配置MIDDLEWARE_...

    python Django web 联通用户管理系统实训代码

    1. 高度集成化:Django包含了很多常用功能,如自动化ORM系统、Form系统、Cache系统、Routing、Middleware、Template系统等,这样就能够很方便的使用这些功能,不需要自己来实现这些底层的功能。 2. 自动化Admin管理...

    【JavaScript源代码】django+vue实现注册登录的示例代码.docx

    如果登录成功,根据返回的响应数据,前端会将用户重定向到首页。 在Django的视图函数`view.py`中,实际处理这些请求的地方,开发者会定义相应的注册和登录逻辑,包括验证用户输入、创建或验证用户账户,以及生成...

    PyPI 官网下载 | opencensus-ext-django-middleware-0.1.4.tar.gz

    而中间件(Middleware)是Django框架中的一种特殊组件,它位于视图函数和请求/响应之间,可以拦截、修改或处理请求和响应,实现诸如用户认证、日志记录、性能监控等多种功能。 **三、opencensus-ext-django-...

    Python库 | django-user-language-middleware-0.0.1.tar.gz

    `django-user-language-middleware`则是其中一种特定类型的中间件,它的主要任务是根据用户的偏好设置动态调整网站的语言环境。这在多语言网站的开发中尤其重要,因为它能提供更优秀的用户体验,使用户能够直接看到...

    Django注册、登录、注销示例

    Django提供了内置的`auth.views.LoginView`,这是一个处理用户登录的视图。你可以自定义模板来显示登录表单,或者使用Django提供的默认模板。登录过程通过`authenticate()`函数进行,该函数接受用户名和密码作为参数...

    django笔记 django笔记

    Django内置了用户认证和授权系统,包括用户模型、登录/注销、权限和组的管理。通过`django.contrib.auth`模块,可以轻松实现用户注册、登录验证等功能。 10. **静态文件与媒体文件**: Django处理静态文件(如CSS...

    Django框架之中间件MiddleWare的实现

    Django框架中的中间件(MiddleWare)是一种强大的工具,它允许开发者在请求处理流程的各个阶段插入自定义逻辑,从而扩展Django的功能。中间件在处理请求和响应时起到一个拦截器的作用,使得开发者能够在不修改视图或...

    django cms 用户文档

    Django CMS是一种基于Python和Django的高级内容管理系统(CMS),它允许用户创建和管理动态网站内容。Django CMS用户文档是一个详细的指南,它为开发者提供了安装、配置、使用以及扩展Django CMS所需的各种信息。...

    Django1.6_利用Form实现注册登录注销修改密码

    在Django框架中,Form是处理用户输入数据的重要工具,它简化了模型与视图之间的交互,使得数据验证和处理更加高效。本教程基于Django 1.6和Python 2.7.6,将详细介绍如何利用Form实现注册、登录、注销以及修改密码...

    PyPI 官网下载 | raygun_django_middleware-1.0.8-py2.py3-none-any.whl

    **PyPI 官网下载 | raygun_django_middleware-1.0.8-py2.py3-none-any.whl** PyPI(Python Package Index)是Python开发者常用的资源库,它提供了大量的第三方Python软件包,方便用户下载和安装。在本案例中,我们...

    django+python实现的web入门程序-注册登录功能-sqlite3数据库

    6. URL路由:Django的URL配置允许开发者将URL模式映射到特定的视图函数,使得用户可以通过URL访问不同的功能。在本项目中,可能有如`/register/`和`/login/`这样的URL,分别对应用户注册和登录的视图。 7. 表单处理...

    django入门到放弃

    **Django入门到放弃**,这是一段概括性的话语,暗示了从初识Django到深入学习的过程中可能会遇到的挑战。Django是一个基于Python的Web框架,它以其高效、安全和可扩展性著称,是许多开发者构建Web应用的首选工具。本...

Global site tag (gtag.js) - Google Analytics