Найти - Пользователи
Полная версия: Примеры из книги Марка Лутца "Начинаем программировать"
Начало » Python для новичков » Примеры из книги Марка Лутца "Начинаем программировать"
1
Mihail@
Добрый день! Изучаю Python по книге Лутца.
Работаю в Debian 10, столкнулся со следующей проблемой:
1. Создаем веб-сервер для cgi сценариев.
2. Запускаем его из терминала с рут правами
3. Запускаю html файл, который должен обратиться к .py файлу, обработать его и получить ответ.
Но вместо этого он просто пытается его сохранить. Как добиться его выполнения и ответа?
При этом .py файлу назначены права 777, прописано #!/usr/bin/python3, находится в каталоге cgi-bin
py.user.next
Mihail@
При этом .py файлу назначены права 777, прописано #!/usr/bin/python3, находится в каталоге cgi-bin
Попробуй ещё один файл создать там, в котором только самый простой код, и запустить его через браузер. Так ты поймёшь, как настроить скрипты на выполнение.

Тут приводил пример работы с cgi.
Mihail@
py.user.next
Попробуй ещё один файл создать там, в котором только самый простой код, и запустить его через браузер. Так ты поймёшь, как настроить скрипты на выполнение.
Ну а все же, с чем может это быть связано?
Проблема только в том, что при обращении к файлу, он пытается его скачать!
С чем связано именно скачивание файла?

py.user.next
Mihail@
С чем связано именно скачивание файла?
С тем, что он доступен, но не исполняется. Причин может быть несколько, поэтому тебе надо создать простейший скрипт и добиться его выполнения для начала.
Mihail@
py.user.next
Причин может быть несколько, поэтому тебе надо создать простейший скрипт и добиться его выполнения для начала.
Попробуем. Такой вот ещё вопрос, нашёл инструкцию:
“В системах BSD Unix, Python-скрипты могут выполняться непосредственно, например скрипты оболочки, поставив строку:
#!/usr/bin/env python3.5
(Если интерпретатор находится в пользовательском PATH) в начале сценария и сделала файл исполняемым. #! должны быть первыми двумя символами файла. На некоторых платформах эта первая строка должна заканчиваться в стиле Unix ('\n'), а не Windows ('\r\n') окончание. ”
Как понять в каком стиле заканчивается строка?
Если я в Windows создам питон скрипт и перенесу его в Linux. Как посмотреть в каком стиле ('\r\n' или ‘\n’) заканчивается строка #!… ?
Mihail@
py.user.next
Причин может быть несколько, поэтому тебе надо создать простейший скрипт и добиться его выполнения для начала.
Создавал я простой файл, и он отрабатывал через браузер, но потом качал аналогичный файл, созданный в винде, изменял права, дописывал строку #!…, и он не хотел запускаться, пытался его сохранить. В связи с этим и возник вопрос сообщением выше.
Mihail@
С частью вопроса разобрался.
Что бы windows файл запустить в linux, его необходимо конвертировать утилитой unix2dos (что бы вместо ‘\r\n’ стало ‘\n’ в строке #!…).
Git получается это делает автоматом?
По поводу
py.user.next
С чем связано именно скачивание файла?
Файл выполняется, когда в браузере вводишь 127.0.0.1 и выбираешь свой html файл, если же просто правой клавишей по нему и открыть в браузере, он его пытается сохранить.
Почему так происходит?


py.user.next
Mihail@
Создавал я простой файл, и он отрабатывал через браузер, но потом качал аналогичный файл, созданный в винде, изменял права, дописывал строку #!…, и он не хотел запускаться, пытался его сохранить. В связи с этим и возник вопрос сообщением выше.
Mihail@
С частью вопроса разобрался.
Mihail@
Файл выполняется, когда в браузере вводишь 127.0.0.1 и выбираешь свой html файл
Всё, теперь запускается?

Mihail@
если же просто правой клавишей по нему и открыть в браузере, он его пытается сохранить.
Почему так происходит?
Ну, потому что… потому что потому.

Попробуй в форме в атрибут action записать http://localhost/cgi-bin/peoplecgi.py .
Я скачал свой пример, записал там полный путь, запустил и открыл файл просто в браузере. Форма работает.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB