Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在加载我的数据库页面(Flask/Heroku)时修复内部服务器错误?_Python_Postgresql_Heroku_Flask_Internal Server Error - Fatal编程技术网

Python 如何在加载我的数据库页面(Flask/Heroku)时修复内部服务器错误?

Python 如何在加载我的数据库页面(Flask/Heroku)时修复内部服务器错误?,python,postgresql,heroku,flask,internal-server-error,Python,Postgresql,Heroku,Flask,Internal Server Error,我有一个非常基本的Heroku web应用程序,你可以点击链接(在主页上)重定向到其他页面。我这样做是为了测试数据库页面。当我单击以查看数据库页面时,所有页面都会分开工作。当我尝试时,会收到一条错误消息: 内部服务器错误 服务器遇到内部错误,无法完成 您的请求。 服务器过载或中存在错误 应用程序 我确实试着玩弄procfile,但最终没有任何效果。我当前的proctfile如下所示: web: gunicorn flask-sqlalchemy-test-02.wsgi:application

我有一个非常基本的Heroku web应用程序,你可以点击链接(在主页上)重定向到其他页面。我这样做是为了测试数据库页面。当我单击以查看数据库页面时,所有页面都会分开工作。当我尝试时,会收到一条错误消息:

内部服务器错误
服务器遇到内部错误,无法完成 您的请求。
服务器过载或中存在错误 应用程序

我确实试着玩弄procfile,但最终没有任何效果。我当前的proctfile如下所示:

web: gunicorn flask-sqlalchemy-test-02.wsgi:application --log-file=-
老实说,我不太确定是procfile还是
app.py
中的sytax导致了我的问题

My app.py文件:

导入操作系统
导入psycopg2
从flask导入flask,为
app=烧瓶(名称)
DATABASE_URL=os.environ.get('postgres://fikwczdiymxhwf:73bf42c2c8a15fa59b77e93654b6383e1cf4f85bdf0156818d1cf39a77815f13@ec2-54-243-47-196.compute-1.amazonaws.com:5432/d3uburco4fea1b'
@应用程序路径(“/”)
def index():
返回渲染模板(“index.html”)
@应用程序路径(“/page2”)
def第2页():
返回呈现模板(“随机页面2.html”)
@app.route(“/hello”)
def hello():
返回渲染模板(“hello.html”)
@app.route('/view_database')
def view_db():
conn=psycopg2.connect(数据库URL)
db=连接光标()
data=db.execute(“从示例中选择*).fetchall()
db.close()
康涅狄格州关闭
返回渲染模板('view\u database.html',data=data)
我希望以无序列表的形式查看数据库,但收到了错误消息:

内部服务器错误
服务器遇到内部错误,无法完成您的请求。
服务器过载或应用程序中存在错误


您使用os.environ.get()的方式是错误的

os.environ.get()用于获取操作系统导出的环境变量,因此
DATABASE\u URL
返回None,您无法连接到
None
URL,因此内部服务器错误

**正确的方法:** 首先,导出环境变量(如果使用Linux):

export DATABASE_URL=postgres://fikwczdiymxhwf:73bf42c2c8a15fa59b77e93654b6383e1cf4f85bdf0156818d1cf39a77815f13@ec2-54-243-47-196.compute-1.amazonaws.com:5432/d3uburco4fea1b
然后,在代码中,将该行替换为:

DATABASE_URL = os.environ.get('DATABASE_URL', '')

您使用os.environ.get()的方式是错误的

os.environ.get()用于获取操作系统导出的环境变量,因此
DATABASE\u URL
返回None,您无法连接到
None
URL,因此内部服务器错误

**正确的方法:** 首先,导出环境变量(如果使用Linux):

export DATABASE_URL=postgres://fikwczdiymxhwf:73bf42c2c8a15fa59b77e93654b6383e1cf4f85bdf0156818d1cf39a77815f13@ec2-54-243-47-196.compute-1.amazonaws.com:5432/d3uburco4fea1b
然后,在代码中,将该行替换为:

DATABASE_URL = os.environ.get('DATABASE_URL', '')

嗨,纳什,我尝试了这个,但仍然得到了相同的结果。在heroku环境中已经设置了数据库的url…我在导出数据库时使用了bash,然后尝试再次加载web应用,但出现了相同的错误。嗨,纳什,我尝试了这个,但仍然得到了相同的结果。在heroku环境中已经设置了数据库的url。。。我在导出数据库时使用了bash,然后再次尝试加载web应用程序,但显示了相同的错误