123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- 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"<h1>Статьи по категориям</h1><p>id: {cat_id}</p>")
- def categories_by_slug(request, cat_slug):
- if request.GET:
- print(request.GET)
- return HttpResponse(f"<h1>Статьи по категориям</h1><p>slug: {cat_slug}</p>")
- 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"<h1>Архив по годам</h1><p>{year}</p>")
- 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("<h1>Страница не найдена</h1>")
|