问题描述
我在Django上有一个现有项目(将其命名为main),并且其中有几个应用程序。在django中还有一个单独的项目,其中还有一个应用程序(我们将其称为第二个)。这是项目“ second”的通用文件结构:
my_second_project
│ manage.py
│ models.py
│ my_models.py
│ my_views.py
│
├───myapp
│ │ admin.py
│ │ apps.py
│ │ Funcs.py
│ │ models.py
│ │ tests.py
│ │ urls.py <-- from here urls import to project urls file
│ │ views.py
│ │ __init__.py
│ │
│ ├───migrations
│ │ └───...│
├───my_second_project
│ │ asgi.py
│ │ settings.py
│ │ urls.py <-- HERE all urls i need
│ │ wsgi.py
│ │ __init__.py
├───templates
│ ...
│
└───__pycache__
models.cpython-37.pyc
这是项目“ main”的通用文件结构:
main_project
├───app ...
│ ├───...
├───main_project
│ ├───media
│ │ └───user_uploads
│ ├───settings
│ │ └───base.py
│ └───urls.py
├───app ...
│ ├───...
├───app ...
│ ├───...
└───static
├...
我需要将“第二个”项目集成到现有的(主项目)中,理想情况下,无需对第二个项目进行任何更改。我尝试以集成应用程序的方式(通过url包括)进行操作,但是似乎它不适用于项目,因为django编写了“找不到myapp模块”。
url('data-classifier/',include('my_second_project.my_second_project.urls'))
是否可以在不更改“第二”项目的情况下将“第二”项目添加到我的“主”项目中?
解决方法
部署这些项目时,它们将不会存储在附近的目录中。理想情况下,它们根本不在同一台服务器上。
相反,如果您负担不起将所需应用程序的内容从第二个项目复制(或移动)到主项目,并且不想使用nginx重定向,请在主项目中并从{ {1}}重定向到秒的端点。
main_project.my_second_project.urls.py
urls.py
如果您在本地运行8000,在本地运行8001,则将'http:// localhost:8001 / endpoint /'设置为from django.urls import path
from django.views.generic import RedirectView
app_name = 'my_second_project'
urlpatterns = [
path('endpoint/',RedirectView.as_view(url='<my_second_project_url>'),name='endpoint')
]
。