2017-07-01 3 views
0

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

Application 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.

sagen

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() 

Here is the folder structure

+0

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. –

+0

@LuisOrduz Ich überprüfte Logs korrekt und es scheint, dass Heroku nicht versteht, was TodoApp ist, was ich in Procfile deklariert habe. – Prasanna

+0

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 –

Antwort

0

Das ist Fehler könnte b e in dieser Zeile:

web: gunicorn TodoApp:app

sollten Sie die Dateinamen vor den : verwenden und dann der Flasche Objekt, das Sie erstellt haben.

web: gunicorn Todo:app 

sollte dies funktionieren. toto:app ist die <filename>:<appname>.

Verwandte Themen