2017-05-19 1 views
-5

Ich habe begonnen, Django zu lernen, ich bin mir nicht sicher, was die () Funktion bedeutet.Wie kann ich in Django die Funktion include() verstehen?

Hier ist mysite/urls.py. - Projekt

from django.conf.urls import include, url 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^polls/', include('polls.urls')), 
    url(r'^admin/', admin.site.urls), 
] 

Hier polls/urls.py. - App im Projekt

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

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
] 

Von django Dokument, include() Funktion wurde wie folgt beschrieben.

Wenn Django Begegnungen umfassen(), zerhackt es aus irgendeinem Teil der URL zu diesem Punkt abgestimmt und sendet die verbleibenden Zeichenfolge den mitgelieferten URLconf zur weiteren Verarbeitung.

Ich bin nicht sicher, was ist dieser Punkt, was String verbleibenden.

Bei dem obigen Beispiel, was String Remining ist, was url Strings, die abgehackt wurde?

Antwort

5

Zum Beispiel dieser URL übergeben werden

polls/5/results 

die uRL Regel

url(r'^polls/', include('polls.urls')), 

hackt der polls/ Teil der URL und die verbleibende Zeichenfolge nach polls/ senden, was immer es auch sein mag, zum Beispiel (siehe here mehr):

5/results/ 

zu Urls aus der urls.py des Umfrage-App, wo zu einer Ansicht abgebildet wird, basierend auf Die in dieser Datei definierten URL-Regeln

+0

Hallo, Doru. danke für Ihre Hilfe. Würdest du mir sagen, was ** name ** bedeutet? - * url (r '^ $', ansichten.index, ** name ** = 'index') * –

+1

@YuiryKozlenko für den einfachen Zugriff auf eine URL können Sie einen lesbaren Namen eingeben: 'name =" easy-human- labelable-name-for-this-url "' und danach kann man auf den Namen zugreifen, zB in der Vorlage '{% url" easy-human-lesbar-name-for-this-url "%}' – doru

1

Können sagen, gibt es einen weiteren Eintrag in Umfragen/urls.py wie url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive), hier Jahr wird die Abfrage-String-Parameter. so wird Ihre URL aussieht

/Umfragen/articles/2007 so in diesem Fall /Umfragen/articles/ werden abgestimmt und 2007 year_archive Methode

1

Wann immer es eine URL mit /polls gibt, dann wird es alle URLs von Umfragen App enthalten.

Beispiel:

Wenn Sie /polls/hey

Geben Sie dann, sobald er sieht /polls es an die Urnen Urls Datei gehen und später wird es die Suche nach:

hey/ passende dort.

1

In Ihrem Beispiel gibt es keine gehackten String ist, kommt die URL zurück, wie einfach polls/, aber wenn Sie eine andere URL wie '^new$' haben dann diese URL gehackt wird, fusionierte mit polls/ und es kehrt polls/new, hoffen, dass dies Sinn macht.

Verwandte Themen