Flask在Google App引擎上的端口5000上运行

时间:2017-05-06 09:28:51

标签: python google-app-engine flask

在谷歌应用引擎上运行烧瓶应用时,它会抛出一个错误,我必须在端口8080上提供我的应用程序。 所以我在

中指定了端口
if __name__ == "__main__":
    app.run(port=8080)

但是在App引擎上运行它会显示我的应用仍然在https://127.0.0.1:5000

上投放 编辑:我在运行应用程序的某个地方感到困惑,所以我尝试使用dev_appserver.py app.yaml在本地运行应用程序(这会引发错误) 在运行dev_appserver.py ./时运行服务器,但我localhost:8080的页面是空白的,并且我在终端中收到错误,即使我已经创建{{1},它也无法导入python模块脚本和一个lib子文件夹,下载了所有python包。

我的项目结构是:

appengine_config.py

编辑:服务器似乎现在运行正常,但它仍然无法导入python包(我将它们安装在lib文件夹中,我也使用了sys hack)这是错误:

root/
-app.py
--lib/
--static/
--templates/
-app.yaml
-appengine_config.py

我该如何解决?

2 个答案:

答案 0 :(得分:1)

除非您使用灵活的运行时,否则要在本地运行标准应用引擎应用,您需要使用dev_appserver。在项目的根目录中,您可以运行dev_appserver.py .

app.py具有以下最低内容:

from flask import Flask

app = Flask(__name__)

# define a few routes here or in app.yaml

@app.route('/')
def home():
    """Root page"""
    return 'home'

然后,您可以在项目的app.yaml处理程序部分中定义如何启动刻录应用程序:

handlers:
- url: .*
  script: app.app  # a reference to your app object defined in app.py

这应该让app引擎设置不受限制。 有关开始使用app引擎和烧瓶的更多信息,请参阅以下代表:https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard/flask/hello_world

编辑: 详细了解在here

上运行的环境

app.yaml的内容表明您正在使用flexible runtime。例如runtime: pythonentrypoint:...。如果你想坚持灵活的运行时,那很好。您首先必须在本地安装依赖项。首选方法是virtual environment

如果你想要的是app engine standard,根据你的文件/文件夹布局,app.yaml的结构将会接近:

runtime: python27
api_version: 1
threadsafe: true

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

使用app引擎标准,要使用刻录机,然后安装pip install flask -t lib以将刻录机安装到lib文件夹中,然后再使用dev_appserver.py

运行应用程序

答案 1 :(得分:0)

创建一个单独的config.py文件来配置数据库和端口设置,例如

DEBUG = True
PORT = 8000
HOST = "127.0.0.1"
SECRET_KEY = "SOME SECRET"

现在再创建一个单独的文件app.py并写下代码,

from app import create_app

app = create_app('config')

    if __name__ == '__main__':
        app.run(host=app.config['HOST'],
                port=app.config['PORT'],
                debug=app.config['DEBUG'])

它应该有用。