Статьи

Начало работы: Django и NuoDB

Примечание куратора: содержание этой статьи было написано Люком  Баясом в техническом блоге NuoDB. 

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

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

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

В этой статье мы поговорим о Django и NuoDB, а также рассмотрим следующие темы:

  1. Установка
  2. Пример приложения Django
  3. Конфигурация настроек
  4. Конфигурация интерфейса администратора (необязательно)

Вступление

В современном веб-ландшафте выросли мобильные приложения, будь то нативные или веб-приложения, наряду с традиционными веб-приложениями. Архитектуре веб-приложений и мобильных приложений присуща общая потребность в подключении сервера приложений, обычно через   интерфейс CRUD , для извлечения или обработки данных. С другой стороны, общепринятой практикой является использование инфраструктуры веб-приложений в качестве отправной точки для быстрого запуска и запуска вашего приложения. Это сообщение поможет вам создать простое приложение Django Усиливая NuoDB так что вы можете приступить к созданию следующего приложения убийцы  быстро .

Давайте начнем …

Часть 1 — Установка

Прежде чем мы углубимся в реализацию веб-приложения на основе NuoDB с использованием Django, нам нужно установить необходимые пакеты, Django,  драйвер Python NuoDB  и расширение NuoDB. Django может быть установлен различными способами, самый простой и управляемый способ — установить пакет с помощью  pip , инструмента управления пакетами python, аналогичного  npm  для node.js и  gem  для ruby.

Давайте установим последнюю версию Django…

sudo pip install django

Далее давайте установим драйвер Python NuoDB (расширение использует это для общения с NuoDB)

sudo pip install pynuodb

Точно так же давайте сделаем то же самое для django_pynuodb

sudo pip install django_pynuodb

Кроме того, вы можете клонировать репозиторий с расширением github  NuoDB  и установить его.

git clone https://github.com/nuodb/nuodb-django
cd nuodb-django
make install

Это так просто. Итак, мы все готовы установить Django, наш веб-фреймворк, драйвер Python NuoDB, наш собственный интерфейс к NuoDB и наше расширение django_pynuodb, позволяющее использовать драйвер для взаимодействия с NuoDB.

Давайте создадим пример приложения Django …

Часть 2 — Пример приложения Django

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

django-admin.py startproject nuodb_site

В этом каталоге вы найдете следующий стандартный код

nuodb_site
	__init__.py
	manage.py
	nuodb_site
		__init__.py
		settings.py
		urls.py
		wsgi.py

Это основа, из которой построены многие удивительные приложения Django. Большинство файлов говорят сами за себя, один из них, который нас особенно интересует, это settings.py, который содержит всю конфигурацию, необходимую для настройки вашего приложения.

Давайте обновим settings.py, чтобы использовать расширение django-pynuodb, которое мы установили в первой части этого поста…

Часть 3 — Конфигурация настроек

Сердце веб-приложений лежит в базе данных, так как оно служит ресурсом, хранит, запрашивает и интерполирует огромные объемы данных различными способами. Задача, стоящая сегодня перед многими веб-приложениями, заключается в том, как эффективно масштабировать свою базу данных по мере масштабирования своих веб-приложений. Обычной практикой является  ограждение  базы данных для увеличения емкости. Таким образом, легко управлять горизонтальным масштабированием веб-приложения в облаке (путем добавления большего количества экземпляров приложения), однако гораздо сложнее управлять масштабированием баз данных в той же среде.  NuoDB  — это абсолютно фантастическое соединение с веб-приложениями, так как оно было разработано для работы в облаке и может масштабироваться, поскольку приложение очень легко масштабируется.  Нет шардинга требуется . Потрясающие!

Давайте настроим Django для использования расширения django_pynuodb для общения с NuoDB.

Независимо от того, начинаете ли вы новый проект или используете уже существующий, нам нужно изменить  словарь settings.py  DATABASES, чтобы использовать наше расширение вместо стандартного

DATABASES = {
    'default': {
        'ENGINE': 'django_pynuodb',                                                                          
        'NAME': 'test',                                                                                                                                                                                                                        
        'USER': 'dba',
        'SCHEMA': 'django',
        'PASSWORD': 'secret',
        'HOST': 'localhost',                                                               
        'PORT': '48004',                                                                                                                          
    }
}

В приведенном выше   примере ENGINE ссылается на наш пакет django_pynuodb, остальные элементы являются типичными элементами базы данных. Кроме того, убедитесь, что для USE_TZ установлено значение False в settings.py. Часовой пояс определяется при первоначальном установлении соединения с NuoDB и сохраняется в течение всего срока существования соединения.

ПРИМЕЧАНИЕ.   Ключ словаря SCHEMA является необязательным и по умолчанию использует   схему USER . Предоставление имени схемы здесь заполнит схему Django и пользовательскими таблицами.

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

python manage.py syncdb

Если вы испытываете какие-либо ошибки при выполнении синхронизации, дважды проверьте, что django_pynuodb  находится в вашей  PYTHONPATH .

На этом этапе все специфичные для django модели, а также пользовательские модели сохраняются в NuoDB. Если вы запустите  nuosql,  вы увидите все таблицы, специфичные для django, в  схеме django (определенной выше).

Запустите  nuosql  для подключения к вашей базе данных

nuosql test@localhost --user dba --password secret

И просмотрите таблицы под   схемой Django

SQL> show tables in django

	Tables in schema DJANGO

		AUTH_GROUP
		AUTH_GROUP_PERMISSIONS
		AUTH_PERMISSION
		AUTH_USER
		AUTH_USER_GROUPS
		AUTH_USER_USER_PERMISSIONS
		DJANGO_ADMIN_LOG
		DJANGO_CONTENT_TYPE
		DJANGO_SESSION
		DJANGO_SITE
		POLLS_CHOICE
		POLLS_POLL
SQL>

Теперь у нас есть специальные таблицы Django в нашей схеме Django, и теперь мы можем приступить к реализации нашего веб-приложения.

Часть 4. Конфигурация интерфейса администратора (необязательно)

Один из замечательных инструментов, встроенных в Django в интерфейс администратора, который позволяет просматривать и манипулировать их базой данных. Для тех, кому не очень комфортно работать с базами данных, это отличный способ взаимодействия с ним без необходимости иметь дело с SQL.

Давайте настроим это …

Раскомментируйте следующую строку в settings.py:

'django.contrib.admin'

Uncomment the following 3 lines in urls.py:

from django.contrib import admin                                               
admin.autodiscover()

url(r'^admin/', include(admin.site.urls))

Perform another syncdb to persist any admin related updates to NuoDB

python manage.py syncdb

Congrats! You have successfully setup Django & NuoDB to interface with each other.

Do the following to run the server

python manage.py runserver 8000

Now launch your browser and go to localhost:8000/admin

You should see a sign in screen. Enter in the credentials from earlier and you are now off and running. From here I encourage you to walk through the Django tutorial, it is really good and will cover in detail how to setup your models for business objects you want to capture in NuoDB and how to setup routes to templates.

Summary

In this blog post I’ve outlined the installation process of Django and the NuoDB Extension, how to configure Django to interface with NuoDB and how to launch the NuoDB admin interface.  For more detailed instructions how to use Django, I recommend that you work through the Django tutorials. They are very thorough and walk you through every aspect of the framework you will need to create robust applications.

For those interested in understanding NuoDB on a more technical level, I highly recommend checking out Seth Proctor’s blog posts

Happy coding!