【发布时间】:2020-05-05 16:04:59
【问题描述】:
我想从__init__.py 导入db 到model.py 文件,但我无法导入,出现错误提示:
Traceback (most recent call last):
File "/home/rohit/Desktop/flask_app/run.py", line 1, in <module>
from bytewar import create_app
File "/home/rohit/Desktop/flask_app/bytewar/__init__.py", line 5, in <module>
from bytewar.user.views import user_blueprint
File "/home/rohit/Desktop/flask_app/bytewar/user/views.py", line 9, in <module>
from bytewar.model import Login_form, Login, Post, Contacts, Signup_form, Contacts
File "/home/rohit/Desktop/flask_app/bytewar/model.py", line 5, in <module>
from bytewar import db
ImportError: cannot import name 'db'
我的应用程序树:
___ run.py # <<------- ImportError in this file.
___ bytewar/
|__ __init__.py
|__ config.py
|__ model.py
|__ user/
| |__ __init__.py
| |__ views.py
| |__ static/
| | |__ img/
| | |__ ....
| |__ template/
| |__ index.html
| |__ about.html
|
|__ admin/
|__ __init__.py
|__ views.py
|__ template/
|__ index.html
|__ about.html
__init__.py:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_bootstrap import Bootstrap
from flask_login import LoginManager
from bytewar.user.views import user_blueprint
from bytewar.admin.views import admin_blueprint
db = SQLAlchemy()
def create_app():
app = Flask('bytewar')
app = Flask(__name__.split('.')[0])
app.config.from_pyfile('config.py')
app.config['DEBUG'] = True
app.register_blueprint(user_blueprint)
app.register_blueprint(admin_blueprint)
login_manager = LoginManager()
bootstrap = Bootstrap(app)
db.init_app(app)
login_manager.init_app(app)
login_manager.session_protection = 'strong'
return app
在这里你可以看到我已经db.init_app(app),但我仍然收到ImportError。
在bytewar.user/ 和bytewar.admin/(在views.py 旁边)中添加__init__.py 文件后,run.py 出现错误:
Traceback (most recent call last):
File "/home/rohit/Desktop/flask_app/run.py", line 1, in <module>
from bytewar import app
File "/home/rohit/Desktop/flask_app/bytewar/__init__.py", line 5, in <module>
from bytewar.user.views import user_blueprint
File "/home/rohit/Desktop/flask_app/bytewar/user/views.py", line 9, in <module>
from bytewar.model import Login_form, Login, Post, Contacts, Signup_form, Contacts
File "/home/rohit/Desktop/flask_app/bytewar/model.py", line 5, in <module>
from run import db
File "/home/rohit/Desktop/flask_app/run.py", line 1, in <module>
from bytewar import app
ImportError: cannot import name 'app'
run.py:
from bytewar import app
if __name__ == "__main__":
app.run()
我的bytewar/user/__init__.py 和bytewar/admin/__int__.py:
from flask import Blueprint
user_blueprint = Blueprint(
'user', __name__,
static_folder='static',
template_folder='template',
)
为什么会这样?
【问题讨论】:
标签: python python-3.x flask import importerror