Как мне не удается добавить элемент в список? - PullRequest
0 голосов
/ 23 июня 2018

У меня есть старомодный скрипт Python CGI, который предназначен для разрешения произвольного числа сохраненных вопросов, а также для каждого вопроса произвольное количество сохраненных ответов. Я пытался сохранить второй ответ для тестового вопроса, указав его в списке как индекс 1, но (предполагаемое) назначение, похоже, ничего не делает.

Функция для анализа значений CGI (значение, которое не сохраняется saved_0_2),

def save_values():
    sys.stderr.write('save_values()\n')
    if get_cgi('submitted'):
        sys.stderr.write('submitted')
        sys.stderr.write(repr(cgi_form.keys()) + '\n')
        for key in cgi_form.keys():
            try:
                parts = key.split('_')
                entry = int(parts[1])
                slot = int(parts[2])
                if slot == 0:
                    saved['entries'][entry][1] = get_cgi(key)
                else:
                    sys.stderr.write('Entry: ' + str(entry))
                    sys.stderr.write('Slot: ' + str(slot))
                    sys.stderr.write(get_cgi(key))
                    sys.stderr.write(repr(saved['entries'][entry][2]))
                    saved['entries'][entry][2][slot - 1] = get_cgi(key)
                    sys.stderr.write(repr(saved['entries'][entry][2]))
            except IndexError:
                pass
        saved['index'] += 1
        sys.stderr.write(repr(saved) + '\n')
        cPickle.dump(saved, open(STORAGE + '.' + str(os.getpid()), 'w'))
        os.rename(STORAGE + '.' + str(os.getpid()), STORAGE)
    if get_cgi('entry'):
        open(ACCESS, 'a').write('Statement: ' +
          saved['entries'][int(get_cgi('entry'))][1] + '\n' + 'Response: ' +
          get_cgi('response') + '\n\n')

Вывод в журнале Apache с saved_0_2, заполненным "Это есть.", Является:

[Sat Jun 23 13:07:57.215372 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: Starting...: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.219428 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: load_saved(): /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.219710 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: save_values(): /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.219842 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: submitted: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220047 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: ['saved_0_0', 'saved_0_1', 'saved_0_2', 'submitted']: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220188 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: Entry: 0: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220274 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: Slot: 1: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220370 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: Times are HARD.: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220463 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: ['Times are HARD.']: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220563 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: ['Times are HARD.']: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220643 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: Entry: 0: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220733 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: Slot: 2: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220811 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: It is.: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.220901 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: ['Times are HARD.']: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi
[Sat Jun 23 13:07:57.221079 2018] [cgi:error] [pid 2443:tid 2995739456] [client 127.0.0.1:41156] AH01215: {'index': 41, 'entries': [[0, "It's tough.", ['Times are HARD.']]]}: /home/paul/paulshukin.com/empathy_edit.cgi, referer: http://localhost/empathy_edit.cgi

Но в следующий раз страница загружается без элемента индекса 1 в массив с существующим ответом. Кроме того, в рутине сохранения меня поражает компьютерный вирус правительственного экономиста. Все говорит, что у меня есть значение, которое я хочу, чтобы второй (индекс 1) элемент был добавлен в список, но назначение, похоже, не меняет список, и это до выбора и сохранения.

Спасибо за любую помощь ...

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