Почему я получаю сообщение об ошибке django соединение прервано - PullRequest
0 голосов
/ 21 июня 2020

Я получаю следующую ошибку только для 10 записей di git phonenumber. Программа отлично работает для 9 и менее цифр. Может ли это быть проблема с переполнением памяти? Если да, то как увеличить объем выделенной памяти в 3 раза? Спасибо.

[21/Jun/2020 11:49:56] "POST /? HTTP/1.1" 200 414816
the request
<WSGIRequest: POST '/'>
in funct phonenumber retrieved = 1234567890
just a test of list(phonenumber):
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
isDigit true for 1234567890
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 64996)
[21/Jun/2020 11:50:02] "GET /? HTTP/1.1" 200 1464
Traceback (most recent call last):
  File "d:\python\lib\socketserver.py", line 650, in process_request_thread
    self.finish_request(request, client_address)
  File "d:\python\lib\socketserver.py", line 360, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "d:\python\lib\socketserver.py", line 720, in __init__
    self.handle()
  File "C:\Users\dougl\Envs\my_django_environment\lib\site-packages\django\core\servers\basehttp.py", line 171, in handle
    self.handle_one_request()
  File "C:\Users\dougl\Envs\my_django_environment\lib\site-packages\django\core\servers\basehttp.py", line 179, in handle_one_request
    self.raw_requestline = self.rfile.readline(65537)
  File "d:\python\lib\socket.py", line 669, in readinto
    return self._sock.recv_into(b)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine

Вот мой запущенный код view.py. Мне нужно добавить больше текста, чтобы это изменение было принято stackoverflow. Я предполагаю, что ошибка имеет какое-то отношение к самому внутреннему уровню вложенных циклов, потому что я получаю сообщение об ошибке только в том случае, если logi c попадает туда с номером телефона 10 di git. (Благодарю Иана за ваш ответ, интерес и помощь.)

from django.shortcuts import render

WrdFmPhn = ''
WrdLev0 = ''
WrdLev1 = ''
WrdLev2 = ''
WrdLev3 = ''
WrdLev4 = ''
WrdLev5 = ''
WrdLev6 = ''
WrdLev7 = ''
WrdLev8 = ''
WrdLev9 = ''

# Create your views here.
def home(request):
    if request.method == 'POST':
        print ('the request')
        print (request)
        data = request.POST['phonenumber']
        #cleanedNumber= home.cleaned_data['phonenumber']
        #print (cleaned_data)
        test_output = 'test output'


        numToLetMap = [['0', '0', '0'], ['1', '1', '1'], ['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ['j', 'k', 'l'], ['m', 'n', 'o'], ['p', 'r', 's'], ['t', 'u', 'v'], ['w', 'x', 'y']]
        GlobalVarPhoneNumber = ''
        GlobalArrayOfWords = []
        WordCharArray = []
        WrdFmPhn = ''
        WrdLev0 = ''
        WrdLev1 = ''
        WrdLev2 = ''
        WrdLev3 = ''
        WrdLev4 = ''
        WrdLev5 = ''
        WrdLev6 = ''
        WrdLev7 = ''
        WrdLev8 = ''
        WrdLev9 = ''
        finalWrd = ''

        GlobalArrayOfWords = []
        #pleasewait.style.setPropertyValue('opacity', 1.0)
        #console.log(document.querySelector('#phonenumber'))
        GlobalVarPhoneNumber = data 
        print('in funct phonenumber retrieved = ' + GlobalVarPhoneNumber)  
        phoneNumberLength = len(GlobalVarPhoneNumber)
        #alert('phone number length = ' + phoneNumberLength)
        #start building an array of choices for this number
        ChoiceArray = [] # reset for start of new choice array
        #alert('char is ' + digitInPhnNum)
        #check if digits are all numeric
        print('just a test of list(phonenumber): ')
        print(list(GlobalVarPhoneNumber))
        if not GlobalVarPhoneNumber.isdigit(): 
            print('isDigit false for ' + GlobalVarPhoneNumber)  

            #alert(digitInPhnNum + ' is not a number')
            GlobalArrayOfWords = 'Non-numeric input.'
        else:
            #alert(digitInPhnNum + ' IS a number')
            #console.log(numToLetMap[digitInPhnNum])
            print('isDigit true for ' + GlobalVarPhoneNumber)  
            PhoneNumberAsList = [] 
            PhoneNumberAsList[:] = GlobalVarPhoneNumber 
            for digitInPhnNum in PhoneNumberAsList:
                ChoiceArray.append(numToLetMap[int(digitInPhnNum)])


            #console.log(ChoiceArray)
            WrdLev0 = ''
            if phoneNumberLength < 1:  
                FinalizeWord(WrdLev0, GlobalArrayOfWords)  
            else:
                for Letr in ChoiceArray[0]:
                    WrdLev0 += Letr
                    #console.log('WrdLev0 is now ' + WrdLev0)
                    if phoneNumberLength < 2:  
                        FinalizeWord(WrdLev0, GlobalArrayOfWords)  
                    else:
                        for Letr in ChoiceArray[1]:
                            WrdLev1 = WrdLev0 + Letr
                            #console.log('inner WrdLev1 is now ' + WrdLev1)
                            if phoneNumberLength < 3:  
                                FinalizeWord(WrdLev1, GlobalArrayOfWords)  
                            else:
                                for Letr in ChoiceArray[2]:
                                    #pleasewait.innerHTML += '.' 
                                    WrdLev2 = WrdLev1 + Letr
                                    #console.log('inner WrdLev2 is now ' + WrdLev2)
                                    if phoneNumberLength < 4:  
                                        FinalizeWord(WrdLev2, GlobalArrayOfWords)  
                                    else:
                                        for Letr in ChoiceArray[3]:
                                            WrdLev3 = WrdLev2 + Letr
                                            #console.log('inner WrdLev2 is now ' + WrdLev2)
                                            if phoneNumberLength < 5:  
                                                FinalizeWord(WrdLev3, GlobalArrayOfWords)  
                                            else:
                                                for Letr in ChoiceArray[4]:
                                                    WrdLev4 = WrdLev3 + Letr
                                                    #console.log('inner WrdLev2 is now ' + WrdLev2)
                                                    if phoneNumberLength < 6: 
                                                        FinalizeWord(WrdLev4, GlobalArrayOfWords)  
                                                    else:
                                                        for Letr in ChoiceArray[5]:
                                                            WrdLev5 = WrdLev4 + Letr
                                                            #console.log('inner WrdLev2 is now ' + WrdLev2)
                                                            if phoneNumberLength < 7:  
                                                                FinalizeWord(WrdLev5, GlobalArrayOfWords) 
                                                            else:
                                                                for Letr in ChoiceArray[6]:
                                                                    WrdLev6 = WrdLev5 + Letr
                                                                    #console.log('inner WrdLev2 is now ' + WrdLev2)
                                                                    if phoneNumberLength < 8:  
                                                                        FinalizeWord(WrdLev6, GlobalArrayOfWords) 
                                                                    else:
                                                                        for Letr in ChoiceArray[7]:
                                                                            WrdLev7 = WrdLev6 + Letr
                                                                            #console.log('inner WrdLev2 is now ' + WrdLev2)
                                                                            if phoneNumberLength < 9: 
                                                                                FinalizeWord(WrdLev7, GlobalArrayOfWords) 
                                                                            else:
                                                                                for Letr in ChoiceArray[8]:
                                                                                    WrdLev8 = WrdLev7 + Letr
                                                                                    #console.log('inner WrdLev2 is now ' + WrdLev2)
                                                                                    if phoneNumberLength < 10:  
                                                                                        FinalizeWord(WrdLev8, GlobalArrayOfWords)  
                                                                                    else:
                                                                                        for Letr in ChoiceArray[9]:
                                                                                            WrdLev9 = WrdLev8 + Letr
                                                                                            #console.log('inner WrdLev2 is now ' + WrdLev2)


                                                                                            # outputting final word
                                                                                            #console.log('word = ' + WrdLev9)
                                                                                            FinalizeWord(WrdLev9, GlobalArrayOfWords) 
                                                                                            #GlobalArrayOfWords.append(WrdLev9)

                    ReInitializeWords()  #reinitializing for next word
                    WrdFmPhn = ''
                    WrdLev0 = ''
                    WrdLev1 = ''
                    WrdLev2 = ''
                    WrdLev3 = ''
                    WrdLev4 = ''
                    WrdLev5 = ''
                    WrdLev6 = ''
                    WrdLev7 = ''
                    WrdLev8 = ''
                    WrdLev9 = ''
                
            
            #console.log(GlobalArrayOfWords)
            #document.querySelector('#output').value = GlobalArrayOfWords
            #document.body.style.cursor = 'default'
            #pleasewait.display = 'none'
            #pleasewait.style.display.opacity = '0'


        return render(request,'PhnToWrd/home.html',{'input':data, 'output':GlobalArrayOfWords})
    else:
        return render(request,'PhnToWrd/home.html')


def FinalizeWord (finalWrd, GlobalArrayOfWords):

    # outputting final word
    #console.log('word = ' + finalWrd)
    GlobalArrayOfWords.append(finalWrd)
    

def isDigit(n):
    return not not ([not 0, not 0, not 0, not 0, not 0, not 0, not 0, not 0, not 0, not 0][n])

    
def ReInitializeWords():
     WrdFmPhn = ''
     WrdLev0 = ''
     WrdLev1 = ''
     WrdLev2 = ''
     WrdLev3 = ''
     WrdLev4 = ''
     WrdLev5 = ''
     WrdLev6 = ''
     WrdLev7 = ''
     WrdLev8 = ''
     WrdLev9 = ''

Пожалуйста, закройте этот вопрос. Я для себя разобрался. Видимо, я помещаю слишком много данных в текстовую область. Когда я отправляю вывод прямо на веб-страницу, без текстовой области, он работает нормально.

1 Ответ

0 голосов
/ 22 июня 2020

Пожалуйста, закройте этот вопрос. Я для себя разобрался. Видимо, я помещаю слишком много данных в текстовую область. Когда я отправляю вывод прямо на веб-страницу, без текстовой области, он работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...