django 实现搜索功能

2020-01-09  本文已影响0人  叶叶阿姨

老规矩 自己看

def api_back_search_news(request):
    # 搜索
    if request.method == 'POST':
        cursor = connection.cursor()
        search = unquote(request.POST.get('value'))
        page = int(request.POST.get('page', 1))
        limit = int(request.POST.get('limit', 10))
        error_msg = ''
        if not search:
            error_msg = '请输入关键词'
        cursor.execute(f'select * from quick_poll_alerts where locate("{search}",alerts_title) order by alerts_releasetime desc limit '
                       f'{(page - 1) * limit},{limit}')
        data = [format_alerts_list(i, search) for i in cursor.fetchall()]
        cursor.execute(f'select count(*) from quick_poll_alerts where locate("{search}",alerts_title)')
        count = cursor.fetchall()
        print(data)
        print(count)
        cursor.close()
        return JsonResponse({'msg': '添加成功', 'code': 200, 'data': data, 'count': count})

这里的format_alerts_list

def format_alerts_list(data, key=None, type=None, label=None):
    # 格式化数据
    ret = {}
    # id
    ret['id'] = data[0]
    # img
    ret['img'] = data[3]
    # title
    ret['title'] = data[12]
    # abstract
    ret['abstract'] = data[2]
    # niche
    ret['niche'] = Niche.objects.filter(id=data[6]).first().niche_name
    # article
    ret['article'] = Article.objects.filter(id=data[4]).first().alerts_section_name
    # time
    ret['time'] = data[11].strftime("%Y-%m-%d")
    # source
    ret['source'] = Source.objects.filter(id=data[10]).first().source_name
    # regional
    ret['regional'] = Regional.objects.filter(id=data[7]).first().regional_name
    # content
    if type == 'detail':
        ret['content'] = data[1]
    if label:
        ret['label'] = data[13]
    return ret
上一篇下一篇

猜你喜欢

热点阅读