如何将 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
移动到fireflash
在detection_reports
添加from auto_flash import test.py
【讨论】:
以上是关于如何将 python 函数从另一个文件导入 django 视图的主要内容,如果未能解决你的问题,请参考以下文章
我无法从另一个文件夹导入函数,它导致导入错误(ImportError:无法导入名称'token_required')