我需要帮助从我的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文件导入函数的最佳做法是什么?
感谢您的回答。
答案 0 :(得分:1)
首先,确保你的apps目录中有一个__init__.py
文件,即使是空的,这也会告诉python app是一个模块,你可以从中导入。
在form_user.py中,您可以进行相对导入
from utils import select_role