Flask 앱을 ​​CouchDB와 연결하는 방법: NoSQL 데이터베이스

Flask 앱을 ​​CouchDB와 연결하는 방법: NoSQL 데이터베이스

Flask를 PostgreSQL 및 SQLite와 같은 SQL 데이터베이스와 연결하는 것은 간단합니다. 그러나 프레임워크는 CouchDB와 같은 NoSQL 데이터베이스와도 완벽하게 동기화됩니다. 그리고 추가 이점으로 CouchDB를 Flask와 함께 사용하면 데이터를 쉽게 쿼리할 수 있습니다.





Flask 앱에서 CouchDB와 같은 NoSQL을 사용하여 변경할 준비가 되셨습니까? 로컬 머신에 CouchDB를 설정하고 Flask와 연결하는 방법은 다음과 같습니다.





CouchDB란 무엇입니까?

CouchDB는 현재 Apache Software Foundation이 소유한 NoSQL 데이터베이스입니다. Erlang으로 작성된 이 소프트웨어는 2005년에 처음 출시되었습니다.





대부분의 사용자에게 익숙한 일반 테이블 연결 데이터베이스와 달리 CouchDB는 데이터를 원시 JSON으로 저장하는 비관계형 데이터베이스 관리 시스템입니다.

CouchDB는 non-blocking이므로 데이터 입력 중에 데이터베이스를 잠그지 않습니다. CouchDB의 장점 중 하나는 다중 버전 동시성 제어 정책을 사용하여 데이터를 읽고 쓰는 것입니다. 따라서 데이터베이스에 있는 기존 데이터 구조의 간섭 없이 여러 사용자의 동시 입력이 가능합니다.



따라서 CouchDB는 쿼리 중에 빠르고 비동기 방식을 사용하는 동안 작업하기 쉽습니다. 즉, 이것은 SQL 대응 제품보다 낫지 않습니다. 각 기술에는 장단점이 있습니다.

CouchDB 설정

CouchDB 사용을 시작하려면 다음에서 호환되는 버전을 다운로드하여 설치하십시오. 카우치디비 공식 홈페이지 .





최신 버전이 작동하지 않으면 다음으로 진행하십시오. 카우치DB 아카이브 CouchDB의 이전 버전인 버전 1.6.1을 다운로드합니다.

CouchDB를 설치한 후에는 다른 데스크탑 앱과 마찬가지로 PC에서 실행하십시오.





브라우저를 엽니다. 그런 다음 주소 표시줄에 다음을 붙여넣어 CouchDB 서버를 시작합니다.

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

Python 및 Flask 설정

그러나 이 자습서에서는 PC에 Python이 이미 설치되어 있다고 가정합니다. 그렇지 않으면 다음으로 이동하십시오. python.org PC에 최신 버전의 Python을 설치합니다.

CouchDB를 설정했으면 프로젝트 루트 폴더를 만듭니다. 그런 다음 해당 디렉토리에 대한 명령줄을 열고 파이썬 가상 환경 .

다음을 사용하여 가상 공간에 최신 버전의 Flask를 설치합니다. :

10 최고의 크로스 플랫폼 멀티 플레이어 모바일 게임
pip install flask

CouchDB와 플라스크 연결

Flask 앱과 함께 CouchDB를 사용하려면 다음을 설치하십시오. 플라스크-카우치DB , 데이터베이스를 Flask와 연결하기 위한 런타임 패키지.

이것을하기 위해:

pip install Flask-CouchDB

설치하면 플라스크-카우치DB 성공적으로 생성 앱.파이 해당 루트 폴더에 있는 파일. 마찬가지로 생성 데이터베이스.py 파일 - 데이터베이스 생성을 처리합니다.

열려있는 데이터베이스.py 다음 패키지를 가져옵니다.

from couchdb import Server

다음으로 다음 코드 블록을 사용하여 동일한 파일에 데이터베이스를 만듭니다.

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

실행하다 데이터베이스.py CLI를 통해. 그런 다음 이전과 같이 브라우저를 통해 CouchDB의 로컬 서버를 열거나 새로 고칩니다. 이제 데이터베이스( 뮤코치 이 경우) CouchDB에 나열됩니다.

관련된: Python 스크립트를 실행하는 방법

메모: CouchDB는 대문자 또는 혼합 대소문자를 허용하지 않을 수 있으므로 데이터베이스에 소문자 명명 규칙을 사용해야 합니다.

Flask를 사용하여 첫 번째 CouchDB 데이터 저장

궁극적으로 모든 데이터베이스의 목적은 데이터 저장입니다. CouchDB에 데이터베이스가 있으면 Flask 앱에서 즉시 데이터를 저장할 수 있습니다.

시작하려면 열기 앱.파이 다음 패키지를 가져옵니다.

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

서버 모드 설정은 선택 사항입니다. 코드 디버깅을 번거롭지 않게 만듭니다.

그러나 서버 모드 설정에 관계없이 CMD를 통해 Flask 서버를 시작하는 방법은 다음과 같습니다.

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

'

위의 코드는 사용자 뷰 함수에서 가져온 데이터를 쿼리하는 클래스입니다. 쿼리 세트( 마이쿼리 ).

인쇄 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

'

브라우저를 새로 고치면 또 다른 데이터베이스에 이미 있는 사용자 이름이나 이메일을 입력하려고 할 때마다 문. 그리고 새로 입력하는 경우 다음을 실행하여 데이터를 성공적으로 저장합니다. 만약 상태.

관련된: 파이썬 if 문을 사용하는 방법

그게 다야! Flask-CouchDB를 사용하여 첫 번째 NoSQL 데이터베이스를 생성했습니다.

CouchDB에서 데이터베이스를 생성하고 쿼리하는 것은 여기서 강조한 예제를 중심으로 이루어지지만 Flask의 기능을 더 자세히 알아볼 수 있습니다. 예를 들어 다음을 사용하여 입력 필드를 스핀업할 수 있습니다. 중량형 Flask의 메시지를 사용하여 중복 플래그 지정 플래시 .

쿼리를 JavaScript의 jQuery로 전달하여 입력을 확인하고 중복 항목을 비동기적으로 확인할 수도 있습니다.

CouchDB가 SQL 데이터베이스보다 낫습니까?

Flask 또는 기타 프로그래밍 기술과 함께 CouchDB 또는 기타 NoSQL 데이터베이스를 사용하는 것은 선호도에 따라 다릅니다. 그러나 구조가 없는 데이터 및 원시 미디어를 처리할 때 유용합니다.

즉, 결정하기 전에 NoSQL과 SQL 데이터베이스의 차이점을 살펴보고 프로젝트에 적합한 데이터베이스를 결정하는 데 도움이 될 수 있습니다.

공유하다 공유하다 트위터 이메일 SQL 대 NoSQL: 다음 프로젝트에 가장 적합한 데이터베이스는 무엇입니까?

데이터베이스 유형을 선택하는 것은 까다로울 수 있습니다. SQL 또는 NoSQL을 선택해야 합니까?

다음 읽기
관련 항목
  • 프로그램 작성
  • 데이터 베이스
  • 프로그램 작성
  • 코딩 튜토리얼
저자 소개 이디소 오미솔라(94건의 기사 게재)

Idowu는 스마트 기술과 생산성에 대한 열정을 가지고 있습니다. 여가 시간에는 코딩을 하거나 지루할 때 체스판으로 전환하지만 가끔씩 일상에서 벗어나는 것도 좋아합니다. 사람들에게 현대 기술에 대한 방법을 보여주고자 하는 그의 열정은 그가 더 많은 글을 쓰도록 동기를 부여합니다.

Idowu Omisola가 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.