Ubuntu + coreseek + python + mysql (三、通过前端html进行搜索,用python处理数据)

本文主要是介绍Ubuntu + coreseek + python + mysql (三、通过前端html进行搜索,用python处理数据),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先要引入API:

通过路径/usr/local/coreseek-4.1-beta/csft-4.1/api 找到sphinxapi.py

复制sphinxapi.py到工程中去,在使用时,需要在文件头部这样引入即可:

from sphinxapi import *
import sys, time

前端的HTML,是一个很简单的form表单

<pre name="code" class="html"><div class="row"><div class="col-xs-12 col-sm-6 col-md-4 col-lg-4"><form id="form3" action="../search3/" method="post"><div class="input-group"><input type="text" id="content" name="content" class="form-control" placeholder="id/name/text" aria-describedby="basic-addon2"><span class="input-group-btn"><button class="btn btn-default" type="button" οnclick="submit3()">搜索</button></span></div></form></div>
</div>
 

JS文件,用户判断输入是否为空,然后提交form表单,通过form 中的action 来设置表单由哪段后台代码或文件处理,此处是search3这个函数

function submit3(){if(!$("#content").val()){alert("表单不能为空");} else {$("#form3").submit();}
}

search3 函数

(别忘了在这个函数的文件头,添加 from sphinxapi import * 和 import sys, time两句代码)

我用的是django,绿色代码是比较核心、通用的部分

def search3(request):
<span style="color:#FFCC00;">    <span style="color:#33CC00;">q = request.REQUEST.get("content")mode = SPH_MATCH_ALLhost = 'localhost'port = 9312index = 'mysql'filtercol = ''filtervals = []sortby = ''groupby = ''groupsort = ''limit = 0# do querycl = SphinxClient()cl.SetServer ( host, port )cl.SetWeights ( [100, 1] )cl.SetMatchMode ( mode )if filtervals:cl.SetFilter ( filtercol, filtervals )if groupby:cl.SetGroupBy ( groupby, SPH_GROUPBY_ATTR, groupsort )if sortby:cl.SetSortMode ( SPH_SORT_EXTENDED, sortby )if limit:cl.SetLimits ( 0, limit, max(limit,1000) )res = cl.Query ( q, index )print "res:",res</span></span>if res['total'] is 0:print 'query failed: %s' % cl.GetLastError()return HttpResponse('木有查到')else: result = []s0 = ''#s1和s0的命名很傻很天真s1 = '('length = len(res['matches'])for i in range(0,length):result.append(res['matches'][i]['id'])s0 = str(result[i])s1 = s1 + s0 + ','  #先用“+”号,以后换成join等更好的方法s1 = s1[0:-1] + ')''''以下是通过id到mysql test tb_test中查询数据'''import MySQLdbimport jsonconn = MySQLdb.connect(host='localhost',user='root',passwd='admin',db='test',charset='utf8')cur = conn.cursor()        sql = 'SELECT * FROM test.tb_test WHERE id IN %s' % s1cur.execute(sql)result = []args = {}i = 0for row in cur.fetchall():list = {}list["id"] = row[0]list["name"] = row[1]list["text"] = row[2]result.append(list)cur.close()  conn.close()  args["test_list"] = json.dumps(result)instance, type, name = get_instance_and_type(request.user)if instance.photo :photourl = instance.photo.urlargs['photourl'] = photourlargs["name"] = nameargs["keyword"] = qreturn render_to_response('test_list.html',args)

test_list.html如下

<div class="container theme-showcase" role="main"><div id="result" style="display:none;">{{ test_list }}</div><input type="hidden" id="keyword" value={{ keyword }}><div class="row" id="test_list"></div>
</div>



这篇关于Ubuntu + coreseek + python + mysql (三、通过前端html进行搜索,用python处理数据)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989318

相关文章

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

SQL Server 查询数据库及数据文件大小的方法

《SQLServer查询数据库及数据文件大小的方法》文章介绍了查询数据库大小的SQL方法及存储过程实现,涵盖当前数据库、所有数据库的总大小及文件明细,本文结合实例代码给大家介绍的非常详细,感兴趣的... 目录1. 直接使用SQL1.1 查询当前数据库大小1.2 查询所有数据库的大小1.3 查询每个数据库的详

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

python之uv使用详解

《python之uv使用详解》文章介绍uv在Ubuntu上用于Python项目管理,涵盖安装、初始化、依赖管理、运行调试及Docker应用,强调CI中使用--locked确保依赖一致性... 目录安装与更新standalonepip 安装创建php以及初始化项目依赖管理uv run直接在命令行运行pytho

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.