【问题标题】:Google App Engine: Disable session middleware for servicesGoogle App Engine:禁用服务的会话中间件
【发布时间】:2019-11-06 14:06:34
【问题描述】:

我有一个使用会话中间件运行的应用程序来处理登录用户。这是在 appengine_config.py 中配置的,如下所示:

import datetime
from gaesessions import SessionMiddleware
import jinja2
# Add session middleware
def webapp_add_wsgi_middleware(app):
    app = SessionMiddleware(app, cookie_key="Yqjo13XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", lifetime=datetime.timedelta(minutes=30), no_datastore=True, cookie_only_threshold=0)
    return app

我现在创建了一个服务来处理 cronjob 请求,但我不希望它加载会话中间件。有没有办法让服务位于单独的目录中,但它的 cronservice.yaml 在应用程序根目录中,忽略 appengine_config.py 中的设置?这些仅适用于默认应用,即 Web UI。

【问题讨论】:

    标签: python google-app-engine gae-module


    【解决方案1】:

    由于我的应用程序分为多个服务,因此我将前端控制器放在子目录 frontend/controllers 中,因此我检查路由器信息并在需要时导入模块:

    def webapp_add_wsgi_middleware(app):
    # If frontend add session middleware
    if 'frontend' in str(app.router):
        # Setup GAE sessions
        import datetime
        from gaesessions import SessionMiddleware
        import jinja2
        app = SessionMiddleware(app, cookie_key="XXXXX", lifetime=datetime.timedelta(minutes=30), no_datastore=True, cookie_only_threshold=0)
    
    return app
    

    当这个命中 str(app.router) 包含

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-14
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      相关资源
      最近更新 更多