Ich arbeite an einem einfachen Kolben Todo-Liste Web-App mit Postgres-Datenbank und ich versuchte, es zu Heroku Bereitstellung, aber es gibt mir einen Fehler Kolben App startenModuleNotFound: Heroku Protokoll auf procfile zeigen Fehler und nicht
sagenApplication error An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details.
folgte ich die Quickstart richtig, aber das nicht
helfen, als ich Protokolle überprüfen, indem Heroku Protokolle --tail Es sagt
ModuleNotFoundError:No module named TodoApp
Es gibt keine Fehlerprotokolle für den Befehl prompt. Ich kann keine Möglichkeit finden zu überprüfen, was falsch läuft.
Dies ist in meinem procfile
web: gunicorn TodoApp:app
Das in meinem requirements.txt ist
asn1crypto==0.22.0
certifi==2017.4.17
cffi==1.10.0
chardet==3.0.4
click==6.7
cryptography==1.9
enum34==1.1.6
Flask==0.12.2
Flask-SQLAlchemy==2.2
Flask-WTF==0.14.2
gunicorn==19.7.1
idna==2.5
ipaddress==1.0.18
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
psycopg2==2.7.1
pycparser==2.17
PyJWT==1.5.0
pyOpenSSL==17.0.0
pytz==2017.2
requests==2.18.1
six==1.10.0
SQLAlchemy==1.1.10
twilio==6.4.1
urllib3==1.21.1
Werkzeug==0.12.2
WTForms==2.1
Das ist mein todo.py Datei
from flask import Flask, render_template , Response
from flask import request , jsonify
from models import db ,db1, User
from flask_sqlalchemy import SQLAlchemy
from message import client
import json
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =
'postgresql://postgres:[email protected]@localhost/learningflask'
db.init_app(app)
@app.route("/")
def index():
return render_template("index.html",User=User.query.all())
@app.route("/getdata", methods=['GET'])
def get_User():
myuser=User.query.all()
if myuser =="":
return 404
return Response(json.dumps({'taskname':[user.taskname for user in
myuser]}), mimetype='application/json')
@app.route('/', methods=['POST'])
def my_form_post():
text=request.form['text']
if text !="":
newuser = User(text)
db.session.add(newuser)
db.session.commit()
message = client.messages.create(
to="", from_="" , body ="A task has
been added to your todo list : "+ text)
print(message.sid)
return render_template("index.html",User=User.query.all())
else:
newuser = request.form.getlist('removeId')
if newuser:
for n in newuser:
User.query.filter_by(uid=n).delete()
db.session.commit()
return render_template("index.html",User=User.query.all())
else:
edituser = request.form.getlist('editId')
if edituser:
updatedText=request.form['updatedText']
for e in edituser:
User.query.filter_by(uid=e).update(dict(taskname=updatedText))
db.session.commit()
return
render_template("index.html",User=User.query.all())
if __name__ == "__main__":
app.run(debug=True)
db.create_all()
Und was ist der Code, den Sie bereitstellen? Das Procfile? Bitte geben Sie ein [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) an. –
@LuisOrduz Ich überprüfte Logs korrekt und es scheint, dass Heroku nicht versteht, was TodoApp ist, was ich in Procfile deklariert habe. – Prasanna
Können Sie die Ordnerstruktur einschließen? Wenn sich die 'todo.py'-Datei im obersten Ordner befindet, versuchen Sie 'web: gunicorn todo: app' in Ihrem Procfile –