Я получаю следующую ошибку только для 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 = ''
Пожалуйста, закройте этот вопрос. Я для себя разобрался. Видимо, я помещаю слишком много данных в текстовую область. Когда я отправляю вывод прямо на веб-страницу, без текстовой области, он работает нормально.