मैं सीधे कैसे जांगो के urls.py में टेम्पलेट पर जाता हूं?


107

इसके बजाय कि मैं view.py पर जा रहा हूं, मैं चाहता हूं कि यह एक टेम्पलेट, robots.txt पर जाए।


5
दिया गया उत्तर सटीक है, हालाँकि, robots.txt जैसी किसी चीज़ के लिए, आप इसे वेबसर्वर स्तर पर भी रूट कर सकते हैं। यह आपके django ऐप तक भी नहीं पहुंचेगा। के लिए nginx: stackoverflow.com/a/3746344/781695 , के लिए apache: serverfault.com/a/213455/84120
— उपयोगकर्ता

जवाबों:


261

Django 2.0+

वर्ग आधारित सामान्य विचारों का उपयोग करें लेकिन django 2.0+ पैटर्न के साथ पंजीकरण करें।

from django.urls import path
from django.views.generic import TemplateView

urlpatterns = [
    path('foo/', TemplateView.as_view(template_name='foo.html'))
]

https://docs.djangoproject.com/en/2.0/ref/class-based-views/base/#templateview

Django 1.5+

कक्षा आधारित सामान्य विचारों का उपयोग करें।

from django.views.generic import TemplateView

urlpatterns = patterns('',
    (r'^foo/$', TemplateView.as_view(template_name='foo.html')),
)

Django <= 1.4

डॉक्स: https://docs.djangoproject.com/en/1.4/ref/generic-views/#django-views-generic-simple-direct-to-template

urlpatterns = patterns('django.views.generic.simple',
    (r'^foo/$',             'direct_to_template', {'template': 'foo_index.html'}),
    (r'^foo/(?P<id>\d+)/$', 'direct_to_template', {'template': 'foo_detail.html'}),
)

1.5+ के लिए, क्या हमें प्रत्येक स्थिर HTML के लिए ऐसा करने की आवश्यकता है?
— अनुपम

13

इस साइट से अधिक हाल के संस्करणों और माइम प्रकार सहित एक और अपडेट:

http://www.techstricks.com/adding-robots-txt-to-your-django-project/

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

urlpatterns = [
    #... your project urls
    url(r'^robots.txt$', TemplateView.as_view(template_name="robots.txt", content_type="text/plain"), name="robots_file")
]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.