django - Django -- 为 TMDB API 请求将函数视图转换为基于类的视图
问题描述
我正在使用函数视图使用tmdb api呈现输出,
我熟悉基于类的视图(TemplateView、ListView、CreateView 和 UpdateView)的基础知识。
- 如何将以下 api 请求代码写入 TemplateView?
视图.py
from django.shortcuts import render
import requests
# Create your views here.
def index(request):
# Query API with user input
if 'movie' in request.GET:
api_key = 'api'
id = request.GET['movie']
url = 'https://api.themoviedb.org/3/search/movie?api_key={}&language=en-US&query={}&include_adult=false'
response = requests.get(url.format(api_key,id))
# successful request
if response.status_code == 200:
# Parse json output for key value pairs
tmdb = response.json()
# backdrop image -- tmdb for each movie
backdrop_path = tmdb['results'][0]['backdrop_path']
url_backdrop = 'https://image.tmdb.org/t/p/original'+backdrop_path
# poster image -- tmdb for each movie
poster_path = tmdb['results'][0]['poster_path']
url_poster = 'https://image.tmdb.org/t/p/original'+poster_path
context = {
'title': tmdb['results'][0]['original_title'],
'overview': tmdb['results'][0]['overview'],
'release_date': tmdb['results'][0]['release_date'],
'vote_average': tmdb['results'][0]['vote_average'],
'vote_count': tmdb['results'][0]['vote_count'],
'backdrop_path' : tmdb['results'][0]['backdrop_path'],
'backdrop' : url_backdrop,
'poster' : url_poster
}
return render(request, 'home.html', {'context': context})
else: # returns homepage if invalid name is given in form
return render(request, 'home.html')
else: # Homepage without GET request
return render(request, 'home.html')
解决方案
推荐阅读
- javascript - ReferenceError:文档未定义(JavaScript)
- docker - Openshift - 使用 alpine、java 和 jmeter 运行基本容器
- ios - SwiftUI 自定义启动屏幕?
- python - Plotly.py - HTML 图中有趣的图形大小不稳定性
- javascript - 使用 Iso yyyy-MM-dd HH:mm:ss 的无效日期 moment.js
- discord - 当成员有 10 个邀请时,我如何添加角色?
- reactjs - 如何在 React 中获取和显示图像,在 Mongodb 中保存为 Cloudinary URL
- symfony - Symfony 4.4 事件监听器错误(MongoDB)
- pandas - 如何在 Pandas 中使用 double groupby 并根据 if 条件进行过滤?
- joomla - 使模块下拉字段多语言