Как создать простой веб-сайт с Python? - PullRequest
21 голосов
/ 21 апреля 2010

Как создать простой веб-сайт с Python?

Я имею в виду очень просто, например, вы видите текст «Hello World», и есть кнопка «submit», которая (onClick) покажет ajax box «успешно отправлено».

Я хочу начать разрабатывать некоторые вещи с помощью Python, и я не знаю, с чего начать.

Ответы [ 6 ]

11 голосов
/ 21 апреля 2010

Я надеялся, что на этот вопрос будут даны более сложные ответы, так как это деликатный вопрос. Веб-разработка на Python разбита на множество фреймворков, каждая из которых имеет свои взлеты и падения, и каждый разработчик использует свою собственную. Это довольно неудачно. Что вы должны знать:

  • Используйте WSGI. Больше ничего не используйте, WSGI - это новейший стандарт веб-разработки на Python;
  • Не разрабатывайте прямо поверх WSGI, если вам действительно не нужно (даже для приложения hello world);
  • Используйте каркас, который наилучшим образом соответствует вашим потребностям:
    • Я играл с Werkzeug (который на самом деле не платформа, они называют это toolkit ), потому что он действительно простой, но мощный. Он позволяет вам работать на уровне WSGI (также помогает понять, как работает WSGI), предоставляя при этом действительно полезные функции и помощников. На веб-сайте Werkzeug вы также найдете полезные учебные пособия и тому подобное.
    • Вероятно, наиболее популярный фреймворк - Django . Никогда не использовал его, но, возможно, есть причина, почему он так популярен.

В заключение, используйте то, что ближе к вашему сердцу.

4 голосов
/ 21 апреля 2010

Вы можете написать веб-сайт на Python, на котором веб-сервер реализован на Python или на котором Python вызывается с какого-либо другого веб-сервера. Если вы еще не настроили веб-сервер, первый вариант проще. Библиотека Python включает в себя полнофункциональный веб-сервер, все что вам нужно, это добавить пару методов для ответа на запросы.

Полный пример веб-сайта, использующего эту простую технику, см. Создание простого веб-сервера на Python

Этот метод может быть полезен или не подходит для разработки коммерческих, производственных веб-сайтов, но это самый простой путь от P (ython) до W (ebsite).

3 голосов
/ 12 марта 2013

Вы можете пройти этот курс БЕСПЛАТНО на udacity Веб-разработка на Python . Это отличный курс и учит с нуля, используя GAE. В конце курса у вас будет полноценный блог в сети, разработанный вами на python.

П.С. Один из инструкторов - основатель Reddit Стив Хаффман.

3 голосов
/ 21 апреля 2010

Почему бы вам не попробовать Google AppEngine? Они предоставляют вам локальную среду (которая работает в вашей локальной системе) для разработки приложения. У них есть хороший, простой вводный материал для запуска и запуска сайта - ваш пример «здравствуй, мир» будет тривиальным для реализации.

С этого момента вы можете либо пойти с какой-то другой платформой (используя то, что вы узнали, так как ванильные приложения AppEngine довольно стандартны для простых веб-фреймворков на Python), либо продолжить работу с другими вещами, которые предоставляет Google (например, размещение вашего приложения для тебя ...)

3 голосов
/ 21 апреля 2010

Как предложил Феликс , определенно используйте WSGI ( mod_wsgi ) в качестве интерфейса шлюза. Это современный способ ведения бизнеса, и другой главный конкурент, mod_python , больше не поддерживается.

Django - отличный выбор, если вам нужна полноценная структура качества производства, но она также обходится ценой больших накладных расходов и довольно крутой кривой обучения.

Мое предложение: Торнадо !

Я обнаружил, что «Торнадо» позволяет очень быстро начать работать. Чтобы проиллюстрировать это, «Hello, World» из документации Tornado:

import tornado.httpserver
import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start() 

По-моему, это говорит само за себя.

Редактировать: Важно отметить, что у вас нет для использования веб-сервера, который поставляется с Tornado. очень легко подключается к WSGI для работы с любым сервером, который у вас уже есть.

Удачи в поиске!

2 голосов
/ 21 апреля 2010

Я думаю, вы должны начать с какой-то веб-платформы Python. Для меня Web2Py легок и силен. Конечно, вы можете создавать свои страницы, используя CGI: не требуется фреймворк, но для более сложных сайтов это не практично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...