2013-11-03 23 views
6

Próbuję wdrożyć aplikację Flask z Heroku. To proste API. Działa świetnie lokalnie z brygadzistą, ale pojawia się błąd (log jest poniżej), gdy zaczyna się na heroku.Aplikacja Flask nie uruchamia się na serwerze heroku

To jest mój kod aplikacji (wiem, że to jednak patrząc w jednym bloku, ale mam problemy, aby podzielić go na pliki):

import flask 
import flask.ext.sqlalchemy 
import flask.ext.restless 

app = flask.Flask(__name__) 
app.config['DEBUG'] = True 
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:[email protected]/db' 
db = flask.ext.sqlalchemy.SQLAlchemy(app) 


from sqlalchemy import Column, Integer, String, ForeignKey,\ 
    Date, DateTime, Boolean, Float 


class fruits(db.Model): 
    __tablename__ = 'fruits' 
    id = Column(Integer, primary_key=True) 
    name = Column(String(50),nullable=False) 
    calories = Column(Integer, nullable=False) 
    amount = Column(Integer, nullable=False) 
    unit = Column(String(10),nullable=False) 
    url = Column(String(100),nullable=True) 


@app.route('/') 
def hello_world(): 
    return 'Hello World!' 


# Create the database tables. 
db.create_all() 

# Create the Flask-Restless API manager. 
manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db=db) 

# Create API endpoints, which will be available at /api/<tablename> by 
# default. Allowed HTTP methods can be specified as well. 
manager.create_api(fruits, methods=['GET', 'POST', 'DELETE']) 
manager.create_api(tmp, methods=['GET', 'POST', 'DELETE']) 


# start the flask loop 

if __name__ == '__main__': 
     import os 
     port = int(os.environ.get('PORT', 33507)) 
     app.run(host='0.0.0.0', port=port) 

to Heroku log:

at=error code=H14 desc="No web processes running" method=GET path=/ host=blooming-taiga-1210.herokuapp.com fwd="188.33.19.82" dyno= connect= service= status=503 bytes= 

i moja Procfile:

web: python __init__.py 
+0

Czy korzystasz z zewnętrznego serwera mysql? – zero323

Odpowiedz

18

Czy rzeczywiście działa hamownia nazwie web? Wygląda na to, może zapomnieli scale your web dyno:

Dodaj wpis takiego w swojej Procfile:

heroku ps:scale web=1 

Można użyć

heroku ps 

aby potwierdzić, że web hamownia jest uruchomiony.

+1

Działa, gdy robię to w konsoli, nie w Procfile. Dzięki! –

+0

Nie mogę przegłosować. Do mniejszej reputacji;) –

+0

Święte piekło, nie mogę uwierzyć, że nie ma ich w dokumentach na temat wdrażania. – Chris

Powiązane problemy