Подключить Flask к базам данных SQL, таким как PostgreSQL и SQLite, несложно. Но фреймворк отлично синхронизируется и с базами данных NoSQL, такими как CouchDB. И в качестве дополнительного преимущества вы можете легко запрашивать данные при использовании CouchDB с Flask.

Готовы внести изменения, используя NoSQL, например CouchDB, с вашим приложением Flask? Вот как настроить CouchDB на локальном компьютере и подключить его с помощью Flask.

Что такое CouchDB?

CouchDB - это база данных NoSQL, которая в настоящее время принадлежит Apache Software Foundation. Программное обеспечение, написанное на Erlang, было впервые выпущено в 2005 году.

В отличие от обычных баз данных, связанных с таблицами, к которым вы, скорее всего, привыкли, CouchDB - это нереляционная система управления базами данных, которая хранит данные в виде необработанного JSON.

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

instagram viewer

Таким образом, CouchDB быстро выполняет запросы и с ним легко работать при использовании асинхронных методов. Тем не менее, это не делает его лучше, чем его аналог SQL. У каждой технологии есть свои плюсы и минусы.

Настройка CouchDB

Чтобы начать использовать CouchDB, загрузите и установите совместимую версию из Официальный сайт CouchDB.

И если последняя версия вам не подходит, перейдите к Архив CouchDB и загрузите версию 1.6.1, которая является более ранней версией CouchDB.

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

Откройте ваш браузер. Затем запустите сервер CouchDB, вставив в адресную строку следующее:

http://localhost: 5984 / _utils / index.html

Настроить Python и Flask

Однако в этом руководстве предполагается, что на вашем компьютере уже установлен Python. В противном случае перейдите к python.org и установите последнюю версию Python на свой компьютер.

После настройки CouchDB создайте корневую папку проекта. Затем откройте свою командную строку в этом каталоге и создайте Виртуальная среда Python.

Установите последнюю версию Flask в виртуальном пространстве, используя пип:

pip install flask

Подключить Flask к CouchDB

Чтобы начать использовать CouchDB с вашим приложением Flask, установите Flask-CouchDB, пакет времени выполнения для подключения базы данных к Flask.

Сделать это:

pip install Flask-CouchDB

После установки Flask-CouchDB успешно, создать app.py файл в этой корневой папке. Точно так же создайте database.py файл - это обрабатывает создание вашей базы данных.

Открыть database.py и импортируйте следующие пакеты:

с сервера импорта couchdb

Затем создайте свою базу данных в том же файле, используя следующий блок кода:

с сервера импорта couchdb
server = Сервер ()
db = server.create ('muocouch')

Выполнять database.py через интерфейс командной строки. Затем откройте или обновите локальный сервер CouchDB через браузер, как вы это делали ранее. Теперь вы должны увидеть базу данных (muocouch в данном случае), перечисленные в CouchDB.

Связанный:Как запустить скрипт Python

Примечание: Убедитесь, что вы используете соглашение об именах в нижнем регистре для баз данных, поскольку CouchDB может не принимать прописные или смешанные регистры.

Сохраните свои первые данные CouchDB с помощью Flask

В конечном итоге цель любой базы данных - хранение данных. Если у вас есть база данных в CouchDB, вы можете сразу же начать сохранять в нее данные из своего приложения Flask.

Для начала откройте app.py и импортируйте следующие пакеты:

из фляги импорт фляги
с сервера импорта couchdb
из файла импорта flaskext.couchdb

Затем создайте приложение Flask и экземпляр сервера CouchDB:

приложение = Flask (__name__, static_url_path = '/ static')
app.debug = True
server = Сервер ()

Теперь давайте сохраним некоторые пользовательские данные в CouchDB:

@ app.route ('/', methods = ['GET', 'POST'])
def register ():
user = {
"username": "media site",
"email": "[email protected]",
"пароль": "зашифрованные данные"
}
db = server ['muocouch'] # выберите базу данных
doc_id, doc_rev = db.save (user) # хранить ваши данные в th базе данных
возвращение "

Теперь ваши данные должны быть в базе данных

"

Если хотите, вы можете установить свой сервер Flask в режим разработки перед его запуском.

Для этого выполните следующую команду через свой интерфейс командной строки:

установить FLASK_ENV = development

Обратите внимание, что установка режима сервера не является обязательной. Это только упрощает отладку вашего кода.

Но независимо от настройки режима сервера вот как запустить сервер Flask через CMD:

пробег фляги

Однако Flask по умолчанию использует ваш порт локальный: 5000. Теперь вы должны увидеть сообщение в H2 как только вы загрузите этот адрес через браузер.

Проверка данных и проверка дубликатов с помощью запросов CouchDB

Чтобы стандартизировать это дальше, вы можете использовать запросы для проверки входных данных и предотвращения дублирования в вашей базе данных. Запросы CouchDB немного отличаются от того, как вы это делаете с базами данных SQL.

CouchDB использует так называемые «представления JavaScript» для запроса данных из базы данных. К счастью, это относительно просто.

Прежде чем вы продвинетесь дальше, вот как выглядит базовое представление запроса CouchDB:

map_func = функция (документ) 
{emit (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, reduce_fun = None)

Теперь давайте воспользуемся приведенным выше кодом на практике:

# Создайте объектную модель документа под названием "Пользователи:"
класс Пользователь (Документ):
doc_type = 'Пользователь'
@ app.route ('/', methods = ['GET', 'POST'])
def register ():
user = {
"username": "media site",
"email": "[email protected]",
"пароль": "зашифрованные данные"
}
db = server ['muocouch'] # выберите базу данных
# Используйте функцию просмотра для получения данных из CouchDB
map_func = функция (документ)
{emit (doc.doc_rev, doc); }
# Получить все данные, запустив набор запросов
myQuery = User.query (db, map_func, reduce_fun = None, reverse = True)
q = [i ['username'] for i in myQuery] # Зациклить все имена пользователей из базы данных
q2 = [i ['email'] for i in myQuery] # Зациклить все адреса электронной почты из базы данных
q3 = q + q2 # Объединить оба запроса в один список
печать (q3)
возвращение "

Ваши данные теперь в базе

"

В приведенном выше коде используется Пользователь для запроса данных, полученных функцией просмотра. Обратите особое внимание на параметры в наборе запроса (myQuery).

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

Итак, вот как вы можете использовать этот запрос для проверки вводимых пользователем данных:

если нет (пользователь ['username'] в q3 или пользователь ['email'] в q3):
# сохраните ваши данные в базе данных, если ее не существует
doc_id, doc_rev = db.save (пользователь)
возвращение "

Успешно зарегистрирован

"
еще:
возвращение "

Имя пользователя или адрес электронной почты существует

"

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

Связанный:Как использовать оператор Python if

Вот и все! Вы только что создали свою первую базу данных NoSQL с помощью Flask-CouchDB.

Хотя создание и запросы к базам данных в CouchDB вращаются вокруг примеров, которые мы выделили здесь, вы можете дополнительно изучить функциональные возможности Flask. Например, вы можете развернуть поля ввода, используя wtforms и пометить дубликаты, используя сообщение Flask вспышка.

Вы даже можете передать свой запрос в jQuery JavaScript для проверки входных данных и асинхронной проверки дубликатов.

CouchDB лучше, чем базы данных SQL?

Использование CouchDB или любой другой базы данных NoSQL с Flask или любой другой технологией программирования зависит от ваших предпочтений. Но он пригодится при работе с бесструктурными данными и необработанными носителями.

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

ДелитьсяТвитнутьЭлектронное письмо
SQL vs. NoSQL: какая база данных лучшая для вашего следующего проекта?

Выбор типа базы данных может быть непростым. Что выбрать: SQL или NoSQL?

Читать далее

Похожие темы
  • Программирование
  • база данных
  • Программирование
  • Учебники по кодированию
Об авторе
Идову Омисола (Опубликовано 94 статей)

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

Ещё от Idowu Omisola

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться