How to go directly to the template in Django urls.py?

Instead of going to views.py, I want it to go to the robots.txt template.

+90
python django templates
Mar 05 '11 at 3:00
source share
2 answers

Django 2.0+

Use class-based generic views, but sign up with the django 2.0 template. 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+

Use class-based generics.

 from django.views.generic import TemplateView urlpatterns = patterns('', (r'^foo/$', TemplateView.as_view(template_name='foo.html')), ) 

Django <= 1.4

Docs: 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'}), ) 
+225
Mar 05 2018-11-11T00:
source share

Further update for later versions and including the mime type from this site:

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") ] 
+11
Jul 08 '16 at 16:11
source share



All Articles