我已经制作了我的第一个heroku网络应用程序;该页面包含几个链接,这些链接可将您重定向到随机页面,以测试它们的工作能力。除了查看我的postgres数据库中创建的所有条目的链接之外,所有页面均有效。每次尝试加载该页面时,都会收到内部服务器错误。
我已经创建了DATABASE_URL并通过bash通过heroku cli设置了我的PYTHONPATH;并设置我的procfile和wsgi文件。我已经尝试过进行一些更改,但是这会使整个应用程序崩溃,而不是解决我的错误。
这是app.py文件。
import os
import pyscopg2
from flask import Flask, render_template, g, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://fikwczdiymxhwf:73bf42c2c8a15fa59b77e93654b6383e1cf4f85bdf0156818d1cf39a77815f13@ec2-54-243-47-196.compute-1.amazonaws.com:5432/d3uburco4fea1b'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
class Example(db.Model):
__tablename__ = "example"
id = db.Column(db.Integer, primary_key=True)
info = db.Column(db.String, )
name = db.Column(db.String, )
city = db.Column(db.String, )
def __repr__(self):
return '<Example {}>'.format(self.info)
DATABASE_URL = os.environ.get('postgres://fikwczdiymxhwf:73bf42c2c8a15fa59b77e93654b6383e1cf4f85bdf0156818d1cf39a77815f13@ec2-54-243-47-196.compute-1.amazonaws.com:5432/d3uburco4fea1b')
@app.route('/')
def index():
return render_template('index.html')
@app.route('/page_2')
def page_2():
return render_template('random_page_2.html')
@app.route('/hello')
def hello():
return render_template('hello.html')
@app.route('/view_database')
def view_db():
conn = psycopg2.connect(DATABASE_URL)
cur = conn.cursor()
data = cur.execute("SELECT * FROM example")
cur.close()
conn.close()
return render_template('view_database.html', data=data.fetchall())
main.py
import os
from app import app
if __name__ == '__main__':
app.debug = True
app.run()
wsgi.py 从whitenoise导入WhiteNoise
from app import app
application = WhiteNoise(app)
application.add_files('static/', prefix='static/')
这三个文件位于一个文件夹内-以及用于页面,图片样式表的模板和静态文件夹;这个文件夹的标签是flask-sqlalchemy-test-02。
此文件夹之外有以下文件:procfile,requirements.txt,schema.sql,运行时
procfile:
web:gunicorn flask-sqlalchemy-test-02.wsgi:application --log-file=-
运行时:
pyhton-3.7.3
requirements.txt:
要获取此信息,我进入了命令行目录中的开发文件夹并输入:
pip freeze > requirements.txt
我一直在网上查看其他heroku部署的应用程序,并注意到它们有一个gitignore文件,有些有venv(环境文件夹)。我不知道是否必须自己将其包含在我的应用程序中才能使它按我预期的方式工作。我很确定这可能是缺少/错误的代码行,但是我真的不知道在哪里寻找,如果有人可以帮助的话,将不胜感激!
这是我需要克服的主要障碍,以便开始制作更多的交互式网页。
网络应用程序: https://flask-sqlalchemy-test-02.herokuapp.com/
我的GitHub存储库: https://github.com/SinclairPythonAkoto/flask-sqlalchemy-test-02
您自己测试应用程序,然后检查我的代码的完整详细信息。
非常感谢! :)