Процесс загрузки шаблона в Django
- Добавление контекста
- Возвращение HttpResponse
from django.http import HttpResponse
def get(self, request, *args, **kwargs):
response = 'Hello, World'
return HttpResponse(response)
Render
Для этих целей в Django есть функция render(request, template, dict), принимает агрументы:
- request — обьект запроса
- template — назваине шаблона
- dict — словарь значений
from django.shortcuts import render
def index(request):
data = 'Hello World'
return render(request, 'index/index.html', {'var1': data} )
from django.shortcuts import render
def index(request):
data = {
'var1': 'data',
'var2': 'data',
}
return render(request, 'index/index.html', data )
404
Для вызова 404 в Django можно вызвать метод Http404() как exception
Или воспользоватся методом — get_object_or_404()
from django.shortcuts import render, get_object_or_404
from .models import Articles
def index(request, question_id=None):
articles = get_object_or_404(Articles, pk=question_id)
data = {
'hello': 'Hello World!',
'articles': articles,
}
return render(request, 'index/index.html', data )
Для обработки 404 ошибки и показа собственной страницы 404 необходимо в папку templates положить файл 404.html.
Стоит помнить, что это будет работать только если в settings.py
- DEBUG= False,
- ALLOWED_HOSTS[*], где * — адрес хоста с на котором запущено приложение.