2012-10-16 10 views
15

के लिए यूआरएल पैटर्न कैसे लिखते हैं मैं django के लिए नया हूं, और उन चीजों में से एक जो मैं अभी भी सीख रहा हूं url_patterns है। मैंने मूल पथ (http://www.mysite.com) को संभालने के लिए एक पृष्ठ ऐप सेट किया है साथ ही साथ कुछ स्थिर पृष्ठ जैसे पेज के बारे में। मुझे पता चला कि रूट पथ के लिए यूआरएल पैटर्न कैसे स्थापित किया जाए, लेकिन मुझे साइट के बारे में "दृश्य" के पथ को '/ about' पथ पर निर्देशित करने के लिए साइट नहीं मिल सकती है।Django में, आप '/' और अन्य रूट-आधारित यूआरएल

यहाँ मेरी मुख्य urls.py है

from django.conf.urls import patterns, include, url 
from django.conf import settings 
urlpatterns = patterns('', 
    url(r'^polls/', include('polls.urls')), 
    url(r'^$', 'pages.views.root'), 
    url(r'^/', include('pages.urls')), 
) 
यहाँ

अपने पृष्ठों urls.py है

from django.conf.urls import patterns, include, url 
urlpatterns = patterns('pages.views', 
     url(r'^about', 'about'), 
) 

यहाँ मेरी पृष्ठों views.py है

# Create your views here. 
from django.shortcuts import render_to_response 
from django.template import RequestContext 
from django.http import HttpResponse, HttpResponseRedirect 
from django.core.urlresolvers import reverse 

def root(request): 
    return render_to_response('pages/root.html',context_instance=RequestContext(request)) 
def about(request): 
    return render_to_response('pages/about.html',context_instance=RequestContext(request)) 

अगर मैं बदल मुख्य urls.py फ़ाइल r'^a/', include('pages.urls') है तो पथ '/ a/about' लगभग कार्रवाई के लिए निर्देशित करता है .. इसलिए मुझे लगता है कि इसे एक समस्या होनी चाहिए जिस तरह से मैं इस फ़ाइल में यूआरएल पैटर्न लिख रहा हूँ। लेकिन, मैं यह नहीं समझ सकता कि इसे कैसे बदला जाए। क्या कोई मदद कर सकता है? अनुप्रयोग के लिए url.py

urlpatterns = patterns('', 
# Examples: 
url(r'^$', 'apps_name.views.home', name='home'), 

# Uncomment the admin/doc line below to enable admin documentation: 
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

# Uncomment the next line to enable the admin: 
url(r'^admin/', include(admin.site.urls)), 

(r'^about/', include('about.urls')), 
) 

और उसके बाद के बारे में

urlpatterns = patterns('', 
    url(r'^$', direct_to_template, {"template": "about/about.html"}, name="about"), 
) 

को ध्यान में रखें कि नियमित अभिव्यक्ति ऊपर से मूल्यांकन किया जाता है:

+0

लोग इस सवाल को बंद करने के मतदान करने के लिए, आप और अधिक रचनात्मक किया जा रहा है मन और मुझे पता है टिप्पणी की इन दिशानिर्देशों को बेहतर ढंग से पूरा करने के लिए कौन सा दिशानिर्देश पूरा नहीं किया जा रहा है, और/या मैं इस प्रश्न को कैसे संपादित कर सकता हूं? – jay

उत्तर

25

से पता चला कि समस्या क्या है। परियोजना स्तर पर उचित url_pattern है:

urlpatterns = patterns('', 
    url(r'^polls/', include('polls.urls')), 
    url(r'^$', 'pages.views.root'), 
    url(r'', include('pages.urls')), 
) 

जब इस जगह में है, '/ के बारे में' और अन्य साधारण पथ ठीक से प्रत्यक्ष।

सभी को धन्यवाद!

+0

मैं इसे छोड़ने वाले किसी और के लिए जोड़ना चाहता हूं: 'पेज' ओपी की परियोजना में एक एप्लीकेशन है, न कि Django- विशिष्ट वाक्यविन्यास। यह 'other_pages' या कुछ समान हो सकता था। –

5

इस परियोजना स्तर पर प्रयास करें, url.py के लिए नीचे, तो अगर पथ regexp फिट बैठता है तो यह प्रवेश करेगा। Regexp google के बारे में अधिक जानने के लिए या ज़ेड शॉ से regexps

1

ध्यान दें कि Django संस्करण 2.0 से URL पैटर्न django.urls.path() चेक उदाहरण यहाँ का उपयोग करने से बदल गया है: link

from django.urls import path 

from . import views 

urlpatterns = [ 
    # ex: /polls/ 
    path('', views.index, name='index'), 
    # ex: /polls/5/ 
    path('<int:question_id>/', views.detail, name='detail'), 
    # ex: /polls/5/results/ 
    path('<int:question_id>/results/', views.results, name='results'), 
    # ex: /polls/5/vote/ 
    path('<int:question_id>/vote/', views.vote, name='vote'), 
] 
संबंधित मुद्दे