0

在阅读了 Django Project 关于创建名为 polls 的投票应用程序的教程后,我在同一个虚拟环境中以另一个名称开始了我自己的项目。现在,我在索引视图下的新应用程序中所做的仍然只显示在http://127.0.0.1:8000/polls/应该在http://127.0.0.1:8000/mynewproject/

我需要帮助来纠正这个问题,或者在一个虚拟环境中,我可以在一个 django 项目上工作是事实吗?作为第二个问题,我应该在不同的虚拟环境中设置每个项目吗?

4

1 回答 1

0

第一个答案:

首先我想提一下这两件事

  1. 虚拟环境中有多少项目,每个项目都可以由不同的不同manage.py.
  2. 如果您这样做,每个项目都在不同的地址上运行,但单个应用程序不会在不同的地址上运行(除非您手动执行)。

正如你在这里提到的,你已经在同一个项目中创建了另一个应用程序,就像这样

Project
-- manage.py
-- Project
-- -- settings.py
-- -- urls.py <<--- Main url pattern file for whole project
-- -- wsgi.py
-- App1
-- -- views.py
-- -- models.py
-- -- urls.py <<-- Another specific urls pattern file for App1 (optional)
-- -- others
-- App2
-- -- views.py
-- -- models.py
-- -- urls.py <<-- Another specific urls pattern file for App2 (optional)
-- -- others

因此,如果您为每个特定的应用程序注册 urlpatterns,例如

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^home/$',views.home, name = "app_home"),
]

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^home/$',views.home, name = "app_home"),
]

那么你必须像这样包含这两个urls.py文件projects main urls.py

from django.conf.urls import url, include

urlpatterns = [
    url(r'^app1/', include('app1.urls')),
    url(r'^app2/', include('app2.urls')),
]

或者如果你don't wanna go like this可以both url patterns在 main中注册urls.py

from django.conf.urls import url,包括 from django.contrib import admin

urlpatterns = [
    url(r'^app1/home', App1.views.home),
    url(r'^app2/home', App2.views.home),
]

所以,就是这样,你只需要处理urls.py文件。

第二个答案:您可以在单个虚拟环境中创建多个项目。但是像包和它们的版本这样的配置对所有人都是一样的。如果您在那里进行更改(通过升级、降级、安装或卸载),那么它将影响该虚拟环境中的所有项目。

于 2016-04-21T20:44:25.040 回答