python - 项目外的 Django manage.py
问题描述
有没有一种manage.py
无需将所有导入更改为 Django 项目目录的方法from backend.<app>.<module> import ...
?
├── project
│ ├── api
│ ├── frontend
│ ├── project
│ ├── manage.py
│ ├── Pipfile
│ ├── Pipfile.lock
├── project
│ ├── backend
│ │ ├── api
│ │ ├── project
│ │ ├── __init__.py
│ ├── frontend
│ ├── manage.py
│ ├── Pipfile
│ ├── Pipfile.lock
正如预期的那样,将 Django 项目移动到后端目录并manage.py
使用下面的行进行修改后,ModuleNotFoundError
尝试运行服务器时会出现一个错误。
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.project.settings')
解决方案
要启用import api
而不是import backend.api
,您需要将父目录添加backend
到 python 路径。
import sys
sys.path.append('/path/to/project/backend')
manage.py
如果是 in ,您也可以使用相对路径/path/to/project/
:
import sys
sys.path.append('backend')
然后你应该使用
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
进行更改后,请确保在api
任何地方导入。当在不同的地方导入相同的模块时,混合可能会导致import api
问题。如果您要停止导入,import backend.api
您可能可以删除.backend/__init__.py
backend
推荐阅读
- javascript - Chrome 扩展:使用特定规则重定向当前 url
- sql - SQL 合并归档重复数据
- dart - Dart const 类参数检查
- reactjs - 如何使用 redux 将数据传递给 React 组件?
- python - Python Discord bot 删除用户消息
- ios - 创建 UIView 时,无法识别的选择器在 didFinishLaunchingWithOptions 中发送 self.window 消息
- javascript - 如何以及在哪里为自定义音频播放器定义 JavaScript 函数?
- reactjs - 如果值为布尔值,React 数据是否可以在重新加载时保持不变?
- python - Pandas GroupBy 连接字符串多列
- node.js - 全局 `ng version` 显示错误而不是版本号