ACHO.pk devlog

[멋쟁이사자처럼10기] Django 영화 리뷰 사이트(영화 데이터 가져오기) 본문

멋쟁이사자처럼

[멋쟁이사자처럼10기] Django 영화 리뷰 사이트(영화 데이터 가져오기)

Acho 2022. 7. 20. 15:53

<초기 환경 설정>

1. 'movieproject' 프로젝트 생성

2. 'movieapp' 어플리케이션 생성 + 등록 

3. 어플리케이션 하위 폴더에 templates 폴더 생성 > index.html 파일 생성 > 함수 등록, url 등록

 


최신 영화 데이터 가져오기

 

https://developers.themoviedb.org/3/getting-started/introduction

 

API Docs

 

developers.themoviedb.org

해당 사이트에서 회원가입을 진행한 후, 나의 프로필 > 설정에서 API Key를 발급받는다.

 

views.py

my_id = '발급받은 API Key'

 

Trending

위의 페이지에서 Try it out 선택 

 

views.py

from django.shortcuts import render
import requests

my_id = '발급받은 API KEY'

def home(request):
    url ='https://api.themoviedb.org/3/trending/movie/week?api_key='+my_id
    response = requests.get(url)
    resdata = response.text #가공해서 활용하고 싶은 정보
    
    return render(request, 'index.html', {'resdata':resdata})

 

영화 하나하나에 대한 정보가 리스트 형식으로 가져온 걸 볼 수 있다.


 

json 형식의 데이터를 보기 좋게 가공할 수 있다.

https://jsonformatter.curiousconcept.com/

 

JSON Formatter & Validator

Format and validate JSON data so that it can easily be read by human beings.

jsonformatter.curiousconcept.com

 

 

views.py

from django.shortcuts import render
import requests
import json

my_id = 'API Key'

def home(request):
    url ='https://api.themoviedb.org/3/trending/movie/week?api_key='+my_id
    response = requests.get(url)
    resdata = response.text #가공해서 활용하고 싶은 정보
    #json을 python 객체로 반환
    obj = json.loads(resdata)
    obj = obj['results']
    
    return render(request, 'index.html', {'resdata':resdata})

 

index.html

  • Formatted JSON Data를 확인해서 가져오고 싶은 데이터만 정리하면 된다.
{% for o in obj %}

{{o.original_title}}<br>
{{o.poster_path}}<br>
{{o.backdrop_path}}<br>
{{o.vote_average}}<br>
{{o.overview}}<br>
{{o.title}}<br>
{{o.id}}<br> <!--식별값-->
<br><br>

{% endfor %}

API 이미지 가져오기

 

https://developers.themoviedb.org/3/getting-started/images

 

API Docs

 

developers.themoviedb.org

 

index.html

{% for o in obj %}

{{o.original_title}}<br>
<img src='https://image.tmdb.org/t/p/w500/{{o.poster_path}}'><br>
<img src='https://image.tmdb.org/t/p/w500/{{o.backdrop_path}}'><br>
{{o.vote_average}}<br>
{{o.overview}}<br>
{{o.title}}<br>
{{o.id}}<br> <!--식별값-->
<br><br>

{% endfor %}

 

 

 

 

 

 

 

 

 

Comments