代码之家  ›  专栏  ›  技术社区  ›  Josh

如何开始使用google app engine/django中的会话?

  •  5
  • Josh  · 技术社区  · 15 年前

    我不熟悉python/gae/django。我知道,GAE本身没有内存会话…但我想我想要一些同等的东西。我 read 德扬戈会议 can be backed 是Bigtable或Memcache,但我从未让它们工作过。我想我要问的是“我应该……”

    1. 坚持让django会话工作?
    2. 看看其他的webapp框架,特别是会话,还是网站?
    3. 滚我自己的?

    在我看来,会议是不受支持的开箱即用,不知何故不是一流的公民。你是做什么的?你说什么?

    谢谢。

    4 回复  |  直到 14 年前
        1
  •  3
  •   lprsd    15 年前

    应用引擎不支持Django会话的原因是Django使用基于数据库表(模型)的会话,AppEngine不支持Django ORM。

    解决这一问题的方法是让Django模型在Appengine上开箱即用。它是通过修补django代码完成的,在 App Engine Patch 项目。

    使用这个补丁,当django模型工作时,您可以访问django admin、django auth以及最新的django版本。

    您还可以在应用程序引擎上部署django应用程序的日志中找到,这很有用: http://uswaretech.com/blog/2009/04/develop-twitter-api-application-in-django-and-deploy-on-google-app-engine/

        2
  •  1
  •   ars    15 年前

    gaeutilies库附带了一个运行良好的会话管理类:

        3
  •  1
  •   Queryer    14 年前

    我现在正在使用gaeutilies会话。但是,问题是这些创建的会话只能在服务器端代码中访问。当我试图在django模板标记中访问它们时,我可以将它们检索出来。我错过什么了吗?

    示例:客户端(django模板标记)

             {% if request.session["email"]%}
                <p><a href="/logout/"id="menu">Logout</a></p>
                <p class="subtext">GoodBye!</p>
            {% else %}
                <p><a href="/login/"id="menu">Login</a></p>
                <p class="subtext">Welcome!</p>
            {% endif %}
    

    服务器端只是一个简单的self.session['email'],所有服务器端文件都可以访问它。

    除了将会话值呈现给页面之外,还有什么关于如何在客户端访问它们的想法吗?我需要所有客户端页面来访问会话值。

        4
  •  0
  •   Joe Bowman    14 年前

    gaeuitilities包括一个django中间件,但是我有一段时间没有开发django,也不能100%保证它与django保持最新。如果有问题,我相信我不会花很长时间来解决。

    https://github.com/joerussbowman/gaeutilities/blob/master/appengine_utilities/django-middleware/middleware.py

    如果您在会话中使用该中间件,那么它应该按预期工作,包括在模板中。如果遇到问题,请在GitHub上提交任何问题。

    https://github.com/joerussbowman/gaeutilities