2017-03-07 6 views
0

私の__init__ファイルからクラスをインポートしたいと思います。しかし、私はそれをインポートに失敗しています。これは私のディレクトリ構造Flaskの__init__からのインポート

/fitBody_app 
    /fitBody 
    /static 
    /templates 
    __init__.py 
    models.py 
    views.py 

run.py 

であるこれらは私の__init__.pyファイルのすべて輸入している:これらは私のviews.pyファイル内のすべての私の輸入品です

import os 

from flask import Flask 
from flask_admin import Admin 
from flask_admin.contrib.sqla import ModelView 
from flask_sqlalchemy import SQLAlchemy 
from wtforms import fields, widgets 

from fitBody.views import my_app 
from flask_bootstrap import Bootstrap 

app = Flask(__name__) 
db = SQLAlchemy(app) 

import bcrypt 
from flask import flash, redirect, render_template, request, session, Blueprint, url_for 
from fitBody.models import RegistrationForm 
from fitBody.models import cursor, conn 
from fitBody import db 

my_app = Blueprint('fitBody', __name__) 

<......> 

私がしようファイルを実行すると、これは私のトレースバックです。

Traceback (most recent call last): 
    File "/Users/kai/github-projects/fitBody_app/run.py", line 1, in <module> 
    from fitBody import app 
    File "/Users/kai/github-projects/fitBody_app/fitBody/__init__.py", line 9, in <module> 
    from fitBody.views import fitBody 
    File "/Users/kai/github-projects/fitBody_app/fitBody/views.py", line 8, in <module> 
    from fitBody import db 
ImportError: cannot import name 'db' 

私は同じフォルダ内からインポートするので、このようなインポートを行うことが可能であると思っていました。

dbオブジェクトを__init__.pyファイルからインポートするにはどうすればよいですか?

+0

あなたは 'fitbody'と同様に' fitbody'を持っているようです。それらの作品の1つと、他の作品はそうではありません。どちらかが入力ミスをしているか、正しいファイル構造を表示していません –

+0

'fitbody.views'ではなく' fitBody.views'が表示されます。 – wgwz

+0

'from fitBody import app'は、うまく機能しているようです。 –

答えて

2

から両方__init__.pyviews.pyインポートを持っています。または、より良い設計のために青写真を別のファイルに移動し、そのファイルに青写真を保管するだけです。

#__init__.py 
app = Flask(__name__) 
db = SQLAlchemy(app) 

from fitBody.views import my_app 
1

__init__.pyファイルからのインポートとは関係ありません。 views.py__init__.pyファイルからインポートされ、__init__.pyファイルはインポートサイクルであるviews.pyからインポートされています。私はあなたのmodels.pyがどのように見えるかわからないが、どのようにあなたについてmodels.pydbを初期化し、import文は、DB defination後に来るべきdb views.py使用するのでmodels.py

関連する問題