Запуск Django на OSX - PullRequest
       14

Запуск Django на OSX

1 голос
/ 13 мая 2009

Я только что закончил очень-очень хороший урок по джанго, и все прошло гладко. Одна из первых частей учебного пособия заключается в том, что в нем говорится, что не следует использовать их примерный серверный продукт в производстве, поэтому моим первым действием после учебного курса было попытаться запустить мое приложение на apache.

Я использую OSX 10.5 и имею стандартный apache (который отказывается запускать python) и MAMP (который неохотно разрешает это в cgi-bin). Проблема в том, что я не знаю, какой скрипт вызывать, в этом учебном пособии это всегда был localhost: 8000 / polls, но я не знаю, как это отобразить в конкретный файл.

Я что-то упустил из виду, что делать с файлом .htaccess, или учебник не объясняет, как его использовать где-то еще?

Ответы [ 4 ]

5 голосов
/ 13 мая 2009

Если вы не планируете перейти к производству с OS X, вы можете не захотеть. Если вы должны это сделать, перейдите прямо к mod_wsgi. Не беспокойтесь о mod_python или более старых решениях. Я сделал mod_python для Apache, и хотя теперь он работает отлично, на его настройку ушло бесчисленное количество часов.

Кроме того, просто чтобы прояснить кое-что на основе того, что вы сказали: вы не найдете соответствия между путем URL (например, / polls) и вызываемым скриптом. Джанго так не работает. С Django ваше приложение загружается в память в ожидании запросов. Как только запрос поступает, он отправляется через карту URL, созданную вами в urls.py. Это сводится к вызову функции где-то в вашем коде.

Вот почему для веб-сервера, такого как Apache, вам нужен модуль, такой как mod_wsgi, который дает вашему приложению место в памяти, в котором можно жить. Сравните это с чем-то вроде CGI, где веб-сервер выполняет определенный скрипт по требованию в месте, физически сопоставленном между URL-адресом и файловой системой.

Я надеюсь, что это полезно и не говорит вам то, что вы уже знали. :)

5 голосов
/ 13 мая 2009

Вероятно, вы не найдете особой радости при использовании .htaccess для настройки Django через Apache (хотя, признаюсь, вы, вероятно, могли бы сделать это, если вы достаточно решительны ... но для производства я подозреваю, что это будет сложнее, чем необходимо ). Я разрабатываю и запускаю Django в OS X, и он работает без проблем.

Секрет в том, что вы должны настроить httpd.conf на передачу запросов в Django с помощью одного из трех вариантов: mod_wsgi (самый современный подход), * ​​1006 * (второй вариант, но отлично работает на Python 2.5 в OS X) , fastcgi (хорошо ... если вы должны соответствовать производственной среде).

Документация по развертыванию Django содержит полезные советы и инструкции для всех трех вариантов.

Если вы используете установку Apache OS X по умолчанию, отредактируйте /etc/apache2/httpd.conf с помощью директив, найденных в документации Django выше. Я не могу говорить за MAMP, но если вы собираете Apache из исходных текстов (что очень легко в OS X, мне непонятно, почему кто-то беспокоится о MAMP ... мои недостатки показывают), отредактируйте /usr/local/apache2/conf/httpd.conf.

3 голосов
/ 13 мая 2009

Если вы планируете запускать его в производственном (или не разработанном) режиме, другой вариант - покончить с Apache и перейти на что-то более легкое, например, nginx. Но если вы занимаетесь разработкой, вам понадобится встроенный сервер и PyDev в Eclipse. Намного проще построчно просматривать код сервера в отладчике Eclipse.

Инструкция по установке nginx / Django здесь: http://snippets.dzone.com/tag/nginx

2 голосов
/ 13 мая 2009

Еще один вариант - рассмотреть возможность использования виртуальной машины для вашей разработки. Вы можете установить полную версию любой операционной системы, на которой будет работать ваш производственный сервер, например Debian, и запустить Apache и БД на ВМ.

Вы можете подключиться к виртуальному диску в Finder, так что вы все равно можете использовать TextMate (или любой другой) в OSX для редактирования.

У меня был хороший опыт работы с VMWare Fusion.

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