【问题标题】:Django add urls from project to another projectDjango将项目的url添加到另一个项目
【发布时间】:2020-10-06 20:03:40
【问题描述】:

我在 Django 上有一个现有项目(我们将其命名为 main),其中有几个应用程序。有一个单独的项目,也在 django 中,里面有一个应用程序(我们称之为第二个)。这是项目“第二”的通用文件结构:

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'))

有没有办法在我的“主”项目中添加“第二”项目而不更改“第二”项目?

【问题讨论】:

    标签: python django django-project-architect


    【解决方案1】:

    当您部署这些项目时,它们不会存储在附近的目录中。理想情况下,它们根本不会在同一台服务器上。

    相反,如果您无法将所需应用程序的内容从第二个项目复制(或移动)到主项目,并且您不想使用 nginx 重定向,请在主项目中并从 @ 创建一个小应用程序987654321@ 重定向到第二个端点。

    main_project.my_second_project.urls.py

    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')
    ]
    

    如果你在 8000 本地运行 main,然后在 8001 运行第二个,那么你将把 'http://localhost:8001/endpoint/' 作为url 放在那里。

    【讨论】:

    • 谢谢。但它不适合我。我会将我的第二个项目重写为应用程序
    猜你喜欢
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    相关资源
    最近更新 更多