【Django】百度搜索

思路

1、前端页面

前端使用了bootstrap框架

在这里插入图片描述
bootstrap

2、信息获取

通过爬取百度搜索页面来获取搜索结果,具体实现可以参考我以前写过的爬虫文章

【爬虫】百度搜索

3、分页效果

在处理前端的请求时,每次都将搜索结果、搜索关键词和控制页数的变量pn传递到模板页面,在模板页面中根据pn的值来生成上一页和下一页的URL
具体实现如下:

def search_handler(request):
    word = request.POST.get('word')
    pn = request.POST.get('pn')
    result = baidu.search(word, pn)
    print(result)
    return render(request, 'list.html', context={'search_result': result, 'pn': pn, 'word': word})


def page_handler(request):
    word = request.GET.get('word')
    pn = request.GET.get('pn')
    result = baidu.search(word, pn)
    print(result)
    return render(request, 'list.html', context={'search_result': result, 'pn': pn, 'word': word})
    <nav>
        <ul class="pager">
            {% if pn == '0' %}
                <li class="previous disabled"><a href="#"><span aria-hidden="true">&larr;</span> 上一页</a></li>
                <li class="next"><a href="/s?word={{ word }}&pn={{ pn|add:10 }}">下一页 <span aria-hidden="true">&rarr;</span></a></li>
            {% else %}
                <li class="previous"><a href="/s?word={{ word }}&pn={{ pn|add:-10 }}"><span aria-hidden="true">&larr;</span> 上一页</a></li>
                <li class="next"><a href="/s?word={{ word }}&pn={{ pn|add:10 }}">下一页 <span aria-hidden="true">&rarr;</span></a></li>
            {% endif %}
        </ul>
    </nav>

代码

完整代码已经上传至Github

传送门

结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值