基于这个结构:http://flask.pocoo.org/docs/patterns/packages/
我也试过这个帖子:Deploying Flask app to Heroku
我很难让这个在heroku上生效。我通常得到的端口设置不在60秒内出错。我读过其他的SO文章,只是不知道我的项目结构是错误的还是我的procfile。我也试过5000以外的其他港口。在
/myapplication
Procfile
runserver.py
/applicationfolder
__init__.py
views.py
from applicationfolder import app
app.run()
if __name__ == '__main__':
import os
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
import os
from flask import Flask
from flask import render_template, jsonify, request
app = Flask(__name__)
app.config.from_object('config')
import applicationfolder.views
从那里视图.py跑。在
这可以在本地使用foreman start和python运行服务器.py,但不适用于heroku。我尝试过很多端口,但端口似乎没有设置,即使端口不同于5000。我想这和我的项目结构有关。在
在应用程序运行()在里面两次,你也注意到了,这是把事情搞砸的原因。这个应用程序运行()调用一个简单的纯python开发服务器,以便您可以轻松地运行和/或调试脚本。在
通过在模块级别调用它(在运行服务器.py),您实际上是在加载python代码时尝试启动开发服务器,然后当它从Procfile调用时运行它时,开发服务器已经在运行中,从它的默认值开始(Flask的最新版本正在从SERVER_NAME环境变量中提取相关的默认值)。通过在这两个地方都使用它,您试图调用该方法两次。在
您基本上需要直接加载模块(在这种情况下,删除“ifname…”下的代码),或者在main下调用时使用该代码,在这种情况下,不要在模块加载时启动服务。在
相关问题 更多 >
编程相关推荐