python从父目录导入'__初始值';文件
我正在开发具有以下结构的flask应用程序:python从父目录导入'__初始值';文件,python,flask,import,Python,Flask,Import,我正在开发具有以下结构的flask应用程序: . ├── app │ ├── __init__.py │ ├── forms │ │ └── login.py │ ├── models │ │ ├── __init__.py │ │ └── user.py │ ├── templates │ │ ├── base.html │ │ ├── home.html │ │ └── login.html │ └── views │
.
├── app
│ ├── __init__.py
│ ├── forms
│ │ └── login.py
│ ├── models
│ │ ├── __init__.py
│ │ └── user.py
│ ├── templates
│ │ ├── base.html
│ │ ├── home.html
│ │ └── login.html
│ └── views
│ ├── __init__.py
│ └── login.py
在app/\uuuuu init\uuuuu.py
中,我正在创建LoginManager扩展的一个实例:
from flask import Flask
from config import app_config
from flask_login import LoginManager
def create_app(config_mode='development'):
"""Wrapping app creation in factory according to specified config."""
app = Flask(__name__, template_folder='templates')
...
# register login manager extension
login = LoginManager(app)
return app
我现在需要在app/models/user.py
中导入login
,以便提供user\u loader
实现:
from flask_sqlalchemy import SQLAlchemy
from flask_login import UserMixin
from . import db
from .. import login
class User(UserMixin, db.Model):
"""User model."""
...
@login.user_loader
def load_user(id):
return User.query.get(int(id))
但是,任何尝试都会因以下情况而失败:
from .. import login
ImportError: cannot import name 'login'
我的问题是:有没有办法从父目录\uuuu init\uuuuu.py
文件导入,或者我在这里犯了其他错误
我尝试了大量不同的绝对进口和相对进口组合,但都得到了相同的结果,并在SO和谷歌上进行了广泛搜索,但没有找到我问题的直接答案。我希望将user.py
模块保留为当前目录,因为目录结构良好且组织简洁
提前谢谢
编辑:澄清导入位置您应该使用
create\u app
函数创建LoginManager
的实例。然后您可以使用init\u app
方法将其配置为登录
from flask import Flask
from flask-login import LoginManager
login_manager = LoginManager()
def create_app(config):
app = Flask(__name__)
login_manager.init_app(app)
return app
。
上升而不是下降。使用app.models导入登录名中的
我的不好,我的描述措词不好。我需要从应用程序目录而不是模型目录导入。先生,你是一个活生生的保护程序。它就像一个符咒。谢谢