django

Развёртывание django приложения на OpenShift хостинге от Red Hat

Давным давно, писал статью на хабр. Перенесу сюда, пусть будет.

Преимущества облачного хостинга в наше время объяснять не приходиться, а Red Hat предлагает нам ещё и опробовать все вкусности бесплатно (естественно с некоторыми ограничениями).
Вы не платите за хостинг и получаете:

Хостинг для djnago проекта с использование nginx

Так случается, что иногда нужно не только написать проект на django но и использовать его.

В качестве сервера предлагаю использовать nginx.

Сперва установить его и flup :

sudo aptitude install nginx python-flup

Теперь запустите fastcgi:

python ./manage.py runfcgi host=127.0.0.1 port=8080

Когда это проделано, создаём конфигурациооный файл для nginx:

Выбираем случайную запись из базы данных django

Часто нужно получать случайную статьи или фото или пресрелиз из базы данных на сайе джанго.

К счастью разработчики позаботились и предоставили такую возможность программисту.

Делается это так.

Импортим модель. Например так:

from models import  Film

После этого можно выбирать записи. В представлении данного урла пишем нечто вроде этого:

random_film = Film.objects.order_by('?')[:4]

Этим мы выберем 4 случайных объекта типа Film.

Две строки и всё готово..

Добавляем CSS, JS и картинки к проекту django

При разборе фреймворка django неизбежно возникает вопрос о том, как добавить в проект статические файлы.
Посмотрим как это делается на примере CSS.

Приступим.

Создадим проект:

django-admin startproject app

Войдём в него и создадим папку для шаблонам и для медиа файлов (css, js, img... )

На linux:

mkdir templates
mkdir media

В папке media создадим папки для css и изображений:

mkdir img
mkdir css

Теперь создадим шаблон index.html в папке templates:

Создаём шаблон в django на python

В django осуществлена очень удобная система загрузки шаблонов.

Для создания шаблона вам необходимо добавить путь к папке с файлами шаблонов в директиву TEMPLATE_DIRS .
И тут существует дав способа! Первый - задать абсолютный путь к папке с шаблонами. Сами понимаете, что это не всегда есть удобно как с точки зрения переносимости кода так и с точки зрения удобства..

Такчто предлагаю остановится на таком решении: