Создаем новостной блог с Python и Django
			Django - это высокоуровневый фреймворк, написанный на Python , который позволяет нам создавать серверные веб-приложения. В этой статье мы увидим, как создать новое приложение с помощью Django. Мы будем использовать Api новостей и извлекать все заголовки новостей из api. Выполните следующие действия в командной строке или терминале:
# установите Api для новостей
>>>pip install newsapi-python
# создайте проект
>>>django-admin startproject newsproj
# перейдите в созданную папку проекта
>>>cd newsproj
# создайте новое приложение в проекте
>>>python manage.py startapp mynewsapp
Затем создаем папку templates внутри mynewsapp. И добавляем код в настройки проекта. Для чего заходим в файл setting.py:
# меняем
'DIRS': []
# на
'DIRS': [os.path.join(BASE_DIR, "templates"),]
Теперь наш проект сможет оперировать данной директорией.
Откройте views.py и создайте функцию-представление с именем index, которое принимает запрос и отображает html-код в качестве ответа. .
# импорт Api новостей
from django.shortcuts import render
from newsapi import NewsApiClient
# Создание функции представления
def index(request):
    newsapi = NewsApiClient(api_key ='YOURKEY')
    top = newsapi.get_top_headlines(sources ='techcrunch')
    l = top['articles']
    dsc =[]
    nws =[]
    im =[]
    for i in range(len(l)):
      f = l[i]
      nws.append(f['title'])
      dsc.append(f['description'])
      im.append(f['urlToImage'])
      mylist = zip(nws, dsc, im)
    return render(request, 'index.html', context ={"mylist":mylist})
# Для работы функции Api необходмо заменить YOURKEY на соответствующий
ключ
Чтобы получить ключ нужно перейти по адресу и пройти регистрацию.
В папке templates создайте файл index.html:
# index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
  <meta charset="utf-8">
  <title></title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<!-- Optional theme -->
</head>
<body>
  <div class="jumbotron" style="color:black">
  <h1 style ="color:white">
Get The latest news on our website
  </h1>
  </div>
  <div class="container">
  {% for new, des, i in mylist %}
      <img src="{{ i }}" alt="">
      <h1>news:</h1> {{ new }}
      {{ value|linebreaks }}
      <h4>description:</h4>{{ des }}
      {{ value|linebreaks }}
  {% endfor %}
  </div>
</body>
</html>
Далее сопоставьте адреса в urls.py.
from django.contrib import admin
from django.urls import path
from newsapp import views
urlpatterns = [
    path('', views.index, name ='index'),
    path('admin/', admin.site.urls),
]
Запустите сервер django:
>>>python manage.py runserver
И перейдите по указанному адресу. Если все выполнено правильно, то на экране должна появиться лента c новостями.
- 
					Создано 16.09.2021 10:12:26
					 - 
					
					Михаил Русаков				 
			
		
			
				
				
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.