Примечание куратора: содержание этой статьи было написано Люком Баясом в техническом блоге NuoDB.
Платформы веб-разработки являются основой современных масштабируемых приложений баз данных. Они бывают разных вкусов, некоторые из них минималистичны, предоставляя больше возможностей для различных компонентов, в то время как другие более полно представлены в тесно интегрированном стеке. В конце концов, все эти фреймворки нацелены на одно и то же: разработчикам проще и быстрее создавать веб-приложения, которые решают проблемы.
Python сообщество имеет множество фреймворк, ясные лидировали на сегодняшний день является Django , полнофункциональная рамка разработано , чтобы сделать его чрезвычайно простой для разработки надежных веб — приложений. Django имеет огромное сообщество с множеством полезных сторонних приложений . Я лично рекомендую среду Django в качестве средства для реализации вашего следующего веб-приложения-убийцы и сообщества за их отзывчивость на любые вопросы или проблемы, которые могут возникнуть.
С этой целью мы с гордостью объявляем о выпуске расширения NuoDB для Django, которое позволит вашим веб-приложениям использовать возможности масштабируемой архитектуры NuoDB с простотой инфраструктуры веб-приложений Django.
В этой статье мы поговорим о Django и NuoDB, а также рассмотрим следующие темы:
- Установка
- Пример приложения Django
- Конфигурация настроек
- Конфигурация интерфейса администратора (необязательно)
Вступление
В современном веб-ландшафте выросли мобильные приложения, будь то нативные или веб-приложения, наряду с традиционными веб-приложениями. Архитектуре веб-приложений и мобильных приложений присуща общая потребность в подключении сервера приложений, обычно через интерфейс 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!