Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
18 / 7 / 0
Регистрация: 16.02.2013
Сообщений: 101

Найти ошибку в клиент-серверном приложении

13.02.2016, 21:01. Показов 1197. Ответов 12

Студворк — интернет-сервис помощи студентам
Приветствую форумчан!
Учусь по методичке с ВУЗа осваивать python.
Написал небольшое клиент-серверное приложение (клиент-серверное это преувеличено)
В роли клиента у меня выступает html страница. А в качестве серверного приложения python файл.
Установил себе WAMp (windows apache mysql php). Настроил httpd.conf что бы поддерживал файлы .py .
Проверил Hello word.py - работает. Многие программы запускал - работают. А эта чего то выеживается и выдает 500 ошибку. Пути все указаны верно (и в конфиге и к файлу python.exe)
Вроде все правильно указал (на мое мнение). Может кто-то из мудрецов тыкнет меня в ошибку. Ну или поможет строчку как-то исправить ..)

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <title>test</title>
        <script src="jquery.min.js"></script>
        <script>
            $(function()
            {
                $('#clickme').click(function(){
                    var name = prompt("Write your name!");
                    current = this;
                    $.ajax({
                        url: "http://localhost/1/lb5.py",
                        type: "post",
                        datatype:"application/json",
                        data: JSON.stringify({'key':'1','ФИО':name}),
                        success: function(response){
                            var testOne = response.test1;
                            var testTwo = response.test2;
                            var testThree = response.test3;
                            var answerO = "<br><input type='text' size='20' id='an1'>";
                            var answerT = "<br><input type='text' size='20' id='an2'>";
                            var answerTh = "<br><input type='text' size='20' id='an3'>";
                            var butt = "<br><button id='chek'>проверить</button>";
 
                            $("#testOne").html(testOne+answerO);
                            $("#testTwo").html(testTwo+answerT);
                            $("#testThree").html(testThree+answerTh);
                            $("#buttonST").hide();
                            $("#buttonP").html(butt);
                        }
                    });
 
                    console.log(testOne);
                    console.log(testTwo);
                    console.log(testThree);
 
                        $("#buttonP").on( "click", function() {
                            var an1 = $("#an1").val();
                            var an2 = $("#an2").val();
                            var an3 = $("#an3").val();
 
                            console.log(an1);
                            console.log(an2);
                            console.log(an3);
                                $.ajax({
                                    url: "http://localhost/1/lb5.py",
                                    type: "post",
                                    datatype:"application/json",
                                    data: JSON.stringify({'key':'2','an1':an1,'an2':an2,'an3':an3}),
                                    success: function(response){
                                    alert ("error");
                                        var user = "<p><b>User:</b> "+name+"<br>";
                                        var rez = "<b>Rezult:</b> ["+response.rez+"]</p>";
                            
                                        $("#testOne").html(user+rez);
                                        $("#testTwo").html("");
                                        $("#testThree").html("");
                                        $("#buttonP").html(""); 
                                        $("#buttonST").show();                                 
                                    }
                                });
                        });
                });
            });
        </script>
    </head>
    <body>
        <div id="placeHolder">
            <div id="testOne"></div>
            <div id="testTwo"></div>
            <div id="testThree"></div>
            <div id="buttonP"></div>
            <div id="buttonST">
            <button id="clickme"> Старт</button>
            </div>
        </div>
    </body>
</html>
Файл jquery.min.js у меня скачан и лежит в той же папке где и html.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!C:/Python34/python.exe
import cgi
import sys
import json
 
 
myjson = json.load(sys.stdin)
 
sys.stdout.write("Content-Type: application/json")
 
sys.stdout.write("\n")
sys.stdout.write("\n")
keyNum = int(myjson['key'])
 
if keyNum == 1:
    f = open("rezult.txt",'a+')
    nameLs = []
    nameLs.append(myjson['name'])
    f.writelines(nameLs)
    f.close()
 
    test = {}
    test['test1'] = "<p><h2>Вопрос №1</h2></p><p>Произвольное количество именованных аргументов в python обозначается:</p><p>1. **. 2. *. 3. ... .</p>"
    test['test2'] = "<p><h2>Вопрос №2</h2></p><p>Передавать в функцию параметр можно:</p><p>1. Только по ссылке. 2. Только по значению. 3. По ссылке и по значению</p>"
    test['test3'] = "<p><h2>Вопрос №3</h2></p><p>Самая медленная сортировка:?</p><p>1. Пузырьковая. 2. Двоичная. 3. Быстрая</p>"
 
 
    sys.stdout.write(json.dumps(test))
    sys.stdout.write("\n")
 
    sys.stdout.close()
 
if keyNum == 2:
    colbal = 0
    if int(myjson['an1']) == 1:
            colbal = colbal + 1
    if int(myjson['an2']) == 3:
            colbal = colbal + 1
    if int(myjson['an3']) == 1:
            colbal = colbal + 1
    
    rezult = {}
    rezult['rez'] = colbal
    sys.stdout.write(json.dumps(rezult))
    sys.stdout.write("\n")
    sys.stdout.close()
 
    f = open("rezult.txt",'a+')
    nameLs2 = []
    strSS2 = " -> Rezult:"+str(colbal)+"\n"
    nameLs2.append(strSS2)
    f.writelines(nameLs2)
    f.close()
 
    del nameLs2
 
    
else:
    nameLs = []
    strSS = "\n"
    nameLs.append(strSS)
    f.writelines(nameLs)
    f.close()
    sys.stdout.write("\n")
    sys.stdout.close()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.02.2016, 21:01
Ответы с готовыми решениями:

Как передать двузначные и более числа со знаком действия в клиент-серверном консольном приложении?
Здравствуйте! Имеется просто клиент-серверное приложение, нужно передать 2 произвольных числа и знак действия (+ / * -) на сервер и...

Медленные сокеты в клиент-серверном приложении
Написал клиент-серверное приложение. По части сетевой активности все просто: Сервер sock=socket.socket() sock.bind((ipadr,...

Сериализация в клиент-серверном приложении
Доброго времени суток. Пишу скелет простенького клиент-серверного приложения и почти сразу столкнулся со следующей проблемой - при...

12
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
13.02.2016, 21:20
Лог и файл настроек в студию.

Добавлено через 41 секунду
без этого на помощь можно особо не рассчитывать.
1
18 / 7 / 0
Регистрация: 16.02.2013
Сообщений: 101
13.02.2016, 21:30  [ТС]
Совсем про них забыл.
Хотя сам пытался в них разобрать.
Почитал и не совсем понял (даже с переводчиком) почему оно ссылается на localhost/lb5.html и на C:/wamp/www/cgi-bin/lb5.py
Вложения
Тип файла: zip apache_error.zip (170.0 Кб, 2 просмотров)
0
18 / 7 / 0
Регистрация: 16.02.2013
Сообщений: 101
13.02.2016, 21:33  [ТС]
все в один архивив скинул
Вложения
Тип файла: zip 1.zip (176.6 Кб, 1 просмотров)
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
13.02.2016, 21:53
3 проблемы
1) что то не то с кодировкой
2) гуглите вот это вот End of script output before headers , хотя возможно это следствие или причина первой проблемы
3) проверь указанные пути к файлам. На это тоже выдает ошибку.
4) Также не очень ему нравится json файл который ты ему передаешь.
П.С. даже 4-ая нашлась
0
18 / 7 / 0
Регистрация: 16.02.2013
Сообщений: 101
13.02.2016, 21:59  [ТС]
1) в какой кодировке должен быть файл .py ? ( у меня utf-8)
2) С путями то я намудрил вот лог файл с правильными путями

[Sat Feb 13 20:57:51.980580 2016] [cgi:error] [pid 5620:tid 840] [client 127.0.0.1:55228] End of script output before headers: lb5.py, referer: http://localhost/1/lb5.html
[Sat Feb 13 20:57:51.980580 2016] [cgi:error] [pid 5620:tid 840] [client 127.0.0.1:55228] AH01215: Traceback (most recent call last):\r, referer: http://localhost/1/lb5.html
[Sat Feb 13 20:57:51.980580 2016] [cgi:error] [pid 5620:tid 840] [client 127.0.0.1:55228] AH01215: File "C:/wamp/www/1/lb5.py", line 7, in <module>\r, referer: http://localhost/1/lb5.html
[Sat Feb 13 20:57:51.980580 2016] [cgi:error] [pid 5620:tid 840] [client 127.0.0.1:55228] AH01215: myjson = json.load(sys.stdin)\r, referer: http://localhost/1/lb5.html
[Sat Feb 13 20:57:51.980580 2016] [cgi:error] [pid 5620:tid 840] [client 127.0.0.1:55228] AH01215: File "C:\\Python33\\lib\\json\\__init__.p y", line 265, in load\r, referer: http://localhost/1/lb5.html
[Sat Feb 13 20:57:51.980580 2016] [cgi:error] [pid 5620:tid 840] [client 127.0.0.1:55228] AH01215: return loads(fp.read(),\r, referer: http://localhost/1/lb5.html
[Sat Feb 13 20:57:51.980580 2016] [cgi:error] [pid 5620:tid 840] [client 127.0.0.1:55228] AH01215: File "C:\\Python33\\lib\\encodings\\cp1251.py ", line 23, in decode\r, referer: http://localhost/1/lb5.html
[Sat Feb 13 20:57:51.981580 2016] [cgi:error] [pid 5620:tid 840] [client 127.0.0.1:55228] AH01215: return codecs.charmap_decode(input,self.errors, decoding_table)[0]\r, referer: http://localhost/1/lb5.html
[Sat Feb 13 20:57:51.981580 2016] [cgi:error] [pid 5620:tid 840] [client 127.0.0.1:55228] AH01215: UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 15: character maps to <undefined>\r, referer: http://localhost/1/lb5.html
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.02.2016, 22:04
ivladden, вообще не стоит время тратить на cgi, сейчас так приложения не пишут. Посмотри лучше на фреемфорки flask, django и т д
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
13.02.2016, 22:14

Не по теме:

alex925, вы слишком предсказуемы)


Товарищ алекс прав, но если желаете решить проблему по своему - это лишним не будет, даже наоборот будет полезно достаточно.

ivladden, кодировка должна быть utf8, это да. Возможно проблема тут - myjson = json.load(sys.stdin). Кодировка sys,std(in,out) в винде не utf8 ( хотя по поводу 10-ки я не знаю, но сомневаюсь, что они что то изменили). Возможно проблема в этом.
0
13.02.2016, 22:33

Не по теме:

Цитата Сообщение от Zuzik Посмотреть сообщение
вы слишком предсказуемы)
А тебя снова бомбит?

0
13.02.2016, 22:36

Не по теме:

Да, хотя я с вашим замечанием согласен.

0
18 / 7 / 0
Регистрация: 16.02.2013
Сообщений: 101
14.02.2016, 15:08  [ТС]
как исправить эту строчку?
myjson = json.load(sys.stdin)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
14.02.2016, 15:13
ivladden, декодировать полученный текст вручную
1
18 / 7 / 0
Регистрация: 16.02.2013
Сообщений: 101
14.02.2016, 19:40  [ТС]
как это реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2016, 19:40
Помогаю со студенческими работами здесь

проблемы в клиент серверном приложении
Доброго время суток! вот столкнулся с такой проблемой. пишу чат 1 на 1 в данном случае. суть проблемы в том что что бы принять...

Сериализация в клиент-серверном приложении
Есть вопрос, пишу клиент-серверное приложение ,все хорошо, но когда конектиться 2 клиент сериализация выдает ошибку в документе (1,1). Я...

Аутентификация в клиент-серверном приложении
Доброго времени суток, граждане. Делаю клиент-серверное приложение с толстым клиентом. Соединение происходит с помощью контрактов WCF....

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

Передача файлов в клиент-серверном приложении
помогите плиииз.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru