views.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from django.shortcuts import render, redirect
  2. from django.http import HttpResponse, HttpResponseNotFound, Http404, HttpResponseRedirect
  3. from django.urls import reverse
  4. # Create your views here.
  5. def index(request): # HttRequest
  6. return HttpResponse("Страница приложения women.")
  7. def categories(request, cat_id):
  8. return HttpResponse(f"<h1>Статьи по категориям</h1><p>id: {cat_id}</p>")
  9. def categories_by_slug(request, cat_slug):
  10. if request.GET:
  11. print(request.GET)
  12. return HttpResponse(f"<h1>Статьи по категориям</h1><p>slug: {cat_slug}</p>")
  13. def archive(request, year):
  14. if year > 2023:
  15. # return redirect('/') # код 302
  16. # return redirect(index) # код 302 Можно указать функцию-представление
  17. # return redirect(index) # код 302 Можно указать функцию-представление
  18. # return redirect('home') # указываем имя маршрута
  19. # return redirect('/', permanent=True) # код 301
  20. uri = reverse('cats', args=('sport', ))
  21. print(uri)
  22. # return redirect(uri)
  23. return HttpResponseRedirect('/')
  24. return HttpResponse(f"<h1>Архив по годам</h1><p>{year}</p>")
  25. def post_detail(request):
  26. if request.GET:
  27. ans = ""
  28. for key, value in request.GET.items():
  29. ans += f'{key}={value}|'
  30. return HttpResponse(ans[:-1])
  31. else:
  32. return HttpResponse("GET is empty")
  33. def posts_list(request, year):
  34. if 1990 <= year <= 2023:
  35. return HttpResponse(f'posts: {year}')
  36. else:
  37. raise Http404()
  38. def page_not_found(request, exception):
  39. return HttpResponseNotFound("<h1>Страница не найдена</h1>")