Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2017, 17:09   #1
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию Запуск скрипта .py на локальном web-сервере

Как открыть в браузере скрипт page.py, формирующий код страницы? Помещаю его в cgi-bin, и сначала просто отображается его содержимое без обработки. Если я в httpd.conf укажу
Цитата:
AddHandler cgi-script .cgi .pl .py
то при обращении в браузере по http://localhost/blog.local/cgi-bin/test.py получаю
Цитата:
Forbidden
You don't have permission to access /blog.local/cgi-bin/test.py on this server.
Почему так происходит?
fs444 вне форума Ответить с цитированием
Старый 03.08.2017, 19:26   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

У вас нет разрешения на доступ к файлу. Вам надо разрешить его исполнение.
chmod a+x test.py или если через ftp то 777
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 18.08.2017, 18:04   #3
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию

Оказывается в Python есть встроенный CGI-сервер. Расскажу, как он работает.
Создаем где нибудь, например на диске С, папку python_cgi_server.
Теперь по пути C:\python_cgi_server размещаем файл server.py с таким содержанием
Код:
from http.server import HTTPServer, CGIHTTPRequestHandler
server_address = ("", 8000)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()
Открываем командную строку Windows и пишем в ней
Цитата:
cd /
В результате попадаем в корень диска C. Затем вводим команду
Цитата:
dir
После этого в командной строке отображаются все файлы и папки, расположенные в текущей директории (т.е. на диске С, в корень которого мы только что перешли). Среди них видим папку python_cgi_server, которую создали до этого. Теперь вводим в командной строке
Цитата:
cd python_cgi_server
И тем самым переходим в эту папку. Хитрость: можно ввести начало названия (например, pyt) и затем нажать Tab. В результате командная строка сама дополнит название из тех файлов и папок, какие имеются в выбранной папке.
Теперь снова выполняем команду
Цитата:
dir
И видим в текущей папке файл server.py. Выполним его командой
Цитата:
python server.py
Результатом будет пустая строчка в командной строке. Это означает, что встроенный в Python CGI-сервер запущен.
Открываем браузер и вводим в нем адрес http://localhost:8000
Отобразится корень запущенного сервера, в котором пока лежит только server.py.
Если после этого посмотрим в командную строку, то увидим, что теперь там побежали логи действий на сервере.
Так как мы хотим запускать именно cgi-скрипты, создадим один такой скрипт. Для этого разместим в папке с файлом server.py папку cgi-bin и положим в нее cgi-скрипт. Назовем его script.py (так как писать собираемся именно на Python).
То есть в итоге у нас получится такая структура файлов и папок:
Цитата:
C:\
`---python_cgi_server
|---server.py
`---cgi-bin
`---script.py
В script.py поместим такой код
Код:
#!/usr/bin/env python3

print("Content-type: text/html; charset=windows-1251")
print()
print("<h1>Hello world!123</h1>")
Теперь в браузере перейдем по адресу http://localhost:8000/cgi-bin/script.py . Отобразится надпись "Hello world". Заметим параметр
Цитата:
charset=windows-1251
Иногда и без него все в порядке, но при наличии на странице русских символов иногда браузер не может их правильно отобразить без явного указания кодировки.
fs444 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск сайта на локальном сервере Denwer на андроид hunter0k Мобильные ОС (Android, iOS, Windows Phone) 2 25.09.2016 12:43
Запуск Python скрипта на WEB сервере lollollollol PHP 0 24.09.2014 13:52
Ссылки на локальном сервере bielov PHP 1 22.10.2013 17:09
Запуск shell-скрипта на сервере Maxx PHP 1 13.10.2012 14:57
PHP на локальном сервере. Xeon332 PHP 5 03.03.2009 16:38