Как подключить приложение Flask к CouchDB: база данных NoSQL

Как подключить приложение Flask к CouchDB: база данных NoSQL

Подключить 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 является то, что он использует многоверсионную политику управления параллелизмом для чтения и записи данных. Таким образом, он позволяет одновременно вводить данные от нескольких пользователей без вмешательства в существующую структуру данных в базе данных.



Таким образом, 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 в виртуальном пространстве, используя пип :

сколько артисты зарабатывают на Spotify
pip install flask

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

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

Сделать это:

pip install Flask-CouchDB

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

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

from couchdb import Server

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

from couchdb import Server
server = Server()
db = server.create('muocouch')

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

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

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

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

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

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

from flask import Flask
from couchdb import Server
from flaskext.couchdb import Document

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

app = Flask(__name__, static_url_path='/static')
app.debug=True
server = Server()

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

@app.route('/', methods=['GET', 'POST'])
def register():
user = {
'username':'media site',
'email':'justmail@gmail.com',
'password':'encrypteddata'
}
db = server['muocouch'] #select the database
doc_id, doc_rev = db.save(user) #store your data in th database
return '

Your data should now be in the database

'

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

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

set FLASK_ENV=development

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

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

flask run

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

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

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

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

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

map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
myQuery = [docType].query(db, map_func, reduce_fun=None)

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

#Create a document object model called ' Users :'
class User(Document):
doc_type = 'User'
@app.route('/', methods=['GET', 'POST'])
def register():
user = {
'username':'media site',
'email':'justmail@gmail.com',
'password':'encrypteddata'
}
db = server['muocouch'] #select the database
# Use the view function to fetch your data from CouchDB
map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
# Get all the data by running a query set
myQuery = User.query(db, map_func, reduce_fun=None, reverse=True)
q = [i['username'] for i in myQuery] # Loop out all the usernames from the database
q2 = [i['email'] for i in myQuery] # Loop out all the email addresses from the database
q3 = q+q2 # Merge both queries into a single list
print(q3)
return '

Your data is now in the database

'

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

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

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

if not (user['username'] in q3 or user['email'] in q3):
#store your data into the database if itdoesn't exist
doc_id, doc_rev = db.save(user)
return '

Registered successfully

'
else:
return '

Username or email exists

'

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

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

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

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

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

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

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

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

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

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

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

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

Ещё от Idowu Omisola

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

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

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