# !/usr/bin/python
#  -*- coding: UTF-8 -*-
import os  # Python的标准库中的os模块包含普遍的操作系统功能
import re  # 引入正则表达式对象
import urllib
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler  # 导入HTTP处理相关的模块

import mysql.connector
from elasticsearch import Elasticsearch


def query(cl1, cl2):
    SCROLL = "10m"

    online_es = Elasticsearch("http://%s:%s@%s:%s" % ("*****",
                                                      "*****",
                                                      "*****",
                                                      8080))
    query_body = {}

    # print query_body
    temp_res = online_es.search(index="*****",
                                doc_type="*****",
                                body=query_body,
                                params={
                                    "scroll": SCROLL,
                                    "size": 10
                                })

    dhCount = temp_res['hits']['total']
    if dhCount >= 1:
        return "已经存在%s,类型%s" % (cl1, cl2)
    return query(cl1, cl2)


def query1(orderId, typeId):
    
    sql = "select count(*) from table;" % (*****,*****)
    mydb = mysql.connector.connect(host=*****, port=*****, user=*****,
                                   password=*****, database=*****,
                                   connection_timeout=60, autocommit=True, charset='utf8')
    mycursor = mydb.cursor()
    mycursor.execute(sql)
    result = mycursor.fetchall()
    count = result[0][0]
    mycursor.close()
    mydb.close
    if count >= 1:
        return query(orderId, typeId)
    else:
        return "不存在%s,%s" % (orderId, typeId)



# 自定义处理程序,用于处理HTTP请求
class TestHTTPHandler(BaseHTTPRequestHandler):
    # 处理GET请求
    def do_GET(self):
        # 页面输出模板字符串
        templateStr = '''
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>order query</title>
</head>
<body>
<font color="#FF0000">%s</font>
<br>
<br>
输入
<br>
例如
<br>
*****
<br>
*****,2
<form action="/qr" name=f method="GET"><input maxLength=1024 size=70
name=s value="%s" title="Text to QR Encode"><input type=submit
value="query order" name=qr>
</form>
</body>
</html> '''

        # 将正则表达式编译成Pattern对象
        pattern = re.compile(r'/qr\?s=([^\&]+)\&qr=query\+order')
        # 使用Pattern匹配文本,获得匹配结果,无法匹配时将返回None
        match = pattern.match(self.path)
        qrImg = ''
        qr = ''

        self.protocal_version = 'HTTP/1.1'  # 设置协议版本
        self.send_response(200)  # 设置响应状态码
        self.send_header("Welcome", "Contect")  # 设置响应头
        self.end_headers()

        if match:
            # 使用Match获得分组信息
            typeIds = {"2": "7002", "3": "7003"}
            qr = urllib.unquote(match.group(1))
            datas = qr.strip().split(",")
            orderId = datas[0]
            size = len(datas)
            if size == 1:
                qrImg = query(*****, 7002)
            else:
                typeId = datas[1]
                qrImg = query1(*****, typeIds[typeId])
        self.wfile.write(templateStr % (qrImg, qr))  # 输出响应内容


# 启动服务函数
def start_server(port):
    http_server = HTTPServer(('', int(port)), TestHTTPHandler)
    http_server.serve_forever()  # 设置一直监听并接收请求


os.chdir('web')  # 改变工作目录到 static 目录
start_server(8010)  # 启动服务,监听8000端口

#nohup python findProblem.py > server.log &

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐