Làm cách nào để đi thẳng đến mẫu, trong urls.py của Django?


107

Thay vì truy cập views.py, tôi muốn nó chuyển đến một mẫu, robots.txt.


5
Câu trả lời đã cho là chính xác, mặc dù, đối với thứ gì đó như robots.txt, bạn cũng có thể định tuyến nó ở cấp máy chủ web. Nó thậm chí sẽ không đến được ứng dụng django của bạn. Đối với nginx: stackoverflow.com/a/3746344/781695 , Đối với apache: serverfault.com/a/213455/84120
người dùng

Câu trả lời:


261

Django 2.0+

Sử dụng dạng xem chung dựa trên lớp nhưng đăng ký với mẫu 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+

Sử dụng các khung nhìn chung dựa trên lớp.

from django.views.generic import TemplateView

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

Django <= 1,4

Tài liệu: 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'}),
)

Đối với 1.5+, chúng ta có cần làm điều này cho mọi HTML tĩnh không?
Anupam

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.