Настройка веб-сервера для Django с nginx и uWSGI

Для запуска Django сервера можно использовать любой веб-сервер с поддержкой WSGI. В данной статье мы по шагам разберем процесс настройки веб-сервера для Django с использованием nginx и uWSGI. Те же принципы можно применить и при использовании другого веб-сервера.

Шаги для запуска веб-сервера для хостинга Django:

  • Приобрести сервер
  • Установить системные пакеты
  • Подготовить виртуальное окружение
  • Создать каталог и залить проект
  • Установить необходимые зависимости
  • Настроить веб-сервер и uWSGI

Если вы хотите разобраться в деталях настройки сервера для хостинга Python (Django) проекта — то я рекомендую прочесть статью  http://itman.in/uwsgi-python-hosting/

Здесь же собраны только необходимые действия для запуска Django проекта на пустом Ubuntu сервере с использованием uWSGI.

Читать далее Настройка веб-сервера для Django с nginx и uWSGI

Мультиязычность в Django — переводим модели

Как правило, любой современный сайт хранит информацию в базе данных. Для перевода статического текста в шаблонах и сообщениях, Django использует gettext, извлекая нужный перевод из заранее подготовленного po файла.

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

Подробно про перевод шаблонов и создание файлов перевода —http://itman.in/django-translation/. В данной статье описан вариант перевода моделей с помощью django-modeltranslation.

Читать далее Мультиязычность в Django — переводим модели

Мультиязычный сайт на Django — переводим проект на разные языки

Для добавления вашему сайту на Django нескольких языков, в типовом проекте нужно перевести несколько вещей:

  • меню сайта
  • модели, информацию, которая хранится в базе данных
  • текст в шаблонах

Для некоторых проектов также понадобится перевести сообщения, которые получает пользователь, но на большинстве сайтов это не используется. Читать далее Мультиязычный сайт на Django — переводим проект на разные языки

Как скрыть HTML элемент

Есть два варианта, как можно скрыть html элемент.

  • visibility: hidden сделает элемент невидимым, но он по-прежнему будет занимать место на странице
  • display: none полностью удалит элемент, он не будет занимать какого-либо места на странице.

Пример использования

<div id="divCheckbox" style="display: none;">

Python Yield

Yield — ключевое слово, которое используется для выхода из функции-генератора значений списка. Подобные функции-генераторы используются, когда вам нужно создавать какую-то более сложную последовательность, чем возвращаемая range(10). Читать далее Python Yield

script type = “text/template”

На некоторых сайтах в коде можно встретить конструкцию вида

<script type = "text/template">
...
</script>

В отличие от блока, содержащего javascript (type = «text/javascript»), блок script type = «text/template» не будет обработан браузером. 

В этом блоке хранятся шаблоны, которые в дальнейшем используются библиотеками типа MustacheHamlEcounderscore.js для генерации HTML кода на стороне клиента.

Как просмотреть все URL в Django

Чтобы просмотреть все определенные в Django-проекте шаблоні URL, можно использовать следующий небольшой код:

import urls

def show_urls(urllist, depth=0):
    for entry in urllist:
        print "  " * depth, entry.regex.pattern
        if hasattr(entry, 'url_patterns'):
            show_urls(entry.url_patterns, depth + 1)

show_urls(urls.urlpatterns)

Читать далее Как просмотреть все URL в Django

Язык программирования Python — подробно для начинающих

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

Для изучения языка Python я также рекомендую книгу «Язык программирования Python», авторы: Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач. Написано очень последовательно и доступным языком.
Читать далее Язык программирования Python — подробно для начинающих

Как Django обрабатывает URL

https://docs.djangoproject.com/en/1.5/topics/http/urls/

Ограничение Django в том, что как только она находит соответствующий шаблон, обработчик URL прекращает работу и передает управление указанной в качестве view функции для отрисовки шаблона или обработки данных.

Где хранить шаблоны в рамках Django проекта

Если проект маленький, и изначально все приложения создаются только под него — то папку templates можно создать в корневом каталоге проекта. Так проще видеть все шаблоны и менять их в случае необходимости.

При этом для внутри templates лучше создать отдельные папки с названиями приложений, а уже в них помещать непосредственно шаблоны, чтобы избежать путаницы.

Если вы делаете переносимое приложение, что каталог templates с шаблонами для него лучше создавать внутри каталога приложения.