Как да свържете вашето приложение за колба с CouchDB: NoSQL база данни

Как да свържете вашето приложение за колба с 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 във виртуалното пространство, като използвате пип :

няма при покупка на безплатни игри
pip install flask

Свържете колбата с CouchDB

За да започнете да използвате CouchDB с приложението си Flask, инсталирайте Flask-CouchDB , пакетът за изпълнение за свързване на базата данни с Flask.

Да го направя:

pip install Flask-CouchDB

След като инсталирате Flask-CouchDB успешно, създайте app.py файл в тази основна папка. По същия начин създайте a database.py файл - това обработва създаването на вашата база данни.

Отворено database.py и импортирайте следните пакети:

from couchdb import Server

След това създайте базата данни в същия файл, като използвате следния блок код:

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

Изпълни database.py чрез CLI. След това отворете или опреснете локалния сървър на CouchDB чрез браузъра си, както по -рано. Сега трябва да видите базата данни ( мукоуч в този случай), изброени в CouchDB.

Свързани: Как да стартирате скрипт на Python

Забележка: Уверете се, че използвате конвенция за именуване на малки букви за бази данни, тъй като CouchDB може да не приема главни или смесени букви.

Съхранявайте първите си данни от CouchDB с помощта на колба

В крайна сметка целта на всяка база данни е съхранението на данни. След като имате база данни в 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 сървър в режим на разработка, преди да го стартирате.

За да направите това, изпълнете следната команда чрез вашия CLI:

set FLASK_ENV=development

Имайте предвид, че настройката на сървърния режим не е задължителна. Това само прави отстраняването на грешки във вашия код безпроблемно.

Но независимо от настройката на сървърния режим, ето как да стартирате Flask сървъра чрез CMD:

flask run

Flask обаче по подразбиране на вашия порт localhost: 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 е страстен за всичко умно технология и производителност. В свободното си време той играе с кодиране и превключва на шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя около съвременните технологии го мотивира да пише повече.

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате