Создаем новостной блог с Python и Django

Создаем новостной блог с Python и Django

Создаем новостной блог с 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 новостями.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий