Что делать после запуска simple_server? - PullRequest
1 голос
/ 26 июня 2009

Для быстрого ознакомления, я XHTML / CSS парень с некоторыми базовыми знаниями PHP. Я пытаюсь погрузиться в пул Python и до сих пор понимаю, как запустить simple_server и получить доступ к простому возвращению Hello World в том же файле .py. Это степень того, что я понимаю, хотя, хе.

Как мне интегрировать simple_server и ваши базовые файлы XHTML / CSS? Я хочу запустить сервер и автоматически вызвать, например, index.py (это должен быть .py?). Очевидно, что в индексном файле у меня будет разметка и таблица стилей, и я буду работать с ней как с обычным сайтом.

Моя конечная цель - создать базовую доску объявлений (публиковать, редактировать, удалять, пользовательские сессии). Я понимаю, что мне нужен доступ к базе данных, и я достаточно разбираюсь в MySQL, чтобы не беспокоиться об этих частях.

Спасибо за помощь.

РЕДАКТИРОВАТЬ: Позвольте мне уточнить мою цель, как мне сказали, Python делает гораздо больше, чем PHP. Моя цель - начать встраивать простые веб-приложения в мои ранее созданные статические страницы XHTML. Очевидно, что с PHP вы просто убедитесь, что он установлен на вашем сервере, и вы начинаете писать код. Я хотел бы знать, насколько отличается Python в этом смысле, и что я должен сделать, скажем, чтобы написать простую доску объявлений на Python.

Ответы [ 5 ]

3 голосов
/ 26 июня 2009

Другие ответы дают хорошие рекомендации относительно того, что вы, вероятно, хотите сделать для достижения своей «конечной цели», но, если вы сначала хотите остаться с wsgiref.simple_server в течение поучительного времени, вы можете сделать это тоже. WSGI является решающим «связующим звеном» между веб-серверами (не только простым, конечно, в wsgiref - реальными, такими как Apache или Nginx [оба с соответствующими модулями, называемыми mod_wsgi], а также, например, Google App Engine - тот, который также предлагает WSGI в качестве основного API) и веб-приложения (и платформы, которые облегчают написание таких приложений).

Каждый рекомендует вам различные фреймворки, но понимание WSGI не повредит (так как оно будет лежать в основе любой фреймворк, который вы в конечном итоге выберете). И с целью такого понимания wsgiref.simple_server прослужит вам еще немного, если хотите.

По сути, вы хотите написать WSGI app - функцию или класс, который принимает два параметра (словарь "enviroment" и вызываемый "start response", который он должен перезвонить с помощью status и headers перед тем, как возвращение тела ответа). Ваше "приложение WSGI" может открыть ваш index.py или что угодно еще, чтобы подготовить статус, заголовки и тело, которое он возвращает.

Существует гораздо больше возможностей для WSGI (концепция middleware особенно мощна), хотя, конечно, вам не нужно понимать это очень глубоко - только настолько глубоко, насколько вам интересно! См. wsgi.org для учебных пособий и пр. Мне кажется, что особенно интересна статья Гарднера, состоящая из двух частей: .

Как только (и если это ваш выбор) вы понимаете WSGI, вы можете лучше решить, хотите ли вы все это скрыть в инфраструктуре более высокого уровня, такой как Django (чтобы вы могли вместо этого сосредоточиться на проблемах уровня приложения), или использовать очень легкий и модульный инструментарий утилит WSGI, таких как Werkzeug - или что-нибудь промежуточное! -)

3 голосов
/ 26 июня 2009

Я бы порекомендовал Джанго .

1 голос
/ 26 июня 2009

«Очевидно, что с PHP вы просто убедитесь, что он установлен на вашем сервере, и вы начинаете писать код.»

Не верно для Python. Python - это просто язык, а не плагин Apache, такой как PHP.

Как правило, вы можете использовать что-то вроде mod_wsgi для создания подключаемого модуля Python для Apache. Вы обнаружите, что обработка веб-страницы включает в себя много шагов, ни один из которых не является частью языка Python .

Вы должны использовать библиотеки расширений или среду для обработки веб-запросов в Python. [В этот момент некоторые PHP-люди спрашивают, почему Python так популярен. И причина в том, что у вас есть выбор, какую библиотеку или среду использовать.]

PHP анализирует запрос и позволяет встроить код в полученную страницу.

Платформы Python - обычно - не работают таким образом. Большинство структур Python разбивают операцию на несколько этапов.

  1. Парсинг URL и поиск соответствующего фрагмента кода.

  2. Выполнение кода для получения объектов данных результата.

  3. Интерполяция полученных объектов данных в шаблоны HTML.

«Моя цель - начать встраивать простые веб-приложения в мои ранее созданные статические страницы XHTML.»

Давайте посмотрим, как вы это сделаете в Django .

  1. Создание проекта Django.

  2. Создание приложения Django.

  3. Превратите свои страницы XTHML в шаблоны Django. Вытащите динамический контент и вставьте {{ somevariable }} маркеры. В зависимости от динамического содержимого это может быть простым или довольно сложным.

  4. Определите URL для просмотра отображений функций в файле urls.py.

  5. Определите функции просмотра в файле views.py. Эти функции представления создают динамический контент, который идет в шаблоне, и какой шаблон отображать.

На этом этапе вы сможете запустить сервер, запустить браузер, выбрать URL-адрес и увидеть, что ваш шаблон отображается.

"написать простую доску объявлений на Python."

Давайте посмотрим, как вы это сделаете в Django .

  1. Создание проекта Django.

  2. Создание приложения Django.

  3. Определите модель данных в models.py

  4. Записать модульные тесты в tests.py. Проверьте методы вашей модели, чтобы убедиться, что все они работают правильно.

  5. Играть со встроенными страницами администратора.

  6. Создание шаблонов Django.

  7. Определение URL-адреса для просмотра сопоставлений функций в файле urls.py.

  8. Определите функции просмотра в файле views.py. Эти функции представления создают динамический контент, который идет в шаблоне, и какой шаблон отображать.

1 голос
/ 26 июня 2009

Взгляните на CherryPy . Это хорошая структура http.

0 голосов
/ 26 июня 2009

Зависит от того, чего вы хотите достичь,

а) Вы хотите просто написать веб-приложение, не слишком заботясь о том, что происходит в фоновом режиме, как обрабатывается запрос или как обрабатываются шаблоны, чем для веб-фреймворка Goo, существует множество вариантов, которыми может быть простой http-сервер. НЕ один из них. например использовать django, турбогир, webpy, cheerpy, пилоны и т. д. и т. д. см http://wiki.python.org/moin/WebFrameworks для полного списка

б) если вы хотите разработать простой веб-фреймворк с самого начала, чтобы вы понимали внутреннее и улучшали свои знания Python, то я предлагаю использовать простой http-сервер см

  1. как создать схему URL-адресов, чтобы URL-адреса отправлялись для исправления функции python,
  2. Посмотрите, как вы можете сделать HTML шаблон, например содержащее место переменные-держатели $ title и т. д., которые вы можете преобразовать в строку, используя string.Template

б) это будет трудное, но интересное упражнение, а) поможет вам начать работу, и вы можете писать веб-приложения через пару дней

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