2014-08-28 6 views
2

Le problème est que IntelliJ Studio 13 ne veut pas reconnaître une importation. J'ai mon code comme ceciIntelliJ ne veut pas importer

un dossier nommé "app". A l'intérieur

__init__.py

from flask import Flask 

app = Flask(__name__) 

from app import views, models 

views.py

from flask import render_template, request 
from models import * 
from app import * 

@app.route('/') 
@app.route('/index') 
def index(): 
    return "123" 

maintenant à la views.py "de l'application import *" est grisée utilisé, et il y a avertissement rouge sous @app avec "app référence non résolue"

Quelqu'un peut-il m'expliquer pourquoi est-ce ng et quelle est la solution pour cela. Merci d'avance

+2

Puisque vous importez tout à partir de modèles et d'applications, pourquoi ne pas simplement utiliser 'import models, app'? – RevanProdigalKnight

+1

Parfois, je rencontre le même problème, je ne sais pas pourquoi, mais je redémarre généralement l'EDI ou attendre que l'IDE termine la résolution du paquet. – PageNotFound

+0

@RevanProdigalKnight si j'écris l'application d'importation cela fonctionne. Merci. si vous voulez en faire une réponse. – OWADVL

Répondre

2

from app import * importera le contenu du package dans l'espace de noms actuel. Ainsi, la fonction route du package app sera importée dans l'espace de noms actuel. Appelable comme route().

import app importera le paquet app dans l'espace de nommage comme un objet nommé application. Callable comme app.route()

Généralement l'utilisation de from app import * est désapprouvée à moins que vous soyez certain que c'est ce que vous voulez faire. from app import route serait préféré.

+0

Vous avez raison. mais @RevanProdigalKnight vous a battu avec 8 minutes: D – OWADVL

+1

@OWADVL Oh, acceptez simplement la réponse d'Isaac. Cela ne me dérange pas de ne pas avoir les points. – RevanProdigalKnight