私は内部のコントローラフォルダを存在し、メインコントローラに私のメインのappフォルダ内に存在のinitの.pyファイルからsocketioをインポートしたいのですが、私はそれを行うことができない、エラーが言うように表示されます。私は、フラスコ内の__init__からインポートすることはできませんか?
はImportError :ここ
socketio名前をインポートすることはできません私のアプリの木である:
├── add_permissions.txt
├── db_init.py
├── develop
│ ├── config.py
│ ├── controllers
│ │ ├── abonent.py
│ │ ├── events.py
│ │ ├── __init__.py
│ │ ├── panel.py
│ │ └── users.py
│ ├── extentions.py
│ ├── forms.py
│ ├── forms.pyc
│ ├── __init__.py
│ ├── models.py
│ ├── plugins.py
│ ├── requests.py
│ ├── send_sms.py
├── init.sh
├── manage.py
私はアプリを作成して、私の__init__.pyの内容:
from flask import Flask
from develop.controllers.abonent import abonent_route
from develop.controllers.panel import panel_route
from flask_principal import identity_loaded, UserNeed, RoleNeed
from flask_login import current_user
from develop.extentions import (
login_manager,
toolbar,
assets_env,
cache,
moment,
principal
)
from develop.models import (
db,
User
)
from flask_socketio import SocketIO
socketio = SocketIO()
def create_app(config_object):
app = Flask(__name__)
app.config.from_object(config_object)
######## Register Database ########
db.init_app(app)
# csrf.init_app(app)
######## Register Extentions ########
login_manager.init_app(app)
toolbar.init_app(app)
assets_env.init_app(app)
moment.init_app(app)
principal.init_app(app)
socketio.init_app(app)
######## Register Routes ########
app.register_blueprint(abonent_route)
app.register_blueprint(panel_route)
# Identify the users roles
@identity_loaded.connect_via(app)
def on_identity_loaded(sender, identity):
# Set the identity user object
identity.user = current_user
# Add the UserNeed to the identity
if hasattr(current_user, 'id'):
identity.provides.add(UserNeed(current_user.id))
# Add each role to the identity
if hasattr(current_user, 'roles'):
for role in current_user.roles:
identity.provides.add(RoleNeed(role.name))
return app
私がアプリでsocketioを起動したのを見ると、エラーは表示されません。
panel.py内部で私はエラーが私がfrom develop import socketio
またはfrom .. import socketio
を使用ゆくえ示し開発からsocketioを輸入している場合。
は、問題がどこにあるすべてのボディは、私が何をすべき?私に語ってもらえますか?
あなたは今、それは私が右create_app機能上panel_routeをコピーして、アプリがおかげで、本当に感謝、エラーなしで開始働き、正しいです;)。 – reznov11
あなたは大歓迎です – jerliol