使用 Flask 和 GAE 导入错误

ImportError using Flask and GAE

我希望应用引擎将 index.html 与根目录 URL 关联,将 main.app 与 /stats 关联。这是我的 app.yaml:

runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /
  static_files: index.html
  upload: index.html

- url: /stats.*
  script: main.app  

- url: /(.*)
  static_files: 
  upload: (.*)

如果 URL 是 /stats,我想打印一条短消息。这是 main.py:

中的代码
import logging
from flask import Flask

app = Flask(__name__)

@app.route('/stats')
def stats():
    return 'Hello World!'

当我尝试访问 /stats 时,GCP 日志显示 ImportError: No module named main。我该如何解决这个问题?

您似乎陷入了 /stats 处理程序和 /(.*) 处理程序之间的冲突。根据 static_filesdocumentation

If a static file path matches a path to a script used in a dynamic handler, the script will not be available to the dynamic handler.

因此,要么删除 /(.*) 处理程序,要么,如果您打算使用它提供静态文件,我建议使用文档中描述的处理程序:

- url: /(.*\.(gif|png|jpg|whateverextension))$
  static_files: static/
  upload: static/.*\.(gif|png|jpg|whateverextension)$

此外,不要忘记将 Flask 库添加到您的 app.yaml 文件中:

libraries:
- name: flask
  version: 0.12