Как я могу поместить данные из api в django

Я сохранил некоторые данные в python и теперь хочу отобразить их в django, как я могу это сделать?



animeUrl = "https://api.jikan.moe/v4/top/anime"
animeResponse = requests.get(animeUrl).json()

def topAnime():
    for idx, video in enumerate(animeResponse['data']): # z [data] wyciaga mi nastepujace rzeczy ktorze sa pod spodem
        animeUrl = video['url']
        title = video['title']
        status = video['status']
        type =  video['type']   
        images = video['images']['jpg']['image_url']   
        #if status == "Currently Airing":
        print (idx+1,":",animeUrl, ":", status, ":", title, ":", type, ":", images)    
topAnime()


это мои хранимые данные и теперь я хочу отобразить их на сайте, как я могу это сделать? Я новичок в django, мне нужны некоторые предложения

Я пробовал использовать шаблоны, но это не сработало

На этот вопрос можно ответить здесь : Как передать данные шаблону в Django?

Для отображения данных в django из url в html файлы есть два способа

Метод 1: рендеринг шаблона вместе с данными Шаблоны Django

Как использовать в проекте : Render Html Pages in django

Вы можете легко настроить синтаксис jinja с помощью двух вышеуказанных ссылок

Метод-2 : Использование django Rest Framework Django Rest Framwork

Предпочтите этот метод, если вы уже работали с api's и работали с отправкой ajax запросов с помощью java скриптов

Пример структуры кода для метода - 1: main.py

from django.shortcuts import render
animeUrl = "https://api.jikan.moe/v4/top/anime"
animeResponse = requests.get(animeUrl).json()

def topAnime():
    for idx, video in enumerate(animeResponse['data']): # z [data] wyciaga mi nastepujace rzeczy ktorze sa pod spodem
        animeUrl = video['url']
        title = video['title']
        status = video['status']
        type =  video['type']   
        images = video['images']['jpg']['image_url']   
        #if status == "Currently Airing":
        print (idx+1,":",animeUrl, ":", status, ":", title, ":", type, ":", images)    
topAnime()

def requestSender(request):
    return render(response, "index.html", data=topAnime())

index.html

<body>
<p> {{ data }} </p>
</body>

Если вы новичок, я настоятельно рекомендую вам построить свой первый проект, следуя учебнику, он поможет вам понять некоторые ключевые понятия. Вы можете найти решение в третьей части.

Но, отвечая на ваш вопрос:

В файле views.py вашего приложения:

from django.shortcuts import render
import requests
    
def get_animes(request):
    url= "https://api.jikan.moe/v4/top/anime"
    response= requests.get(url).json()
    return render(request, 'animes.html', { 'data': response['data']})

В urls.py вашего приложения:

from django.urls import path
from . import views
    
urlpatterns = [
    path('animes/', views.get_animes, name='animes'),
]

В вашем файле animes.html:

{% for obj in data %}
    {{ obj.url }}
    <br>
    {{ obj.title }}
    <br>
    {{ obj.status }}
    <br>
    {{ obj.type }}
    <br>
    {{ obj.jpg.image_url }}
    <br>
    <br>
{% endfor%}

В вашем корневом файле urls.py:

from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myApp.urls')),
]

Наконец, запустите ваш сервер разработки:

python manage.py runserver

Откройте браузер и отправьте запрос на ваш URL:

http://localhost:8000/animes/
Вернуться на верх