2017-10-14 10 views
-1

J'ai commencé par créer mon application Flask l'ancienne école: j'avais un paquet Python où je défini une variable appelée application, initialisés, puis importé mon code:Confus par le comportement de Flask

# -*- coding: utf-8 -*- 
import os 

from flask import Flask 

app = Flask(__name__) 
app.config.from_object('config') 
app.secret_key = os.urandom(12) 

from dashboard import forms, models, views 

Tout en ajoutant l'unité des tests à mon projet, je trouve que je devrais utiliser les usines d'applications, donc je créé une usine:

# -*- coding: utf-8 -*- 
import os 

def create_app() 
    from flask import Flask 

    app = Flask(__name__) 
    app.config.from_object('config') 
    app.secret_key = os.urandom(12) 

app = create_app() 
from dashboard import forms, models, views 

Sauf que, avec l'usine mon point de vue ne sont pas chargées. Toute route que j'appelle renvoie un 404. Sans l'usine tout fonctionne bien.

Comment puis-je diagnostiquer ce qui se passe?

+0

D'abord, en fournissant une image précise de votre code. La valeur de retour manquante est-elle le problème? Difficile à dire, parce que le deux-points manquant après 'def create_app()' signifie que ce n'est pas ce qui tourne vraiment ... aussi, utilisez Python 3. – Ryan

Répondre

2

Votre create_app REMBOURSER variables app:

def create_app() 
    from flask import Flask 

    app = Flask(__name__) 
    app.config.from_object('config') 
    app.secret_key = os.urandom(12) 

    return app 

Parce que le retour par défaut est None