python 自己搭建一个小型服务器

# !/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 = '''



order query


%s


输入
例如
*****
*****,2
''' # 将正则表达式编译成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 &

 

你可能感兴趣的:(python 自己搭建一个小型服务器)