Как я могу поместить данные из 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/