Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.60 KB | None | 0 0
  1. from django.http import HttpResponse
  2.  
  3. articles_list = [
  4. [1, "Айви Яптанго", 2020, "Самые шикарные парочки знаменитостей 2019 года", ["красота", "гороскопы"]],
  5. [2, "Лео Месси", 2014, "Un Abrazo a Todos", ["лайфстайл", "недвижимость"]],
  6. [3, "Гэри Паска", 2016, "Продаётся дом в Южной Флориде за $2,695", ["недвижимость", "коучинг", "howto"]],
  7. [4, "Роби Тобинсон", 1967, "7 лет я применял этот трюк и назад пути нет", ["лайфхак", "коучинг", "howto"]],
  8. [5, "Металлий Вутко", 2017, "Let Me Speak From My Heart", ["футбол", "допинг"]],
  9. [6, "Роби Тобинсон", 1977, "Беспроигрышная древнеримская техника обольщения", ["отношения", "история", "howto"]],
  10. [7, "Роби Тобинсон", 2022, "3 способа установить девайс от храпа", ["здоровье", "коучинг", "howto"]],
  11. [8, "Роби Тобинсон", 1975, "Интимная проблема, которой втайне озабочены все ваши друзья", ["отношения", "здоровье", "howto"]],
  12. [9, "Elina Shake", 2008, "Представления, основанные на классах", ["python", "howto", "лайфхак"]],
  13. [10, "Бен Франклин", 1753, "Электрические стодолларовые купюры", ["фондовая биржа", "рынки", "электричество"]],
  14. [11, "Роби Тобинсон", 2012, "5 забавных Django Apps, о которых говорят все", ["django", "IT", "howto"]],
  15. [12, "Металлий Вутко", 2017, "No Problems, No Criminality", ["допинг", "недвижимость"]],
  16. [13, "Роби Тобинсон", 1987, "7 способов до смерти напугать своего босса в пятницу 13-го", ["работа", "мистика", "howto"]],
  17. [14, "Твентин Карантино", 2007, "Четыре сервера", ["кино", "django", "мистика"]],
  18. ]
  19.  
  20.  
  21. # в функции generate_html()
  22. # оформим перечень статей в виде html-списка
  23. def generate_html(articles):
  24. if len(articles) == 0:
  25. return '<h1>По вашему запросу не найдено ни одной статьи!</h1>'
  26. else:
  27. base_html = '<h1>Статьи по вашему запросу:</h1> <ul>'
  28. for article in articles:
  29. list_item = f'<li><ul>' \
  30. f'<li><strong>{article[3]}</strong></li>' \
  31. f'<li>автор: {article[1]}</li>' \
  32. f'<li>год: {article[2]}</li>' \
  33. f'<li>теги: {", ".join(article[4])}</li>' \
  34. f'</ul></li>'
  35. base_html += list_item
  36. base_html += '</ul>'
  37. return base_html
  38.  
  39.  
  40. # на случай, если в адресе не указан год - установим значение year=-1
  41. def dashboard(request, year=-1):
  42. found_articles = []
  43. if year == -1:
  44. # если в адресе не указан год,
  45. # записываем в found_articles все статьи нашего блога
  46. found_articles = articles_list
  47. else:
  48. for article in articles_list:
  49. if year == article[2]:
  50. found_articles.append(article)
  51. beautiful_html = generate_html(found_articles)
  52. return HttpResponse(beautiful_html)
  53.  
  54.  
  55. def article_by_id(request, id):
  56. found_articles = []
  57. for article in articles_list:
  58. if id == article[0]:
  59. found_articles.append(article)
  60. beautiful_html = generate_html(found_articles)
  61. return HttpResponse(beautiful_html)
  62.  
  63.  
  64. def articles_by_tag(request, tag):
  65. found_articles = []
  66. for article in articles_list:
  67. if tag in article[4]:
  68. found_articles.append(article)
  69. beautiful_html = generate_html(found_articles)
  70. return HttpResponse(beautiful_html)
  71.  
  72.  
  73. def search(request):
  74. if request.method == 'GET':
  75. name = request.GET['name']
  76. year = int(request.GET['year'])
  77. found_articles = []
  78. for article in articles_list:
  79. if article[1] == name and article[2] == year:
  80. found_articles.append(article)
  81. beautiful_html = generate_html(found_articles)
  82. return HttpResponse(beautiful_html)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement