Како повезати апликацију Фласк са ЦоуцхДБ: НоСКЛ база података

Како повезати апликацију Фласк са ЦоуцхДБ: НоСКЛ база података

Повезивање Фласка са СКЛ базама података као што су ПостгреСКЛ и СКЛите је једноставно. Али оквир се савршено синхронизује са НоСКЛ базама података попут ЦоуцхДБ -а. И као додатна предност, можете лако да тражите своје податке када користите ЦоуцхДБ са Фласком.





Спремни сте за промену коришћењем НоСКЛ -а попут ЦоуцхДБ -а са апликацијом Фласк? Ево како поставити ЦоуцхДБ на локалну машину и повезати га са Фласком.





Шта је ЦоуцхДБ?

ЦоуцхДБ је НоСКЛ база података која је тренутно у власништву Апацхе Софтваре Фоундатион. Написан са Ерлангом, софтвер је први пут објављен 2005.



За разлику од обичних база података повезаних са таблицама на које сте највероватније навикли, ЦоуцхДБ је нерелациони систем за управљање базама података који складишти податке као сирови ЈСОН.

ЦоуцхДБ не блокира, па не закључава базу података током уноса података. Једна од јачих страна ЦоуцхДБ-а је то што користи политику контроле истовремености за више верзија за читање и писање података. Тако омогућава истовремене уносе од више корисника без сметњи у постојећу структуру података у бази података.



Дакле, ЦоуцхДБ је брз током упита и са њим је лако радити док се користе асинхроне методе. Међутим, ово га не чини ништа бољим од свог СКЛ партнера. Свака технологија има своје предности и недостатке.

Подешавање ЦоуцхДБ -а

Да бисте почели да користите ЦоуцхДБ, преузмите и инсталирајте компатибилну верзију са Званична веб страница ЦоуцхДБ .





А ако вам та најновија верзија не ради, пређите на ЦоуцхДБ архива и преузмите верзију 1.6.1, која је ранија верзија ЦоуцхДБ -а.

Када инсталирате ЦоуцхДБ, покрените га на рачунару као и било коју другу апликацију за рачунаре.





Отворите прегледач. Затим покрените ЦоуцхДБ -ов сервер тако што ћете налепити следеће у траку за адресу:

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

Подесите Питхон и Фласк

Овај водич, међутим, претпоставља да већ имате инсталиран Питхон на рачунару. У супротном, идите на питхон.орг и инсталирајте најновију верзију Питхона на свој рачунар.

Када поставите ЦоуцхДБ, креирајте основну фасциклу пројекта. Затим отворите командну линију у том директоријуму и креирајте Питхон виртуелно окружење .

Инсталирајте најновију верзију Фласк -а у виртуелни простор помоћу пип :

како видети шта су избрисани видео снимци на иоутубе -у
pip install flask

Повежите бочицу са ЦоуцхДБ -ом

Инсталирајте да бисте почели да користите ЦоуцхДБ са апликацијом Фласк Фласк-ЦоуцхДБ , рунтиме пакет за повезивање базе података са Фласком.

Да уради ово:

pip install Flask-CouchDB

Једном када инсталирате Фласк-ЦоуцхДБ успешно креирајте апп.пи датотеку у тој основној фасцикли. Слично томе, креирајте датабасе.пи датотека - ово управља креирањем базе података.

Отвори датабасе.пи и увезите следеће пакете:

from couchdb import Server

Затим креирајте своју базу података у истој датотеци користећи следећи блок кода:

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

Извршити датабасе.пи преко ЦЛИ. Затим отворите или освежите локални сервер ЦоуцхДБ преко свог прегледача као што сте то учинили раније. Сада би требало да видите базу података ( муоцоуцх у овом случају) наведене у ЦоуцхДБ.

Повезан: Како покренути Питхон скрипту

Белешка: Уверите се да користите конвенцију именовања малих слова за базе података, јер ЦоуцхДБ можда неће прихватити велика или мешовита слова.

Чувајте своје прве податке са ЦоуцхДБ -а помоћу флашке

На крају, сврха сваке базе података је складиштење података. Када имате базу података у ЦоуцхДБ -у, можете одмах почети са складиштењем података у њу из апликације Фласк.

За почетак отворите апп.пи и увезите следеће пакете:

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

Затим креирајте апликацију Фласк и инстанцу сервера ЦоуцхДБ:

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

Хајде сада да сачувамо неке корисничке уносе у ЦоуцхДБ:

@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

'

Ако желите, можете поставити свој Фласк сервер у режим развоја пре него што га покренете.

Да бисте то урадили, покрените следећу команду преко ЦЛИ -ја:

set FLASK_ENV=development

Имајте на уму да постављање режима сервера није обавезно. То само олакшава отклањање грешака у вашем коду.

Али без обзира на подешавање режима сервера, ево како да покренете Фласк сервер преко ЦМД -а:

flask run

Фласк, међутим, ваш порт поставља на подразумеване вредности лоцалхост: 5000 . Сада бисте требали да видите поруку у Х2 означите када учитате ову адресу путем свог прегледача.

Потврдите податке и проверите дупликате помоћу ЦоуцхДБ упита

Да бисте ово додатно стандардизовали, можете користити упите за проверу уноса и спречавање дупликата у вашој бази података. Упити ЦоуцхДБ се мало разликују од начина на који то радите са СКЛ базама података.

ЦоуцхДБ користи оно што назива 'ЈаваСцрипт прикази' за упите података из базе података. На срећу, ово је релативно једноставно.

Пре него што наставите даље, ево како изгледа основни приказ упита ЦоуцхДБ:

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

'

Горњи код користи Корисник цласс за постављање упита подацима дохваћеним функцијом виев. Обратите посебну пажњу на параметре унутар скупа упита ( миКуери ).

Штампање к3 , као што сте учинили горе, сада би требало да прикаже сва корисничка имена и адресе е -поште у бази података у оквиру командне линије.

Ево како можете да користите овај упит за проверу уноса корисника:

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

'

Освежавањем прегледача враћа се елсе сваки пут када покушате да унесете корисничко име или адресу е -поште која се већ налази у бази података. А ако уносите нову, она успешно складишти ваше податке извршавањем датотеке ако стање.

Повезан: Како се користи Питхон иф изјава

То је то! Управо сте креирали своју прву НоСКЛ базу података користећи Фласк-ЦоуцхДБ.

Иако се креирање и испитивање база података у ЦоуцхДБ -у врти око примера које смо овде истакли, Фласк -ове функционалности можете додатно истражити. На пример, поља за унос можете да окренете помоћу втформс и означите дупликате користећи Фласк -ову поруку блиц .

Можете чак и да проследите свој упит у ЈаваСцрипт -ов јКуери ради провере уноса и асинхроне провере дупликата.

Да ли је ЦоуцхДБ бољи од СКЛ база података?

Коришћење ЦоуцхДБ -а или било које друге НоСКЛ базе података са Фласком или било којом другом технологијом програмирања зависи од ваших жеља. Али то добро дође док се бавите неструктурираним подацима и сировим медијима.

Међутим, пре него што се одлучите, можда бисте желели да погледате разлике између НоСКЛ и СКЛ база података како бисте лакше одлучили која је од њих погодна за ваш пројекат.

Објави Објави Твеет Емаил СКЛ вс. НоСКЛ: Која је најбоља база података за ваш следећи пројекат?

Избор типа базе података може бити тежак. Да ли да изаберете СКЛ или НоСКЛ?

Прочитајте следеће
Повезане теме
  • Програмирање
  • база података
  • Програмирање
  • Кодирање Туториали
О аутору Идисоу Омисола(94 објављена чланка)

Идову је страствен у било чему паметном технологији и продуктивности. У слободно време игра се кодирањем и прелази на шаховску таблу кад му је досадно, али такође воли да се повремено одваја од рутине. Његова страст да људима покаже пут око савремене технологије мотивише га да пише више.

Више од Идову Омисола

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили