在谷歌应用引擎上运行烧瓶应用时,它会抛出一个错误,我必须在端口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
我该如何解决?
答案 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: python
和entrypoint:...
。如果你想坚持灵活的运行时,那很好。您首先必须在本地安装依赖项。首选方法是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'])
它应该有用。