如何将 python 函数从另一个文件导入 django 视图

Posted

技术标签:

【中文标题】如何将 python 函数从另一个文件导入 django 视图【英文标题】:How to import python function from another file into django views 【发布时间】:2019-05-23 19:44:50 【问题描述】:

我正在尝试从位于views.py 的django 项目目录之外的python 文件中调用一个函数。我尝试导入 python 文件,但运行 django 服务器显示“没有名为 xxxx 的模块”。

树结构如下。

├── auto_flash │   ├── __init__.py │   └── test.py └── 萤火虫 ├── 检测报告 │   ├── admin.py │   ├── admin.pyc │   ├── __init__.py │   ├── __init__.pyc │   ├── 迁移 │   │   ├── __init__.py │   │   └── __init__.pyc │   ├── models.py │   ├── models.pyc │   ├── __pycache__ │   │   └── __init__.cpython-35.pyc │   ├── 模板 │   │   └── detection_reports │   │   └── home.html │   ├── tests.py │   ├── views.py │   └── views.pyc ├── 萤火虫 │   ├── __init__.py │   ├── __init__.pyc │   ├── __pycache__ │   │   ├── __init__.cpython-35.pyc │   │   └── settings.cpython-35.pyc │   ├── settings.py │   ├── settings.pyc │   ├── ui_cgi.py │   ├── urls.py │   ├── urls.pyc │   ├── wsgi.py │   └── wsgi.pyc ├── __init__.py └── 管理.py

这里的项目名称是“fireflash”,并且该项目中有一个名为“detection_reports”的应用程序。还有另一个名为“auto_flash”的目录与“fireflash”具有相同的位置。我想要做的是从 detection_reports.views 中的“auto_flash”导入 test.py 文件并从视图中调用一个函数。像这样“从 auto_flash 导入测试”导入会引发错误“没有名为 auto_flash 的模块”。

【问题讨论】:

你能提供一个包含相关文件(及其目录)的“文件树”吗? How import a function from another view with Django?的可能重复 here发布了一个类似的问题 我已经尝试了上面建议的解决方案,但都没有奏效。任何人都有干净/适当的解决方案。? 【参考方案1】:

我已经尝试了上述所有解决方案,但更简洁的解决方案是将auto_flash 的路径附加到syspath 并解决了问题。感谢大家的努力。

【讨论】:

【参考方案2】:auto_flash 移动到fireflashdetection_reports 添加from auto_flash import test.py

【讨论】:

以上是关于如何将 python 函数从另一个文件导入 django 视图的主要内容,如果未能解决你的问题,请参考以下文章

从另一个文件中的类导入函数?

我无法从另一个文件夹导入函数,它导致导入错误(ImportError:无法导入名称'token_required')

Jest - 模拟函数,从另一个文件导入

从另一个文件导入变量?

我想从另一个 python 文件中导入一个变量(Django)

从另一个文件导入变量?