1.在views.py中
from django.shortcuts import render
import requests
# Create your views here.
from django.http import HttpResponse
def myMovie(request):
# return render(request,'index.html')
# 获取城市信息
# 使用城市拼接url 请求电影信息
# 首次进入这个方法 直接请求地址信息
if request.method =='GET':
url = 'https://api.map.baidu.com/location/ip?ak=KHkVjtmfrM6NuzqxEALj0p8i1cUQot6Z'
response = requests.get(url)
response_dic = response.json()
city = response_dic['content']['address_detail']['city']
else:
# 如果发现请求方式是post方式 就可以认为是form表单发送的请求
# 那么直接获取form表单里面name值 为city的input标签 里面输入的内容
city = request.POST['city']
# 拼接url 获取全部电影信息
movie_url = 'http://api.map.baidu.com/telematics/v3/movie?qt=hot_movie&location={}&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&output=json'.format(city)
movie_data = requests.get(movie_url).json()
# 判断电影信息是否请求成功
if movie_data['error'] == 0:
all_movies = movie_data['result']['movie']
context = {
'city':city,
'all_movies':all_movies,
}
# return render(request,'index.html',context)
else:
context = {
'city':city,
'error':'无法获取当前城市电影信息'
}
return render(request,'index.html',context)
2.在urls.py中设置路径
from django.contrib import admin
from django.urls import path
from myApp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('movie/',views.myMovie)
]
3.在html文件中
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="{% static 'css/bootstrap.css'%}">
<title>{{city}}即将上映电影</title>
<style>
section{
/*border:1px solid red;*/
height:240px;
position: relative;
}
img{
height:150px;
}
.right{
display: inline-block;
/*border:1px solid blue;*/
position: absolute;
left:200px;
top:40px;
}
</style>
</head>
<body>
<nav class="navbar navbar-inverse" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target="#example-navbar-collapse">
<span class="sr-only">切换导航</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">电影首页</a>
</div>
<div class="collapse navbar-collapse" id="example-navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">加入我们</a></li>
<li><a href="#">关于我们</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
联系我们
</a>
</li>
</ul>
<!--跳转到urls.py里面的 /movie 路径-->
<!--/movie 跳转到 views.py 里面的myMovie 方法里面-->
<form action="/movie/" method="POST" class="navbar-form navbar-left" role="search">
{% csrf_token%}
<div class="form-group">
<input name="city" type="text" class="form-control" placeholder="请输入城市进行搜索">
</div>
<button type="submit" class="btn btn-default">提交</button>
</form>
</div>
</div>
</nav>
<div class="container">
{% if error %}
<h1>{{error}}</h1>
{% endif%}
{% for movie in all_movies %}
<section class="col-lg-6 col-md-6 col-sm-12">
<h4>{{movie.movie_name}}</h4>
<img src="{{movie.movie_picture}}" alt="">
<div class="right">
<div>类型:{{movie.movie_type}}</div>
<div>上映日期:{{movie.movie_release_date}}</div>
<div>演员:{{movie.movie_starring}}</div>
<div>评分:{{movie.movie_score}}</div>
<div>导演:{{movie.movie_director}}</div>
<div>类型:{{movie.movie_tags}}</div>
</div>
</section>
{% endfor%}
</div>
<script src="{% static 'js/jquery.js'%}"></script>
<script src="{% static 'js/bootstrap.js'%}"></script>
</body>
</html>
注意:由于用到bootstrap中的模型,所有需要先引入bootstrap静态文件
在html文件最上方将静态文件 进行加载
{% csrf_token %} 防止跨域