Как стать автором
Обновить

Комментарии 37

Если хоть немного почитать документацию, то можно и не таки открытия сделать!
Гм, хабр мне никогда не казаля ресурсом, где всех отсылают rtfm. Плюс к этому я эту часть документации уже прочел, когда искал, хотел поделить с другими людьми.
А мне он казался тем ресурсом где сначала читают fm, а потом только открывают свой рот.
Я решил поставить вам плюс в карму, чтобы вам дольше добираться до -1го. >:-)
не беспокойтесь, -1 это относительно рейтинга, а не кармы, и там есть еще задел в пунктов 50 :)
Я боюсь мне это не по-силам. -1 это конечно круто, но обгонять Великого Создателя мне не хочется.
Он выводит stdout?
Так например?
#!/usr/bin/python
import sys
sys.stdout.write("Content-type: text/html\n<html><head></head><body>hello world</body></html&gt")
Ой, прошу прощения, там две \n а не одна.
Жуть какая. Почитайте про CGI и просто запихните скрипт в cgi-bin директорию апача.

Совет с передачей файлов через питоновый веб-сервер, ну это не лучший вариант — nc все же удобнее.
Мне создавать HTML файлы не надо. Я отношусь к другой области IT.
Просто, надо было пару не совсем корректных рсс потоков изменить некорректных из одного источника, чтобы их поняла любимая прога. Может, я об этом еще напишу. Для этого я поднимал lighttpd.
Для моих целей куда проще сделать так, как в топике, и уж тем более поднимать аппач — стрелять пушкой по воробъям.
Видимо, мне надо было написать это в топике, чтобы не давали хороших но не релевантных советов типа этого или типа тратить время на чтение мануалов не по моей части айти, которое мне в общем то нужно чтобы читать свои мануалы.
Тем не менее спасибо за совет.
Чуть не забыл, яху пайпс можно также не советовать. Он имеет баг(фичу), которая не дают сделать что мне надо (то есть дают, но зачем-то заменяют & на &amp; — да, именно на 2).
На &amp;amp то есть заменяет.
Можно так:
#!/usr/bin/python
print "Content-type: text/html"
print
print "<!doctype html>
print "<title>HTML5 Minimal Markup Example</title>"


:)

А вообще очень удивлён, что пост фактически об одной команде на главной.
Я тоже обычно простым принтом пользуюсь. Я просто не очень понял вопрос про стд-аут.
Я просто подумал что это аналог сервера приложений, например, если написаны какие-то скрипты на питоне, работающие с консолью и выводящие в нее, то можно просто по этому адресу как говорится их запустить и вывод получить. А так получается что это совсем не то, а стандартный CGI.
Хотя вообще как вам идея?
Я специально не стал делать большой топик, и попытался сделать его как можно меньше съедающим времени. У меня есть такой таракан.
Наоборот классно то что в одну строку — просто и изящно, мало ли для каких целей понадобится то, про что автор написал, меня пост порадовал с утра.
#!/usr/bin/env python

import cgi

cgi.test()
Я вот не питонист, например. Поэтому никакой эйфории от созерцания на главной подобных всё же банальных «кунг-фу» рецептов не испытываю.
Поясните, на кой чёрт нужны все эти карманные HTTP-сервера, запускаемые одной строкой/командой? Использовать их для тривиальной передачи файлов, как предлагается в комментарии по ссылке, не вижу абсолютно никакого смысла. Для этого есть куда более годные полноценные SSH/FTP/HTTP клиенты-серверы (развёртывание большинства при том в современных дистрибутивах Linux не занимает более 1 минуты) или же файлообменники.
НЛО прилетело и опубликовало эту надпись здесь
вы пишете код без тестирования на своей машине? :)
имхо, у веб-разработчиков (а кому еще нужен http-сервер) должен быть локально настроен сервер, не всегда же делать коммит а потом смотреть запустилось ли на препродакшене.
НЛО прилетело и опубликовало эту надпись здесь
Ну раз не «питонист», то и не созерцайте и внутрь топика не заходите. в чём проблема то?
Я, кстати, свой юзкейс в одном из комментов тоже описывал. Чуть подправить пару кривых рсс потоков чтобы их подхватила прога.
Ну и бред… Вообще не понимаю, зачем сегодня, в двадцать первом веке, использовать CGI, который уже много лет как пора выкинуть.
Сегодня есть такие замечательные вещи, как FastCGI (тоже уже порядком подустарел и совсем не питоний) и uWSGI, который на сегодня является лучшим способом разворачивать питоньи web-приложения.
И самое интересное, что в использовании этого нет ничего сложного. Достаточно поставить, например, flask и радоваться. Т.е. сегодня НЕТ такого юзкейса, чтобы понадобилось такое извращение. А если вы думаете, что есть, значит вы плохо разбираетесь в современных возможностях.
Ну напишите топик. Буквально пару недель назад гуглил легковесный сервер для питона, гугл посоветовал ставить лайти. Раз уж вы утрудили себя написать этот негодующий комментарий, подскажите пожалуйста, чем лучше для моего случая ставить что-то из этого чем набрать 1 комманду.
Я с этой темой разобрался около года назад и сейчас она мне не интересна. Я думаю, вы понимаете, что писать пост о том, что не интересно, это не самое приятное времяпрепровождение.
И вы немного не поняли, что я хочу сказать, а именно, не используйте CGI никогда и нигде. Это технология двадцатилетней давности, у которой есть замечательные альтернативы. Копните в сторону WSGI и конкретно PEP 333. Нужно один раз потратить время и понять, как оно работает, чтобы при виде CGI впадать в ступор со словами «Это что за твою мать? Кто ещё использует ЭТО?».
Опять же, для небольших приложений есть замечательный микро-фреймвок Flask, который для разработки имеет свой встроенный http-сервер, а на продакшен прекрасно работает через WSGI. Кстати, все основные современные фреймвоки (pyramid, zope/bb, django...) это умеют.
sudo python -m smtpd -n -c DebuggingServer localhost:25
а так почтовый сервак поднимается за 1 минуту.
и на что он будет способен? :)
Всё, что необходимо для отладки отправки email'ов, он умеет. А больше и не надо.
Ну в общем-то он создан для отладки. Действительно удобная штука, чтобы меньше спамить по реальным ящикам.
Правда без нормального боевого тестирования всё равно не обойтись, так как требуется проверить, чтобы ваша рассылка на основных сервисах в спам не попадала. У нас с этим была серьёзная проблема, потому что, например, рамблер не хотел пропускать наши письма о подтверждении регистрации.
Начал осваивать Python, при попытке запустить сервер в Windows:
>python -m CGIHTTPServer
python.exe: No module named CGIHTTPServer


При попытке запуска такого файла:

HOMEDIR = "/"
PORT = 8000

import CGIHTTPServer
import BaseHTTPServer
import os
os.chdir(HOMEDIR)

class Handler(CGIHTTPServer.CGIHTTPRequestHandler):
cgi_directories = ["/cgi"]

httpd = BaseHTTPServer.HTTPServer(("", PORT), Handler)
print("serving at port", PORT)
httpd.serve_forever()


Выдаёт:

Traceback (most recent call last):
File "server.py", line 4, in import CGIHTTPServer
ImportError: No module named CGIHTTPServer

Как решить эту проблему? В папке Lib есть файл cgi.py.
а node.js можно так одной строкой в консоли сервер запустить?
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации