from django.shortcuts import render, redirect from django.http import HttpResponse, HttpResponseNotFound, Http404, HttpResponseRedirect from django.urls import reverse from django.template.loader import render_to_string from django.template.defaultfilters import slugify # Create your views here. menu = ["О сайте", "Добавить сатью", "Обратная связь", "Войти"] data_db = [ {'id': 1, 'title': 'Анджелина Джоли', 'content': 'Биография Анджелины Джоли', 'is_published': True }, {'id': 2, 'title': 'Марго Робби', 'content': 'Биография Марго Робби', 'is_published': False }, {'id': 3, 'title': 'Джулия Робертс', 'content': 'Биография Джулия Робертс', 'is_published': True }, ] def index(request): # HttRequest # t = render_to_string('women/index.html') # return HttpResponse(t) # data = {'title': 'главная страница?', # 'menu': menu, # 'float': 234.465, # 'lst': [1, 2, 'abc', True], # 'set': {1, 2, 3, 4, 5}, # 'dict': {'key_1': 'value_1', 'key_2': 'value_2'}, # 'obj': MyClass(10, 20), # 'url': slugify("The main page"), # } data = {'title': 'Главная страница', 'menu': menu, 'posts': data_db, } return render(request, 'women/index.html', context=data) def about(request): return render(request, 'women/about.html', {'title': 'О сайте'}) def categories(request, cat_id): return HttpResponse(f"
id: {cat_id}
") def categories_by_slug(request, cat_slug): if request.GET: print(request.GET) return HttpResponse(f"slug: {cat_slug}
") def archive(request, year): if year > 2023: # return redirect('/') # код 302 # return redirect(index) # код 302 Можно указать функцию-представление # return redirect(index) # код 302 Можно указать функцию-представление # return redirect('home') # указываем имя маршрута # return redirect('/', permanent=True) # код 301 uri = reverse('cats', args=('sport', )) print(uri) # return redirect(uri) return HttpResponseRedirect('/') return HttpResponse(f"{year}
") def post_detail(request): if request.GET: ans = "" for key, value in request.GET.items(): ans += f'{key}={value}|' return HttpResponse(ans[:-1]) else: return HttpResponse("GET is empty") def posts_list(request, year): if 1990 <= year <= 2023: return HttpResponse(f'posts: {year}') else: raise Http404() def page_not_found(request, exception): return HttpResponseNotFound("