Подход Python к веб-сервисам и/или обработке GET и POST
Вопрос
Я уже некоторое время работаю с Python.Недавно я занялся Sockets с Twisted, который был полезен для изучения Telnet, SSH и передачи сообщений.Я хотел взять идею и реализовать ее в веб-моде.Неделя поисков, и все, что я действительно могу сделать, это создать ресурс, который обрабатывает GET и POST для себя.И мне говорят, что это плохая практика.
Итак, вопросы, которые у меня возникли через неделю:
* Являются ли другие варианты, такие как Tornado и Standard Python Sockets, лучшим (или более популярным) подходом?
* Стоит ли действительно использовать отдельные ресурсы в операциях Twisted GET и POST?
* Какой ресурс подойдет для начала в этой области разработки на Python?
Мой опыт работы с языками C, Java, HTML/DHTML/XHTML/XML, а моя основная система (даже домашняя) – Linux.
Решение
Я бы не рекомендовал создавать собственный веб-сервер и обрабатывать необработанные вызовы сокетов для создания веб-приложений;гораздо разумнее просто написать свои веб-сервисы как приложения wsgi и использовать существующий веб-сервер, будь то что-то вроде Tornado или Apache с mod_wsgi.
Другие советы
Если то, что вы делаете, больше похоже на веб-сайт, чем на API, рассмотрите возможность использования обычной веб-инфраструктуры, например Джанго.
Я постараюсь ответить на ваши различные вопросы индивидуально.
Являются ли другие варианты, такие как торнадо и стандартные розетки Python лучшим (или более популярным) подходом?
В наши дни фреймворки WSGI являются, безусловно, самыми популярными вариантами.Они могут дать вам доступ к GET
и POST
Примитивы, но часто обертывают их достаточным синтаксическим сахаром, чтобы быстро вытащить вас на гонки.
Розетками для htt мало кто занимается.Чтобы дать вам представление, одна из наиболее популярных http-библиотек: Запросы изначально завернутый urrllib2
до недавнего времени.
Стоит ли действительно использовать отдельные ресурсы в операциях Twisted GET и POST?
Я не могу об этом говорить, поскольку я не разработчик Twisted.Кажется, это язык сам по себе.
Какой ресурс подойдет для начала в этой области разработки Python?
Для обработки GETs
и POSTs
, Вебоб вероятно, это хорошее место для начала.
Для более подробного контекста: webob оборачивает базовые примитивы Python, поступающие из WSGI (рифмуется со словом «виски»).WSGI — это интерфейс между веб-приложениями и серверами, мало чем отличающийся от компьютерная графика.
ПЭП 3333, документ, определяющий стандарт WSGI, — действительно хорошая отправная точка, если вас интересуют подробности http.
Чуть ниже в стеке можно увидеть несколько серверов WSGI, которые стоит проверить.Облачные варианты платформы как услуги (PaaS), такие как Google App Engine и Хероку позаботится о деталях за вас.С другой стороны, существуют специализированные серверы wsgi, такие как пушка и Торнадо, с последним вы уже знакомы.
Если вы хотите просто сделать что-то, посмотрите Бутылка, Колба, Джанго, или любой другой замечательный веб-фреймворк Python.