• Django:学习笔记(5)——会话


    Django:学习笔记(5)——会话

    配置中间件

      Django中使用会话,需要配置一个中间件。

      

    配置会话引擎

      默认情况下,Django在数据库中存储sessions(使用了django.contrib.sessions.models.Sesson模型)。但是你可以选择将其存储在更快的文件系统或缓存中。

      我们在这里,使用数据库存储会话数据。配置好中间件后,运行manage.py migrate后会在数据库中创建一张session数据存储表。

      

    使用会话

    在Views中使用会话

      一旦SessionMiddleware被激活,每一个HttpRequest对象,都有一个session属性,它的基类是SessionBase,我们可以调用它的相关方法来操作会话数据。

      

    不在view中使用会话

      如果我们还想在其他地方操作会话,可以直接导入SessionStore,如果使用了基于数据库的会话引擎,直接从对应的包下导入即可,如果配置了其他引擎,可以import_module导入设置文件中配置的会话引擎。 

       

    实例:仅允许提交一次

      我们设置当用户提交评论后,想再次提交就会收到拒绝信息。

    def post_comment(request, new_comment):
        if request.session.get('has_commented', False):
            return HttpResponse("You've already commented.")
        c = comments.Comment(comment=new_comment)
        c.save()
        request.session['has_commented'] = True
        return HttpResponse('Thanks for your comment!')
    

      这个代码写的真的好,在没有设置has_commented为true的时候,默认返回false,直到用户提交成功后,再次访问,此时得到true,返回You've already commented!

  • 相关阅读:
    E. Construct the Binary Tree
    Information Disturbing (树型DP + 二分)
    The Ghost Blows Light
    GeoDefense
    Apple Tree (可以重复走)
    Find Metal Mineral
    Rebuilding Roads
    CSS选择器
    CSS清除浮动的几种有效方法
    电话号码分身(小米2017秋招真题)
  • 原文地址:https://www.cnblogs.com/MrSaver/p/10428062.html
Copyright © 2020-2023  润新知