Веб-программирование Python

У вас есть такой код:

 this.getView().byId("oHeader").bindElement({
        path: "/contacts/" + oEvent.getParameter("arguments").personPath,
        model: "person"
    });

Но ваш xml не показывает никакого идентификатора «oHeader». Я рекомендую вам установить «bindElement» на весь вид, как показано ниже (или предоставить действительный идентификатор выше):

 this.getView().bindElement({
        path: "/contacts/" + oEvent.getParameter("arguments").personPath,
        model: "person"
    });

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

Спасибо.

12
задан Karolis 24 February 2009 в 09:15
поделиться

5 ответов

Таким образом, вот мои мысли об этом:

Я использую Вставку Python для разработки моего приложения и в конечном счете также выполнения его (или любой другой веб-сервер Python). Я обычно не использую mod_python или mod_wsgi, поскольку он делает установку разработки более сложной.

Я использую zc.buildout для управления моей средой разработки и всеми зависимостями вместе с virtualenv. Это дает мне изолированную песочницу, которая не вмешивается ни в какие модули Python, установленные в масштабе всей системы.

Для развертывания я также использую buildout/virtualenv, в конечном счете с другим buildout.cfg. Я также использую Вставку, Развертываются, и это - механизм конфигурации, где у меня есть различные файлы конфигурации для разработки и развертывания.

Поскольку я обычно выполняю paste/cherrypy, и т.д. автономный, я использую Apache, NGINX или возможно просто один только Лак перед ним. Это зависит, на каких параметрах конфигурации Вам нужно. Например, если никакой виртуальный хостинг, перепишите правила, и т.д. необходимы, то мне не нужен полнофункциональный веб-сервер впереди. При использовании веб-сервера я обычно использую ProxyPass или некоторую более сложную перезапись с помощью mod_rewrite.

Веб-платформа Python, которую я использую в данный момент, является repoze.bfg прямо сейчас btw.

Что касается Ваших вопросов о перезагрузке я знаю об этих проблемах при выполнении его с, например, mod_python, но при использовании автономной "подачи пастора... - перезагрузка" и т.д. это до сих пор работает действительно хорошо. repoze.bfg дополнительно имеет некоторую установку для того, чтобы автоматически перезагрузить шаблоны, когда они изменяются. Если платформа, которую Вы используете, имеет, который должен быть зарегистрирован.

Что касается многопоточности это обычно используется затем в веб-сервере Python. Поскольку CherryPy поддерживает это, я предполагаю, что Вы не должны волноваться, о котором, он должен использоваться автоматически. Необходимо просто в конечном счете сделать некоторые сравнительные тесты для обнаружения под тем, какое количество потоков приложение выполняет лучшее.

Надежда, которая помогает.

6
ответ дан 2 December 2019 в 06:45
поделиться

Какова лучшая установка для среды разработки?

Не очень имеет значение. Мы используем Django, который работает в Windows и Unix приятно. Для производства мы используем Apache в Red Hat.

Должен перезагрузить веб-сервер для наблюдения изменений, которые рассматривают нормальными?

Да. Не очищаются, почему Вы хотели бы что-либо различное. Программное обеспечение веб-приложения не должно быть динамичным. Содержание да. Программное обеспечение нет.

В Django мы разрабатываем, не используя веб-сервер никакого вида на нашем рабочем столе. Django "runserver" команда перезагружает приложение при большинстве обстоятельств. Для разработки это работает отлично. Времена, когда это не перезагрузит, - когда мы повредили вещи так плохо, что приложение не делает правильно.

Что лучшая установка должна развернуть рабочее приложение Python на производстве и почему?

"Лучше всего" не определено в этом контексте. Поэтому обеспечьте некоторую квалификацию для "вложенного множества" (например, "самые быстрые", "самые дешевые", "самые синие")

Действительно ли стоит погрузиться прямо с платформой или прокрутить что-то мое собственное простое?

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

Как точно приложения Python вручены, если я должен перезагрузить httpd для наблюдения изменений?

Два метода:

  • Демон - mod_wsgi или mod_fastcgi сделал, чтобы демон Python обработал, с которым они соединяются. Измените свое программное обеспечение. Перезапустите демона.

  • Встроенный - mod_wsgi или mod_python имеют встроенный режим, в котором интерпретатор Python в модификации в Apache. Необходимо перезапустить httpd для перезапуска того встроенного интерпретатора.

Я должен изучить использование многопоточного?

Да и нет. Да действительно необходимо знать об этом. Нет, Вы не должны делать очень многого. Apache и mod_wsgi и Django должны обработать это для Вас.

8
ответ дан 2 December 2019 в 06:45
поделиться

Взгляд на Google App Engine. С их веб-сайта:

Механизм Приложения Google позволяет Вам запустить свои веб-приложения на инфраструктуре Google. Приложения Механизма приложения легко создать, легкий поддержать, и легкий масштабироваться как Ваш трафик, и хранение данных должно вырасти. С Механизмом Приложения нет никаких серверов для поддержания: Вы просто загружаете свое приложение, и это готово служить Вашим пользователям.

Можно вручить приложение с помощью свободного доменного имени на домене appspot.com или использовать Google Apps для обслуживания его от собственного домена. Можно совместно использовать приложение с миром или ограничить доступ к членам организации.

Механизм приложения не стоит ничего для начала работы. Зарегистрируйтесь в бесплатной учетной записи, и можно разработать и опубликовать приложение для мира для наблюдения, бесплатно и без обязательства. Бесплатная учетная запись может использовать до 500 МБ персистентного устройства хранения данных и достаточного количества ЦП и пропускной способности приблизительно для 5 миллионов просмотров страницы в месяц.

Большая часть всех: Это включает поддержку Python, включая Django. Перейдите к http://code.google.com/appengine/docs/whatisgoogleappengine.html

2
ответ дан 2 December 2019 в 06:45
поделиться

+1 к ответу MrTopf, но я добавлю некоторые дополнительные мнения.

Веб-сервер

Apache является веб-сервером, который даст Вам большую часть конфигурируемости. Избегайте mod_python, потому что он в основном не поддерживается. С другой стороны, mod_wsgi очень хорошо поддерживается и дает Вам лучшую устойчивость (другими словами, легче настроить, чтобы CPU/использование памяти был стабилен в противоположность остроконечному и непредсказуемому).

Другое огромное преимущество, можно настроить mod_wsgi для перезагрузки приложения, если wsgi сценарий приложений затронут, никакая потребность перезапустить Apache. Для серверов разработки/тестирования можно даже настроить mod_wsgi для перезагрузки, когда любой файл в приложении изменяется. Это настолько полезно, я даже выполняю Apache+mod_wsgi на своем ноутбуке во время разработки.

Nginx и lighttpd являются наиболее часто используемыми для веб-серверов, любой путем обслуживания приложений Python непосредственно через интерфейс fastCGI (еще не беспокойтесь никакими интерфейсами WSGI на этих серверах), или при помощи их как фронтэнд перед Apache. Через вызовы в приложение проходят (по доверенности) к Apache+mod_wsgi, и затем nginx/lighttpd служат статическому содержанию непосредственно.

Nginx имеет добавленное преимущество способности служить содержанию непосредственно от memcached, если Вы хотите получить это сложное. Я услышал пренебрежительные комментарии о lighttpd, и это, действительно кажется, имеет некоторые проблемы разработки, но существуют, конечно, некоторые крупные компании с помощью него успешно.

Стек Python

На самом низком уровне можно программировать к WSGI непосредственно для лучшей производительности. Существует много полезных модулей WSGI там для помощи Вам в областях, которые Вы не хотите разрабатывать сами. На этом уровне Вы, вероятно, захотите выбрать сторонние компоненты WSGI, чтобы сделать вещи как разрешение URL и Запрос HTTP / обработка ответа. Большим компонентом запроса/ответа является WebOb.

При рассмотрении Опор, Вы видите их идею "лучших среди аналогов" компонентов WSGI и платформы, которая помогает, чем Django выбрать Ваши собственные компоненты как шаблонная обработка механизма.

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

6
ответ дан 2 December 2019 в 06:45
поделиться

Когда Вы используете mod_python на потоковом сервере Apache (значение по умолчанию в Windows), CherryPy работает в том же процессе как Apache. В этом случае Вы почти наверняка не хотите, чтобы CP перезапустил процесс.

Решение: использовать mod_rewrite или mod_proxy так, чтобы CherryPy работал в его собственном процессе. Затем можно автоперезагрузить к содержанию основы.:)

1
ответ дан 2 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: