Страница 1 из 1

web приложения на python

Добавлено: Вт, 19 мая 2015, 11:34:33
dyvniy

Добавлено: Ср, 10 июня 2015, 18:40:07
dyvniy
Простой http сервер питона
http://linewb.moy.su/publ/set_internet/prostoj_ht ... r_pri_pomoshhi_python/9-1-0-40
Спойлер
Если вам нужно быстро запустить web-сервер и вы не желаете разбираться с настройкой Apache или чем-либо подобным, то вам несомненно сможет помочь Python.
Python поставляется вместе с простым встроенным HTTP сервером. При помощи этого маленького HTTP сервера вы можете включить любой из каталогов вашей системы в директорий вашего web сервера. Для этого вам нужно всего лишь малость - установить Python.

По правде говоря, это очень полезно для того, чтобы, например, сделать общедоступными кое-какие файлы и каталоги в вашей локальной сети.
Установить и запустить этот крошечный, но тем не менее весьма полезный HTTP сервер, очень просто. Нужно всего лишь перейти в целевой каталог выполнить одну однострочную команду.

Итак, предположим, что нам нужно "расшарить" каталог /home/myshare и IP адрес компьютера 192.168.1.2

Запускаем Терминал и выполним команды:

$ cd /home/myshare
$ python -m SimpleHTTPServer

Готово! Сейчас ваш HTTP сервер запустится по порту 8000. Вы получите сообщение:

Serving HTTP on 0.0.0.0 port 8000 ...

Теперь откройте браузер и наберите в нем web адрес:

http://192.168.1.2:8000

Вы также можете доступится туда же по адресу:

http://127.0.0.1:8000

Если в директории /home/myshare (ее вы указывали как цель для сервера выше), есть файл с именем index.html, то этот файл будет служить как основной (home). Если же там не было файла index.html, то отобразится список файлов этого каталога.

Если вы хотите сменить порт, который используется, то запустите программу командой:

$ python -m SimpleHTTPServer 8080

Если же вам нужно работать только на localhost, нужно написать небольшую програмку на Python, например такую:

Код: Выделить всё

---
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler

HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"

if sys.argv[1:]:
    port = int(sys.argv[1])
else:
    port = 8000
server_address = ('127.0.0.1', port)

HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)

sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()
--- 


Кстати, это все еще должно работать и под Windows и Cygwin.

Добавлено: Чт, 27 апреля 2017, 16:39:16
dyvniy
Свой CGI сайт на питне
https://pythonworld.ru/web/cgi-1.html

Код: Выделить всё

python3 -m http.server --cgi
Для сидящих на Windows чуть проще будет запуск Python файла (заметьте, что он должен находиться в той же папке, в которой мы планируем работать!):

from http.server import HTTPServer, CGIHTTPRequestHandler
server_address = ("", 8000)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()

hello.py

Код: Выделить всё

#!/usr/bin/env python3
print("Content-type: text/html")
print()
print("<h1>Hello world!</h1>")

Как корректно остановить встроенный python сервер (на linux)? При остановке с помощью Ctrl+Z, его повторный запуск невозможен (без перезагрузки), видимо, потому что при таком завершении не освобождается используемый порт.
Нужно найти процесс, который захватил этот порт и прибить его. netstap -ap | grep 8000 затем kill -9 pid_процесса