Django入门教程(十)Form表单练习二

1、新建项目和app。
流程简单,不再详细说明。不知道可以看前几篇文章。
2、准备材料
(1)、movie.html
(2)、电影接口:http://api.map.baidu.com/telematics/v3/movie?qt=hot_movie&location=郑州市&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&output=json
(3)、定位接口:https://api.map.baidu.com/location/ip?ak=T9NhMLzkmysEGY82fG7vayxnBeCTV26m
3、原movie.html模板展示
在这里插入图片描述

4、最终效果展示。(没有图片的原因是百度的这个接口图片地址加了防盗链)。
在这里插入图片描述

5、项目结构,将movie.html模板文件放置templates文件夹下。
在这里插入图片描述

6、要求

①需要使用IP定位接口,默认展示当前城市的最新电影信息。
②在输入框中输入想查询的城市,点击搜索显示结果。

7、实现思路

①根据定位接口,在进入页面时根据当前访问ip进行定位,获取当前城市。
②根据电影接口,利用当前城市,获取当前城市最新电影信息。
③第一次访问页面时get请求,再进行搜索时是采用get请求还是post请求。

8、代码实现
①在urls.py文件中编写路由

from django.contrib import admin
from django.urls import path
from movieapp import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('index', views.index),

]

在这里插入图片描述

②、在views.py文件中编写业务逻辑。(此逻辑使用get请求提交form表单。即同get类型的请求处理不同的逻辑。)

from django.shortcuts import render
import requests

def index(request):
    # 使用ip定位接口,当第一次访问页面时,根据ip定位的城市,解析这个城市的最新电影信息
    try:
        city = request.GET['city']     #通过获取搜索框的城市,若抛出异常则表明是第一次进入页面,反之,则是进行搜索。
    except:
        ip_url = 'https://api.map.baidu.com/location/ip?ak=T9NhMLzkmysEGY82fG7vayxnBeCTV26m'
        result = requests.get(ip_url).json()   
        city = result['content']['address_detail']['city']    #解析ip定位接口返回的城市定位信息
    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['status'] != 'Success':   #根据接口响应状态判断是否请求成功
        context = {'city': city, 'error': '请求出现错误'}   #出现错误时传递给模板错误信息
    else:
        movies = movie_data['result']['movie']    
        if movies:			#如果电影数据存在,将其传递给模板
            context = {'city': city, 'movies': movies}
        else:
            context = {'city': city, 'error': '当前城市没有查询到最新电影'}
    return render(request, template_name='movie.html', context=context)

在这里插入图片描述
③修改movie.html模板文件。
a、修改form表单的提交地址。
在这里插入图片描述
b、修改展示数据的div。并加上一个for循环。遍历数据并展示。
在这里插入图片描述
④运行查看
a、进入首页根据当前ip定位的城市最新电影信息。
在这里插入图片描述

b、使用搜索框搜索展示的电影信息。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值