当前位置: 首页 > 面试题库 >

将Flask应用程序部署到Heroku

淳于健
2023-03-14
问题内容

我正在尝试在Heroku上使用Flask开发我的第一个“大型”应用程序,并尝试将此处的基本教程与以下说明结合:https
:
//devcenter.heroku.com/articles/python与以下说明:http://
flask.pocoo.org/docs/patterns/packages/#larger-
applications。它在本地与“先行启动”一起工作,但是当我推送到Heroku时,我得到一个错误,指出使用了错误的端口:

使用命令python run.py 2012-12-04T23:45:18 + 00:00 app [web.1]启动进程:
http://127.0.0.1:5000/2012-12-04T23:45:18 + 00:00 app
[web.1]上运行:
重新启动reloader 2012-12-04T23:45:23 + 00:00 heroku
[web.1]:错误R11(错误绑定)->绑定到端口5000的进程应为33507(请参阅环境变量PORT)

我对这一切都不陌生,但是看起来它试图在Heroku上“本地”运行。我尝试了各种组合,但无法使其正常工作。我现在非常简单的代码是(该应用程序称为“
pml”):

目录:/ pml

程序文件:

web: python run.py

run.py:

from pml import app
app.run(debug=True)

目录:/ pml / pml /

init.py

from flask import Flask
app = Flask(__name__)

import pml.views

view.py

from pml import app

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

问题答案:

我没有使用过Heroku,但对我来说,它们似乎为Flask保留了一个端口,特别是33507。它似乎将尝试使用环境变量,但我不确定如何在Heroku中进行设置。好消息是您可以告诉Flask使用哪个端口。

尝试这个:

app.run(debug=True, port=33507)

并且看起来将PORT添加到heroku中的env是这样完成的:

heroku config:add PORT=33507

应该 只需要做的其中之一。我会尝试第一个,因为对我来说,这是解决此问题的直接方法。

编辑
从您的文章中阅读文章后,我看到了问题所在。

port = int(os.environ.get('PORT', 5000))

那行说,PORT如果设置了环境,则从环境中获取值,否则使用5000。我不确定为什么如果他们的文档中的内容是为什么他们不允许它从5000开始运行,但是我会尝试这种改变:

port = int(os.environ.get('PORT', 33507))


 类似资料:
  • 我试图将Spring Boot应用程序部署到Heroku,但我无法做到这一点。我的应用程序会自动检测为"heroku-maven-plugin",但我想将其部署为Java应用程序。 我怎样才能做到这一点?

  • 我想部署两个应用程序foo。war和条形图。war到同一个Tomcat实例。他们是否可以侦听不同端口上的连接,例如,foo侦听端口81,bar侦听端口82?如果是,我如何配置?我意识到应用程序没有必要监听不同的端口,但这正是我想要实现的。 此外,如果我将重命名为,使其在根上下文中运行,那么对该Tomcat实例的所有请求都将由foo应用程序处理,因此bar必须部署到单独的Tomcat实例,这是否正确

  • 问题内容: 谁能帮助我在IIS 6上运行Flask应用程序?我曾尝试使用isapi-wsgi,但是当我访问虚拟目录地址时,会得到一个页面,显示“找不到指定的模块”。还有其他选择吗? 以下是我为isapi-wsgi编写的Python脚本。已创建虚拟目录,并且在IIS管理器中一切正常,但该站点无法正常工作。 问题答案: 高层概述 HTTP-> IIS-> ISAPI-> FastCGI-> WSGI(

  • 当我部署flask应用程序时,它显示successful,但当我检索日志时,我看到错误“flask not found”。我的需求文件中有烧瓶。任何帮助。 [Sat Jan 11 06:51:50.503908 2020][:error][pid 3393][remote 127.0.0.1:0]mod_wsgi(pid=3393):目标wsgi脚本'/opt/python/current/app

  • 我对AWS Lambda非常陌生,基于我在网上找到的许多例子(阅读无穷无尽的文档),我正在努力理解它的功能。我知道使用这种服务的主要目的是实现一个无服务器架构,通过允许Lambda和API Gateway承担管理您的服务器的角色,该架构是低成本的,并且可能是高效的(所以无服务器并不意味着您不使用服务器,而是该架构为您处理事情)。我将我的研究组织成开发人员在Lambda上部署Flask web应用程

  • 我正试图将我的spring应用程序部署到heroku,但我相信maven插件中存在一些错误。尝试了所有可能的版本组合,在本地工作,但在部署时不工作。 当我跑步的时候: git push heroku master 以下是错误: 4.0.0 org.springframework.Boot Spring-Boot-starter-parent 2.3.3.发布com.project techupda