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获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socket read timed out的问题

《如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socketreadtimedout的问题》:本文主要介绍解决Druid线程... 目录异常信息触发场景找到版本发布更新的说明从版本更新信息可以看到该默认逻辑已经去除总结异常信息触发场景复

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

Python struct.unpack() 用法及常见错误详解

《Pythonstruct.unpack()用法及常见错误详解》struct.unpack()是Python中用于将二进制数据(字节序列)解析为Python数据类型的函数,通常与struct.pa... 目录一、函数语法二、格式字符串详解三、使用示例示例 1:解析整数和浮点数示例 2:解析字符串示例 3:解