簡體   English   中英

無法在Google App Engine上運行Flask調試模式

[英]Can't run Flask debug mode on Google App Engine

我正在使用Python 2.7在Google App Engine上運行Flask 0.9 / Werkzeug 0.8.3,我迫切希望運行Werkzeug調試器。 嘗試使用werkzeug_appengine_debugger后,我在控制台中有以下異常:

File "/path/to/application/main.py", line 14, in <module>
   @app.route('/')
AttributeError: 'DebuggedApplication' object has no attribute 'route'

它不僅可以是'route',還可以是Flask應用程序可以擁有的任何屬性。

我的文件樹看起來像這樣,借用於flask-appengine-template

application
    __init__.py
    main.py
    ...    
flask
flaskext
werkzeug
werkzeug_debugger_appengine
...
app.yaml

在app.yaml我的目標是WSGI應用程序:

application: application_name
version: 1
runtime: python27
api_version: 1
threadsafe: true

builtins:
- appstats: on
- admin_redirect: on
- deferred: on
- remote_api: on

libraries:
- name: jinja2
  version: "2.6"
- name: markupsafe
  version: "0.15"

inbound_services:
- warmup

handlers:
- url: .*
script: application.app

這是__init__.py的內容

from flask import Flask
from werkzeug_debugger_appengine import get_debugged_app


## Starting app
app = Flask('application_name')


## Configuration
import os
import secrets

app.debug            = True
app.secret_key       = secrets.SECRET_KEY
app.csrf_session_key = secrets.CSRF_SESSION_KEY

# Auto-set debug mode based on App Engine dev environ
if 'SERVER_SOFTWARE' in os.environ and os.environ['SERVER_SOFTWARE'].startswith('Dev'):
    app.debug = True


## Extensions
if app.debug:
    app = get_debugged_app(app)


## Everything else
import main

沒有werkzeug_appengine_debugger它也行不通。 以下初始化

app = DebuggedApplication(app, True)

仍然拋出相同的異常。

在沒有GAE + Flask教程或文章中我看到了這個問題。 為什么會這樣?

app = DebuggedApplication(app, True)

應該:

app.wsgi_app = DebuggedApplication(app.wsgi_app, True)

這是在Flask中添加中間件的推薦方法 - 正如文檔所說,這樣你可以“保留對flask.Flask應用程序類的引用”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM