Flask大型应用程序 - 从utils文件导入函数

时间:2018-01-09 19:00:03

标签: python flask

我需要帮助从我的Flask应用程序中的utils文件导入功能。

# Structure of my app: 
**(updated)**

apps
-[admin]
--forms_admin.py
--views_admin.py
--models_admin.py
-[user]
--forms_user.py
--views_user.py
--models_user.py
-[dashboard]
-__init__.py (empty)
...
...
-utils.py

utils文件

# utils.py

def select_role()
    ...
    return roles_list

def required_roles(*roles):
    def decorator(f):
        @wraps(f)
        def decorated_function(*args, **kwargs):
            if not str(current_user.role_id) in roles:
                abort(403)
            return f(*args, **kwargs)
        return decorated_function
    return decorator

我需要来自def select_role()的导入功能forms_user.py

但是当我尝试时:

# forms_user.py

from apps.utils import select_role

在终端shell中出现错误:ImportError: cannot import name 'select_role'

有谁知道我做错了什么?

utils文件导入函数的最佳做法是什么?

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

首先,确保你的apps目录中有一个__init__.py文件,即使是空的,这也会告诉python app是一个模块,你可以从中导入。

在form_user.py中,您可以进行相对导入

from utils import select_role