Python: экземпляр Basehttprequesthandler сбросится после запроса GETPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python: экземпляр Basehttprequesthandler сбросится после запроса GET

Сообщение Anonymous »

У меня есть класс python basehttprequesthandler , который называется классом httpserver . По сути, Basehttprequesthandler просто запускает базовый алгоритм, а затем отвечает на запрос Get . Проблема заключается в том, что каждый раз, когда я делаю запрос GET , я получаю правильный ответ, но все собранные данные в BASEHTTPREQUESTHANDLER сброшен, как если бы каждый раз, когда запрос отправляется в httpserver , он создает новый экземпляр Basehttprequesthandler . Я не могу найти ничего в Интернете, что действительно объясняет, что происходит за кулисами. Я прикрепил упрощенную версию моего кода. /> basehttprequesthandler < /strong> < /p>
Эта упрощенная версия просто отслеживает количество предупреждений, которые произошли. Проблема в том, что счет всегда сбрасывается до 0, когда я вызываю запрос GET , как если бы экземпляр класса сбросил.
class SimulationServer(BaseHTTPRequestHandler):
def __init__(self, address, port, randomNumberMax, *args):
self.IP_ADDRESS = address
self.PORT = port
self.RANDOM_NUMBER_MAX = randomNumberMax
self.COUNT = 0
BaseHTTPRequestHandler.__init__(self, *args)

def do_GET(self):
if self.headers['Authorization'] == 'Basic ' + str(key):
print("send response")
self.do_HEAD()
randomNumberMax = self.RANDOM_NUMBER_MAX
response = ""

if randint(0, randomNumberMax) == 0:
self.generateAlert()

base_path = urlparse(self.path).path
print('base_path: ' + base_path)
if base_path == '/count':
response = self.getCount()

self.wfile.write(bytes(response, 'utf-8'))

def getCount(self):
count = self.COUNT
jsonString = '{"_sig": "","count": ' + str(count) + '}'
return jsonString

def generateAlert(self):
newAlert = {}
newAlert['siteId'] = "siteId"+ str(self.COUNT)
newAlert['mesg'] = "Simulated Alert"
newAlert['when'] = int(time.time())

self.COUNT += 1

httpserver

class CustomHTTPServer(HTTPServer):
key = ''

def __init__(self, address, handlerClass=SimulationServer):
super().__init__(address, handlerClass)

def set_auth(self, username, password):
self.key = base64.b64encode(
bytes('%s:%s' % (username, password), 'utf-8')).decode('ascii')

def get_auth_key(self):
return self.key

main
Этот класс создает httpserver и прикрепляет обработчик
class RunSimulator(object):
def run(self, alertFrequency=50, port=9000):
ipAddress="127.0.0.1"
def handler(*args):
SimulationServer(ipAddress, port, alertFrequency, *args)

simulationServer = CustomHTTPServer((ipAddress, port), handler)
simulationServer.set_auth('username', 'password')

try:
simulationServer.serve_forever()
except KeyboardInterrupt:
pass

simulationServer.server_close()
print(time.asctime(), "Server Stops - %s:%s" % (ipAddress, port))

if __name__ == "__main__":
from sys import argv
simu = RunSimulator()
simu.run()


Подробнее здесь: https://stackoverflow.com/questions/484 ... et-request
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • К перекрестная проверка KFOLD в керах: модель не сбросится между складками (Mobilenet Backbone)
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Почему BaseHTTPRequestHandler rfile.read() задерживает выполнение?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Почему BaseHTTPRequestHandler rfile.read() задерживает выполнение?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между request.GET.get('username') и request.META.get('HTTP_X_ USERNAME') в DRF
    Anonymous » » в форуме Python
    0 Ответы
    150 Просмотры
    Последнее сообщение Anonymous
  • Установка строки запроса с использованием запроса Fetch GET
    Anonymous » » в форуме Jquery
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»