wiz 06.02.2011 15:21
Похожие на wiz — Веб-сервер своими руками. Часть 2 — наводим порядок.
wiz 02.02.2011 16:59
Python — Веб-сервер своими руками. Часть 3 — фиксим фичи, добавляем баги
В предыдущей части мы сделали инстурменты для тестирования серверного кода без участия сокетов. Но это получился самый тривиальный из видов тестов — Smoke Test. Сервер запрос обработал, но что именно произошло остаётся загадкой.Как мы помним из кода, липовое соединение содержит в себе буфер отправленного, в котором оказывается ответ сервера. Можно было бы его сравнить с эталонной строкой, но каждый раз её составлять неудобно и муторно. Поэтому неплохо было бы его распарсить.
Но один раз у нас уже кто-то что-то парсит, а именно — сервер, при получении запроса от клиента. Внимательно посмотрев на траффик можно обнаружить, что протокол практически симметричен. И клиент и сервер обмениваются «сообщениями», состоящими из одних и тех же элементов: строка запроса или ответа (формат одинаковый, немного отличается содержимое), заголовки (формат одинаковый) и тело (необязательное для клиента при GET и для сервера при всяких хитрых статусах).
В то же время, наш тестовый клиент уже содержит генератор запросов, преобразующий аргументы функции согласно протоколу.
wiz 01.02.2011 11:05
Python — Веб-сервер своими руками
Многие уже писали себе «сайты» или планируют ими заняться, но при этом плохо представляют себе что же это такое - сайт. Серия постов посвящена построению с нуля учебного (а не супер-быстрого или супер-фичастого) сервера, на примере которого, постараемся разобрать разные практические вопросы из жизни разработчика. Первая, вступительная, часть публичная т.к. возможно многим будет интересно «как это всё устроено». Код на питоне, но это практически псевдокод на английском, поэтому ни у кого тут сложностей возникнуть не должно. Остальные части скорее всего будут показываться только для участников питоноблога.Сайт это такой многослойный торт, напичканый самыми разными видами крема кода. Давайте посмотрим, что происходит, когда пользователь набирает в браузере http://example.com/ и зачем.
wiz 16.12.2010 00:45
Python — «Практическая» задачка для начинающих
Периодически в каналах и сайтах новички просят дать им простую задачку, но чтобы она была полезной. Что меня последнее время коробит в «изучении языков» в институтах и всяких учебниках, это то, что там учат буквально синтаксису языка и очень часто упускают «инженерный» аспект программирования в целом.Поэтому вот такая задачка для питона: напишите реализацию сортировки quicksort.
Я не буду тут рассказывать этот алгоритм, найдите его сами. Это и будет первым уроком. Гугл ваш другл отныне и до конца статьи.
Замечу только, что не надо использовать list comprehensions, это очень неэффективно.
Но это ещё не все. Самое интересное начинается потом. Ведь программирование, как оно преподаётся это прямо таки изобразительное искуство — пара мазков и на холсте появляется ваша Нетленка. Но архитектура тоже была дисциплиной ИЗО, до тех пор пока не рухнул мост, построеный в таком стиле.
wiz 18.01.2011 22:13
Я рекомендую — Монтирование через сеть для win/mac/lin и браузера
http://code.google.com/p/wsgidav/Наконец-то сделали наормальный WebDAV сервер и библиотеку расширения к нему. Можно смело шарить в ro и rw, с авторизацией и без файловые системы и каталоги чего угодно. Получается такая как бы FUSE, но через сеть.
08.12.2010 21:40
RANUX — Модульное тестирования в Python на примере копирования файлов
На днях встала задача написать скрипт копирующий новые файлы из одной директории в другую и пропускать ранее скопированные. Если возникают какие-либо ошибки, то все они записываются в лог.Хочу обратить ваше внимание, что все тестовые методы изолированны друг от друга, так что если сломается один метод, то другие продолжат выполняться. А так же методы setUp и tearDown подготавливают среду для выполнения тестов.
m0Ray 23.11.2010 14:45
How-to`s — HTTP-сервер: виртуальные хосты быстро и просто
Преимущества описываемого решения
1) Нет необходимости менять конфигурацию сервера при добавлении и удалении новых хостов.
2) Добавлять/удалять хосты можно "на лету", без перезапуска сервера.
Как это работает
При выполнении HTTP-запроса клиент передаёт серверу заголовок Host, содержащий имя хоста. Сервер ищет подкаталог с таким именем в указанном в конфиге каталоге. Если такой каталог существует, он принимается в качестве корневого. Если нет - в зависимости от настроек показывается хост по умолчанию или возвращается ошибка (например, 404).
evgenyl 13.08.2009 11:40
Python — Google переводчик
Захотелось поддержать блог о питоне, накидал простой пример переводчика используя сервис google translate.Все очень просто, в трее висит иконка, по нажатию на нее появляется окно, пишем в нем текст на английском, enter и в нем же видим перевод на русском языке.
Жмем еще раз по иконке окно исчезает, правая кнопка по иконке выход.
Это всего лиш пример того что можно делать на питоне.
Исходный код