`
qzriso
  • 浏览: 242547 次
  • 性别: Icon_minigender_1
  • 来自: ph
社区版块
存档分类
最新评论

Django笔记9(会话、用户和注册)

阅读更多
1. Cookies
(1)设置Cookie

def set_color(request):
    if "favorite_color" in request.GET:
        # Create an HttpResponse object...
        response = HttpResponse("Your favorite color is now %s" % \
            request.GET["favorite_color"])
        # ... and set a cookie on the response
        response.set_cookie("favorite_color",
                            request.GET["favorite_color"])
        return response
    else:
        return HttpResponse("You didn't give a favorite color.")

(2)获取Cookie

def show_color(request):
    if "favorite_color" in request.COOKIES:
        return HttpResponse("Your favorite color is %s" % \
            request.COOKIES["favorite_color"])
    else:
        return HttpResponse("You don't have a favorite color.")


2.Session
(1) 打开 Sessions功能
编辑 MIDDLEWARE_CLASSES 配置,确保 MIDDLEWARE_CLASSES 中包含 ‘django.contrib.sessions.middleware.SessionMiddleware’
确认 INSTALLED_APPS 中有 ‘django.contrib.sessions’ (如果你是刚打开这个应用,别忘了运行 manage.py syncdb)
(2) 在视图中使用Session

# Set a session value:
request.session["fav_color"] = "blue"

# Get a session value -- this could be called in a different view,
# or many requests later (or both):
fav_color = request.session["fav_color"]

# Clear an item from the session:
del request.session["fav_color"]

# Check if the session has a given key:
if "fav_color" in request.session:
...

(3) 打开认证支持
根据本章早前的部分确认已经安装了session 框架,需要确认用户使用cookie,这样sesson 框架才能正常使用。
将 ‘django.contrib.auth’ 放在你的 INSTALLED_APPS 设置中,然后运行 manage.py syncdb
确认 SessionMiddleware 后面的 MIDDLEWARE_CLASSES 设置中包含 ‘django.contrib.auth.middleware.AuthenticationMiddleware’
(4) 登录和退出

from django.contrib import auth
from django.http import HttpResponseRedirect

def login(request):
    username = request.POST['username']
    password = request.POST['password']
    user = auth.authenticate(username=username, password=password)
    if user is not None and user.is_active:
        # Correct password, and the user is marked "active"
        auth.login(request, user)
        # Redirect to a success page.
        return HttpResponseRedirect("/account/loggedin/")
    else:
        # Show an error page
        return HttpResponseRedirect("/account/invalid/")

from django.contrib import auth

def logout(request):
    auth.logout(request)
    # Redirect to a success page.
    return HttpResponseRedirect("/account/loggedout/")

(5) 限制已登录用户的访问

from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
    # ...

def user_can_vote(user):
    return user.is_authenticated() and user.has_perm("polls.can_vote")

@user_passes_text(user_can_vote, login_url="/login/")
def vote(request):
    # Code here can assume a logged-in user with the correct permission.
    ...

from django.contrib.auth.decorators import permission_required

@permission_required('polls.can_vote', login_url="/login/")
def vote(request):
    # ...

PS:由于这部分内容多属于后台权限部分,大部分代码并未测试,参考网址为:http://djangobook.py3k.cn /chapter12/,对于权限的的设置,是在数据库表里定义的(django_content_type,auth_permission),参考自动生成的数据即可有个大概的明白。值得一提的是后台User有个关联档案的功能,使得默认的user表不一定为后台服务,亦可为前台服务。这几天在思量做一个.NET版的较通用后台管理系统,并在以后改为Python及PHP版,今天看了这部分,觉得我做的Django大部分都有了,Python版的应该不必重复造轮子了,把Django研究透就好
分享到:
评论

相关推荐

    Django学习笔记.doc文件.rar

    10. **cookie和会话.doc**:Django提供了处理cookie和会话的功能,这部分可能会讲解如何使用它们来跟踪用户状态,实现如购物车、用户偏好设置等功能。 通过阅读这些文档,读者将能够全面理解Django框架的各个方面,...

    django框架学习笔记

    9. **认证与授权**:Django提供内置的用户认证系统,包括注册、登录、权限管理等功能。 10. **静态文件与媒体文件**:处理静态资源(如CSS、JavaScript、图片)和用户上传的媒体文件。 11. **数据库管理**:Django...

    python django商城天天生鲜项目核心资料,内含源码,笔记,相关文档教程!

    在这个"天天生鲜"项目中,我们能看到它被用来搭建了一个线上商城系统,包含了源码、笔记以及相关文档教程,这对于学习和理解Django在实际项目中的应用非常有价值。 首先,让我们深入了解一下Django。Django遵循模型...

    python django学习 基础

    9. **权限和认证**:Django内置了用户认证系统,包括注册、登录、权限检查和用户会话管理等功能,为应用的安全性提供基础支持。 10. **管理后台(Admin)**:只需简单配置,Django就能自动生成一个强大的管理后台,...

    全套百度云教程:python基础+进阶+项目篇 (含Django和Tornado)

    7. **用户认证与权限管理**:用户注册、登录、退出、权限设置等。 8. **缓存机制**:理解缓存的作用及实现方式。 9. **静态文件处理**:管理静态资源如CSS、JavaScript等。 #### 四、Tornado框架 Tornado是一个...

    django,mysql,全栈 搭建的web.seesion,cookie权限

    在本文中,我们将深入探讨如何使用Django...通过以上知识点,我们可以构建一个包含用户权限管理的云笔记应用,让用户能够安全地创建、编辑和分享笔记,同时利用session和cookie进行会话管理,确保用户的安全和体验。

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

    1. **Sessions** - `django.contrib.sessions.middleware.SessionMiddleware`:处理用户会话数据,使用户状态在请求之间得以保持。 2. **Authentication** - `django.contrib.auth.middleware....

    django架构学习

    【Django架构学习】是一个基于Python编程语言和Django Web框架构建的学习管理系统,旨在帮助...此外,还会涉及数据库交互、权限管理、表单处理、用户认证和会话管理等多个关键领域,对于提升Django开发技能非常有帮助。

    Django学习.docx

    总的来说,Django提供了一套全面的Web开发框架,涵盖了从项目初始化、模型设计、视图处理、URL路由到模板渲染以及用户会话管理等各个环节。掌握这些基本概念和操作,将有助于你更有效地构建和管理Django应用。

    达内云笔记项目note_ziliao.zip和调试好的完整代码

    后端开发方面,项目可能基于Java或Python等后端语言,使用Spring Boot或Django等框架来处理HTTP请求、管理会话、执行业务逻辑和与数据库交互。后端服务器还可能实现了RESTful API,使得前端和后端可以有效地通信。...

    django-shell-ipynb:Django 管理命令 shell_ipynb 将 IPython Notebook 作为 Django shell 启动

    IPython Notebook 有几个优点,包括您可以将整个实验会话保存为可重用的笔记本,以及基于 HTML 的完成和代码文档。 安装 安装django-shell-ipynb的最简单方法是使用pip 。 要么从pypi做到这一点: pip install ...

    Django中session的使用笔记

    Cookie是一种存储在用户本地的数据,通常用来存储少量的非敏感信息,如用户偏好设置或会话ID。然而,由于Cookie本身存在于客户端,容易被篡改或伪造,所以不适合存储重要的用户数据。Session则将数据存储在服务器端...

    简易网银管理系统搭建过程与结果演示

    - 在Django中定义模型,如用户模型和交易模型,映射到MySQL表。 - 编写视图函数,处理用户请求,如注册、登录、查询余额、充值、转账等操作。 - 设计HTML模板,呈现用户界面。 - 使用会话管理用户状态,确保用户...

    uof资料统计学习笔记

    在IT行业中,尤其是在Web开发领域,理解和掌握"UOF资料统计学习笔记"中的知识点是至关重要的。UOF可能指的是某个特定的技术或者框架,但由于信息有限,这里我们将基于Web开发的相关内容进行深入探讨。 首先,我们要...

    学习MySQL所做的笔记,以及将Python与MySQL结合,编写的简易新闻系统.zip

    6. 用户管理:用户注册、登录功能,可能涉及密码加密和会话管理。 7. 错误处理和日志记录:如何在Python代码中捕获和处理异常,以及记录系统日志。 8. 数据库优化:查询优化、索引优化等提高系统性能的方法。 9. ...

    yeoboseyo-django:用于Internet服务的总线(使用Django制作)[WIP]

    Django的内置认证系统可能被用于处理用户登录、权限控制和会话管理,确保服务的安全性。 总之,yeoboseyo-django项目是一个综合性的平台,利用Django的强大功能,集成了RSS服务、自动化任务以及与社交网络的互动,...

    Django_studying

    9. **静态文件与媒体文件管理(Static & Media Files)**:Django提供了处理静态文件(如CSS、JavaScript、图片)和用户上传的媒体文件的方法。 10. **国际化与本地化(Internationalization & Localization)**:...

    笔记.zip

    8. **后端开发**:Web服务器(Apache、Nginx)、后端框架(Django、Spring Boot、Express.js等)、RESTful API设计、会话管理等。 9. **云计算与大数据**:云服务提供商(AWS、Azure、Google Cloud)、虚拟化技术...

    TensorFlow2-keras-Vue开发笔记

    在TensorFlow 2中,主要的改进包括了默认的Eager Execution模式,它允许开发者在不使用会话的情况下直接运行操作,提高了代码的可读性和调试性。此外,Keras API已经成为TensorFlow的核心部分,简化了模型构建和训练...

    student_hub:尼泊尔专业人士的门户网站,可共享笔记和提出问题

    3. 数据库管理:在Django中,通常使用SQLite或MySQL等数据库存储用户信息、笔记内容和问答记录。开发者需要理解数据库模型的设计,如笔记、用户和问题的表结构,以及它们之间的关系。 4. 用户认证与授权:在...

Global site tag (gtag.js) - Google Analytics