2016-04-21 4 views
0

Nachdem ich das Django-Projekt-Tutorial zum Erstellen einer Polling-App namens Umfragen durchgelaufen bin, habe ich mein eigenes Projekt in derselben virtuellen Umgebung unter einem anderen Namen gestartet. Nun, was ich in meiner neuen App unter der Indexansicht gemacht habe, wird immer noch nur unter http://127.0.0.1:8000/polls/ angezeigt, wo es bei http://127.0.0.1:8000/mynewproject/Warum bringt der Django-Entwicklungsserver meine App unter die Adresse einer anderen App?

Ich brauche Hilfe bei der Korrektur, oder ist es eine Tatsache, dass auf einer virtuellen Umgebung, Ich kann an einem Django-Projekt arbeiten? Und als zweite Frage, sollte ich jedes Projekt auf verschiedene virtuelle Umgebungen ausrichten?

+0

ja, haben separate virtuelle envs für jedes Projekt. – reptilicus

Antwort

0

Erste Antwort:

Zuerst habe ich wan diese beiden Dinge zu erwähnen

  1. Es macht die Sache nicht, wie viele Projekte gibt es in Ihrer virtuellen Umgebung jeweils durch verschiedene unterschiedliche manage.py behandelt werden.
  2. Und jedes Projekt läuft auf verschiedenen Adressen, wenn Sie aber Single App wird nicht auf verschiedenen Adressen (bis Sie es manuell tun).

Wie Sie erwähnt hier Sie eine andere App innerhalb selben Projekt wie dieses

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 

So erstellt hatte, wenn Sie urlpatterns für jede bestimmte Anwendungen wie

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

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

und

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

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

dann müssen Sie beide 01 einschließenDateien in projects main urls.py wie diese

from django.conf.urls import url, include 

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

oder wenn Sie don't wanna go like this Sie both url patterns in Haupt urls.py

von django.conf.urls Import URL registrieren können, umfassen von django.contrib Import Admin

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

Also, das ist es, Sie müssen nur mit urls.py Dateien umgehen.

Zweite Antwort: Sie können mehrere Projekte in einer einzigen virtuellen Umgebung erstellen. Aber Konfigurationen wie Pakete und ihre Versionen bleiben für alle gleich. Wenn Sie dort Änderungen vornehmen (durch Upgrade, Degradierung, Installation oder Deinstallation), wirkt sich dies auf alle Projekte in diesem Virtual Env aus.