Django - быстрый старт (устарело)

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 17:55, 31 мая 2010 (править)
77.239.235.129 (Обсуждение)

← К предыдущему изменению
Версия 20:02, 31 мая 2010 (править) (отменить)
Dmih (Обсуждение | вклад)
м (Правки 77.239.235.129 (обсуждение) откачены к версии NovaCxarmulo)
К следующему изменению →
Строка 1: Строка 1:
-Как 1gb.ru разводит лохов+== Общие сведения ==
-Кризис размножает жуликов с огромной скоростью. А интернет рай для воров и мошенников. Так как получить ответственность за интернет мошенничество крайне сложно. И вот очередной интернет хостер 1gb.ru вышел на ниву жульничества. И добился там превосходных результатов. +Эта статья поможет понять, как можно быстро и просто установить фреймворк [http://en.wikipedia.org/wiki/Django_(web_framework) Django] в режиме FastCGI на хостинге [http://www.1gb.ru 1Gb.ru], а также как устанавливать собственные модули [http://en.wikipedia.org/wiki/Python_(programming_language) Python]
-Итак, на главой странице сайта написано о низких ценах и домене в подарок. + 
-Однако замечательная фраза содержится на странице отказа от заказа+== Установка ==
-«Вы можете отказаться от услуг хостинга во время текущего периода оплаты, при этом вам будет возвращены неистраченные средства (пропорционально потраченному времени), за вычетом цены регистрации доменов в подарок, если это происходило в текущем периоде оплаты».+=== Подготовка окружения ===
-Особенно кайфово звучит фраза: «за вычетом цены регистрации доменов в подарок». Это что за цена регистрации домена в подарок? Как подарок может вообще иметь какую-либо цену? Вот страница для тех кто не верит.+'''Внимание!''' Убедитесь, что ваш сайт работает под управлением web-сервера UNIX/Apache/FastCGI, это можно сделать, а также при необходимости сменить тип сервера, в разделе личного кабинета /Управление сайтами и серверами/.
-http://www.1gb.ru/default.aspx?ti=6&hti=104+ 
-То есть они честно говорят, что их подарок имеет некую цену регистрации. Хорош подарок. Это как парень, отбирающий у девушки свои подарки после расставания.+Везде, где написано python2.6 нужно подставлять версию python, работающую на вашем сервере (первые два числа)
-Сама эта фраза по себе показывает, в чем состоит мошенничество этого ресурса.+ 
-Ну ладно хитрый маркетинговый ход скажите вы. Но не все так просто.+ python --version
-Как только вы закажите там услуги хостинга, то вы выясняете, что 30% времени ваш сайт не работает вообще. Он висит или отвратительно долго грузится. Когда вы начинаете этому возмущаться, то вам предлагают резво вернуть деньги. Но вы должны выполнить следующие условия: «Прежде всего, необходимо убедиться, что в личном кабинете заполнены все реквизиты клиента» + 
-И тут есть ключевой момент. Если вы заполните эти данные, то на вас сразу же оформят домен. Без этих данных оформить домен они не могут. А как только оформят домен (который дается типа в подарок :-)) вы уже лишитесь 750 рублей. И домен типа обратно перерегистрировать нельзя. И жулик с песнями бежит делить капусту, которую получил продав домен с наваром 350 рублей. А при оптовых ценах еще выше. А вы остаетесь с носом или с доменом. Переплатив за него почти половину стоимости. В любом случае ни о каком хостинге говорить не приходится.+* Создаем в корне домашнего каталога файл <code>.pydistutils.cfg</code> для настройки путей инсталляции модулей:
-А они еще спрашивают сами себя, а почему такие низкие цены? Да вот почему, потому что ничего за эти деньги они не делают. Халявный сыр как известно в мышеловке.+ [install]
 + prefix = $HOME/python
 +
 + [easy_install]
 + install_dir = $HOME/python/lib64/python2.6/site-packages
 +* Для настройки переменных <code>PATH</code>, <code>PYTHONPATH</code> добавьте строки:
 + export PATH=$PATH:$HOME/python/bin:$HOME/python/lib64/python2.6/site-packages
 + export PYTHONPATH=$PYTHONPATH:$HOME/python/lib64/python2.6/site-packages
 +в ваш <code>~/.bashrc</code>
 + 
 +* Выполняем команду:
 + source ~/.bashrc
 +для того, чтобы сделанные изменения вступили в силу.
 + 
 +* Создаем различные каталоги:
 + mkdir -p ~/src ~/python/lib64/python2.6/site-packages ~/django
 +* Симлинк:
 + cd ~/python; ln -s lib64 lib; cd
 + 
 +=== Установка библиотек ===
 +* Скачиваем и устанавливаем Django:
 + cd ~/src
 + wget http://www.djangoproject.com/download/1.2.1/tarball/
 + tar xzvf Django-1.2.1.tar.gz
 + cd Django-1.2.1
 + python setup.py install
 + 
 +* Устанавливаем модуль flup, для работы Django в FastCGI режиме:
 + easy_install flup
 + 
 +* Устанавливаем модуль MySQL-python для работы с базой MySQL
 + easy_install MySQL-python
 + 
 +=== Настройка приложения, запуск ===
 +* Создаем проект
 + cd ~/django; django-admin.py startproject demo
 +* Переходим в каталог с проектом и делаем базовую настройку:
 + cd demo
 +в файле <code>settings.py</code> редактируем строки в соответствие с параметрами вашей базы:
 + DATABASES = {
 + 'default': {
 + 'ENGINE': 'mysql', # Тип базы данных
 + 'NAME': <nowiki>''</nowiki>, # Название базы данных
 + 'USER': <nowiki>''</nowiki>, # Имя пользователя
 + 'PASSWORD': <nowiki>''</nowiki>, # Пароль
 + 'HOST': <nowiki>''</nowiki>, # Сервер базы данных (например mysql51.1gb.ru)
 + 'PORT': <nowiki>''</nowiki>, # Порт для подключения к базе (оставить пустым)
 + }
 + }
 + 
 + 
 + TIME_ZONE = 'Europe/Moscow'
 + LANGUAGE_CODE = 'ru-RU'
 +импорт данных в базу:
 + python manage.py syncdb
 +В процессе создания структуры базы будет предложено ввести параметры администратора, нужно согласиться (набрать yes) и ввести данные пользователя, который будет считаться администратором.
 + 
 +* Переходим в каталог ~/http и делаем настройку FastCGI wrapper'а и правил редирета mod_rewrite.
 +Содержимое файла .htaccess:
 + Options +FollowSymlinks
 +
 + AddHandler fcgid-script .fcgi
 +
 + RewriteEngine On
 + RewriteCond %{REQUEST_FILENAME} !-f
 + RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L]
 + 
 +'''Не забудьте поменять <code>demo</code> на название своего проекта!'''
 + 
 +Файл index.fcgi:
 + #!/usr/bin/python -OO
 +
 + import sys, os, site
 +
 + # Add a custom Python path.
 + PYTHON_CUSTOM_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \
 + '../python/lib64/python2.6/site-packages'))
 + sys.path.insert (0, PYTHON_CUSTOM_PATH)
 + site.addsitedir (PYTHON_CUSTOM_PATH)
 +
 + # Add a custom Python path.
 + PYTHON_CUSTOM_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \
 + '../django'))
 + sys.path.insert (0, PYTHON_CUSTOM_PATH)
 +
 + # Add a custom Python path.
 + os.chdir(os.path.join (PYTHON_CUSTOM_PATH, 'demo'))
 +
 + os.environ['DJANGO_PROJECT'] = 'demo'
 + os.environ['DJANGO_SETTINGS_MODULE'] = 'demo.settings'
 +
 + from django.core.servers.fastcgi import runfastcgi
 + runfastcgi(method="prefork", maxchildren=3, daemonize="false")
 + 
 +* Создаем симлинк для CSS, JavaScript:
 +cd ~/http; ln -s ../python/lib64/python2.6/site-packages/django/contrib/admin/media
 + 
 +Все. Можно попробовать обратиться по HTTP к вашему сайту, вы должны увидеть примерно это: http://django-demo.1gb.ru/
 + 
 +=== Перезагрузка ===
 +Если вы сделали какие-то изменения в проекте, то для того чтобы они вступили в силу необходимо перезапустить FastCGI приложение. Делается это так:
 + killall python2.6
 + 
 +Если не сработало - посмотрите список процессов командой top и найдите аналогичное
 + 
 +== См. также ==
 +* [[Юникс шелл]]
 +== Ссылки ==
 +* [http://www.djangoproject.com/ Официальный сайт Django]
 +* [http://djbook.ru/ Русский перевод DjangoBook]
 +* [http://ru.wikipedia.org/wiki/Python Python на wikipedia.org]
 +* [http://www.python.org/ Официальный сайт языка Python]
 +* [http://peak.telecommunity.com/DevCenter/EasyInstall Документация по EasyInstall]
 + 
 +[[Категория:Программирование]]
 +[[Категория:Python]]

Версия 20:02, 31 мая 2010

Содержание

Общие сведения

Эта статья поможет понять, как можно быстро и просто установить фреймворк Django в режиме FastCGI на хостинге 1Gb.ru, а также как устанавливать собственные модули Python

Установка

Подготовка окружения

Внимание! Убедитесь, что ваш сайт работает под управлением web-сервера UNIX/Apache/FastCGI, это можно сделать, а также при необходимости сменить тип сервера, в разделе личного кабинета /Управление сайтами и серверами/.

Везде, где написано python2.6 нужно подставлять версию python, работающую на вашем сервере (первые два числа)

python --version
  • Создаем в корне домашнего каталога файл .pydistutils.cfg для настройки путей инсталляции модулей:
[install]
prefix = $HOME/python

[easy_install]
install_dir = $HOME/python/lib64/python2.6/site-packages
  • Для настройки переменных PATH, PYTHONPATH добавьте строки:
export PATH=$PATH:$HOME/python/bin:$HOME/python/lib64/python2.6/site-packages
export PYTHONPATH=$PYTHONPATH:$HOME/python/lib64/python2.6/site-packages

в ваш ~/.bashrc

  • Выполняем команду:
source ~/.bashrc

для того, чтобы сделанные изменения вступили в силу.

  • Создаем различные каталоги:
mkdir -p ~/src ~/python/lib64/python2.6/site-packages ~/django
  • Симлинк:
cd ~/python; ln -s lib64 lib; cd

Установка библиотек

  • Скачиваем и устанавливаем Django:
cd ~/src
wget http://www.djangoproject.com/download/1.2.1/tarball/
tar xzvf Django-1.2.1.tar.gz
cd Django-1.2.1
python setup.py install
  • Устанавливаем модуль flup, для работы Django в FastCGI режиме:
easy_install flup
  • Устанавливаем модуль MySQL-python для работы с базой MySQL
easy_install MySQL-python

Настройка приложения, запуск

  • Создаем проект
cd ~/django; django-admin.py startproject demo
  • Переходим в каталог с проектом и делаем базовую настройку:
cd demo

в файле settings.py редактируем строки в соответствие с параметрами вашей базы:

DATABASES = {
    'default': {
        'ENGINE': 'mysql', # Тип базы данных
        'NAME': '',        # Название базы данных
        'USER': '',        # Имя пользователя
        'PASSWORD': '',    # Пароль
        'HOST': '',        # Сервер базы данных (например mysql51.1gb.ru)
        'PORT': '',        # Порт для подключения к базе (оставить пустым)
    }
}


TIME_ZONE = 'Europe/Moscow'
LANGUAGE_CODE = 'ru-RU'

импорт данных в базу:

python manage.py syncdb

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

  • Переходим в каталог ~/http и делаем настройку FastCGI wrapper'а и правил редирета mod_rewrite.

Содержимое файла .htaccess:

Options +FollowSymlinks

AddHandler fcgid-script .fcgi

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L]

Не забудьте поменять demo на название своего проекта!

Файл index.fcgi:

#!/usr/bin/python -OO

import sys, os, site

# Add a custom Python path.
PYTHON_CUSTOM_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \
                     '../python/lib64/python2.6/site-packages'))
sys.path.insert (0, PYTHON_CUSTOM_PATH)
site.addsitedir (PYTHON_CUSTOM_PATH)

# Add a custom Python path.
PYTHON_CUSTOM_PATH = os.path.abspath (os.path.join (os.path.dirname (os.path.abspath (__file__)), \
                     '../django'))
sys.path.insert (0, PYTHON_CUSTOM_PATH)

# Add a custom Python path.
os.chdir(os.path.join (PYTHON_CUSTOM_PATH, 'demo'))

os.environ['DJANGO_PROJECT'] = 'demo'
os.environ['DJANGO_SETTINGS_MODULE'] = 'demo.settings'

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="prefork", maxchildren=3, daemonize="false")
  • Создаем симлинк для CSS, JavaScript:

cd ~/http; ln -s ../python/lib64/python2.6/site-packages/django/contrib/admin/media

Все. Можно попробовать обратиться по HTTP к вашему сайту, вы должны увидеть примерно это: http://django-demo.1gb.ru/

Перезагрузка

Если вы сделали какие-то изменения в проекте, то для того чтобы они вступили в силу необходимо перезапустить FastCGI приложение. Делается это так:

killall python2.6

Если не сработало - посмотрите список процессов командой top и найдите аналогичное

См. также

Ссылки

Личные инструменты