python 自己搭建一个小型服务器
# !/usr/bin/python#-*- coding: UTF-8 -*-import os# Python的标准库中的os模块包含普遍的操作系统功能import re# 引入正则表达式对象import urllibfrom BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler# 导入HTTP处理相关的模...
·
# !/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 &
更多推荐
已为社区贡献1条内容
所有评论(0)