我想用Flask框架在amazoneb上建立一个非常简单的网站。该网站有一个欢迎表单,它从用户那里获取两个值,读取SQLite数据库并在屏幕上显示结果。这个网站在我的本地机器上运行得很好。问题出在弹性豆茎上。在
我用应用程序.py,SQLite数据库,static文件夹(用于引导)和templates文件夹(用于两个模板),我将其上载到弹性Beanstalk上。我的系统是windows,运行python3.6。上传后,EB给我绿色状态。我点击电子邮箱上的链接,带我去表格。到目前为止一切正常。然后,当我点击表单时,按钮submit将我带到结果页面,但是我收到了:
内部服务器错误 服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错。
我使用代码来识别amazoneb无法理解的步骤,而程序似乎在第一线失败了当前执行(''选择a,b,c,d,e,f。。。这意味着amazoneb看不到/不理解我的SQLITE数据库。在
有人能帮忙吗?在
这是我的烧瓶程序代码应用程序.py公司名称:
import os
import sqlite3
from flask import Flask, request, render_template
application = Flask(__name__)
@application.route('/', methods=['POST', 'GET'])
def index():
if request.method == 'GET':
return render_template('welcome.html')
elif request.method == 'POST':
conn = sqlite3.connect('Sky.db')
cur = conn.cursor()
weekendid= request.form['weekend']
myData=[]
cur.execute('''SELECT a, b, c, d, e, f, g
FROM Table1 WHERE a = ? ORDER BY g DESC LIMIT 5''', (weekendid,))
row = cur.fetchall()
for i in row:
average_1 = (i[1]+i[3])/2
average_2 = (i[2]+i[4])/2
variable1 = i[5]
variable2 = i[6]
cur.execute('''SELECT * FROM Table2 WHERE a = ?''', (i[0],))
coords=cur.fetchone()
zz = [average_1, average_2,variable1,variable2]
myData.append(zz)
return render_template('where.html', myData=myData)
if __name__ == '__main__':
application.debug = True
host = os.environ.get('IP', '127.0.0.1')
port = int(os.environ.get('PORT', 80))
application.run(host=host, port=port)
首先。在elasticbeanstalk上使用SQLite时要小心,因为如果您更改了配置,它很可能会杀死您的实例并重新部署。在您的例子中,看起来不像是在向数据库写入数据,所以这不是问题。在
查找错误的第一步可能是转到ElasticBeanstalk控制台并单击
Request logs
。它在日志窗格下。在那里,您应该能够从实例中获取日志,并在
/var/log/httpd/error_log
下找到实际的错误。在您可能还需要ssh到您的实例,并验证路径是否如您所期望的那样。当然,你也可以这样找到日志。如果您使用的是eb控制台工具,只需执行
eb ssh
相关问题 更多 >
编程相关推荐