Como conectar seu aplicativo Flask ao CouchDB: um banco de dados NoSQL

Como conectar seu aplicativo Flask ao CouchDB: um banco de dados NoSQL

Conectar o Flask com bancos de dados SQL como PostgreSQL e SQLite é muito fácil. Mas a estrutura sincroniza perfeitamente com bancos de dados NoSQL, como CouchDB, também. E como um benefício adicional, você pode consultar seus dados facilmente ao usar o CouchDB com o Flask.





Pronto para fazer uma mudança usando um NoSQL como o CouchDB com seu aplicativo Flask? Veja como configurar o CouchDB em sua máquina local e conectá-lo ao Flask.





O que é CouchDB?

CouchDB é um banco de dados NoSQL atualmente de propriedade da Apache Software Foundation. Escrito com Erlang, o software foi lançado pela primeira vez em 2005.





Ao contrário dos bancos de dados vinculados a tabelas regulares com os quais você provavelmente está acostumado, o CouchDB é um sistema de gerenciamento de banco de dados não relacional que armazena dados como JSON bruto.

O CouchDB não bloqueia, portanto, não bloqueia o banco de dados durante a entrada de dados. Um dos pontos fortes do CouchDB é que ele usa uma política de controle de simultaneidade de várias versões para ler e gravar dados. Portanto, ele permite entradas simultâneas de vários usuários sem interferência da estrutura de dados existente no banco de dados.



Portanto, o CouchDB é rápido durante as consultas e fácil de trabalhar ao usar métodos assíncronos. Dito isso, isso não o torna melhor do que sua contraparte SQL. Cada tecnologia tem seus prós e contras.

Configuração do CouchDB

Para começar a usar o CouchDB, baixe e instale uma versão compatível em Site oficial do CouchDB .





E se essa versão mais recente não funcionar para você, vá para o Arquivo CouchDB e baixe a versão 1.6.1, que é uma versão anterior do CouchDB.

Depois de instalar o CouchDB, execute-o em seu PC como faria com qualquer outro aplicativo de desktop.





Abra seu navegador. Em seguida, inicie o servidor CouchDB colando o seguinte em sua barra de endereço:

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

Configurar Python e Flask

Este tutorial, no entanto, assume que você já possui o Python instalado em seu PC. Caso contrário, vá para python.org e instale a versão mais recente do Python em seu PC.

Depois de configurar o CouchDB, crie uma pasta raiz do projeto. Em seguida, abra sua linha de comando para esse diretório e crie um Ambiente virtual Python .

Instale a versão mais recente do Flask no espaço virtual usando pip :

construa sua própria caixa de tv android
pip install flask

Conecte o frasco ao CouchDB

Para começar a usar o CouchDB com seu aplicativo Flask, instale Flask-CouchDB , o pacote de tempo de execução para conectar o banco de dados ao Flask.

Para fazer isso:

pip install Flask-CouchDB

Depois de instalar Flask-CouchDB com sucesso, crie um app.py arquivo nessa pasta raiz. Da mesma forma, crie um database.py arquivo - trata da criação do banco de dados.

Abrir database.py e importe os seguintes pacotes:

from couchdb import Server

Em seguida, crie seu banco de dados nesse mesmo arquivo usando o seguinte bloco de código:

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

Executar database.py por meio da CLI. Em seguida, abra ou atualize o servidor local do CouchDB por meio de seu navegador, como fez anteriormente. Agora você deve ver o banco de dados ( muocouch neste caso) listado no CouchDB.

Relacionado: Como executar um script Python

Observação: Certifique-se de usar uma convenção de nomenclatura em minúsculas para bancos de dados, pois o CouchDB pode não aceitar maiúsculas ou mistas.

Armazene seus primeiros dados CouchDB usando Flask

Em última análise, o objetivo de qualquer banco de dados é o armazenamento de dados. Depois de ter um banco de dados no CouchDB, você pode começar a armazenar dados nele a partir de seu aplicativo Flask imediatamente.

Para começar, abra app.py e importe os seguintes pacotes:

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

Em seguida, crie um aplicativo Flask e uma instância do servidor CouchDB:

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

Agora, vamos armazenar algumas entradas do usuário no 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

'

Se desejar, você pode definir seu servidor Flask para o modo de desenvolvimento antes de executá-lo.

Para fazer isso, execute o seguinte comando por meio de sua CLI:

set FLASK_ENV=development

Observe que a configuração do modo do servidor é opcional. Isso apenas torna a depuração do seu código mais fácil.

Mas, independentemente da configuração do modo do servidor, veja como iniciar o servidor Flask por meio do CMD:

flask run

O Flask, no entanto, padroniza sua porta para localhost: 5000 . Agora você deve ver a mensagem no H2 tag uma vez que você carrega este endereço através do seu navegador.

Validar dados e verificar duplicatas usando consultas CouchDB

Para padronizar isso ainda mais, você pode usar consultas para validar entradas e evitar duplicatas em seu banco de dados. Consultar o CouchDB é um pouco diferente de como você faz isso com bancos de dados SQL.

O CouchDB usa o que chama de 'visualizações JavaScript' para consultar dados do banco de dados. Felizmente, isso é relativamente simples.

Antes de prosseguir, esta é a aparência de uma visualização de consulta CouchDB básica:

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

Agora vamos usar o código acima de forma prática:

#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

'

O código acima usa o Do utilizador classe para consultar os dados buscados pela função de visualização. Preste muita atenção aos parâmetros dentro do conjunto de consultas ( myQuery )

Impressão q3 , como você fez acima, agora deve produzir todos os nomes de usuário e endereços de e-mail no banco de dados dentro da linha de comando.

Então, veja como você pode usar essa consulta para validar as entradas dos usuários:

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

'

Atualizar seu navegador retorna o outro declaração cada vez que você tenta inserir um nome de usuário ou um e-mail que já está no banco de dados. E se você estiver inserindo um novo, ele armazena com sucesso seus dados executando o E se doença.

Relacionado: Como usar a instrução if do Python

É isso! Você acabou de criar seu primeiro banco de dados NoSQL usando Flask-CouchDB.

Embora a criação e consulta de bancos de dados no CouchDB gire em torno dos exemplos que destacamos aqui, você pode explorar mais as funcionalidades do Flask. Por exemplo, você pode aumentar os campos de entrada usando wtforms e sinalizar duplicatas usando a mensagem do Flask clarão .

Você pode até mesmo passar sua consulta para jQuery do JavaScript para validar entradas e verificar duplicatas de forma assíncrona.

O CouchDB é melhor do que os bancos de dados SQL?

Usar CouchDB ou qualquer outro banco de dados NoSQL com Flask ou qualquer outra tecnologia de programação depende de sua preferência. Mas é útil ao lidar com dados sem estrutura e mídia bruta.

Dito isso, antes de decidir, você pode querer examinar as diferenças entre os bancos de dados NoSQL e SQL para ajudá-lo a decidir qual deles é adequado para o seu projeto.

Compartilhado Compartilhado Tweet O email SQL vs. NoSQL: Qual é o melhor banco de dados para seu próximo projeto?

Escolher um tipo de banco de dados pode ser complicado. Você deve escolher SQL ou NoSQL?

Leia a seguir
Tópicos relacionados
  • Programação
  • base de dados
  • Programação
  • Tutoriais de codificação
Sobre o autor Idisou Omisola(94 artigos publicados)

Idowu é apaixonado por qualquer tecnologia inteligente e produtividade. Em seu tempo livre, ele brinca com programação e muda para o tabuleiro de xadrez quando está entediado, mas também adora quebrar a rotina de vez em quando. Sua paixão por mostrar às pessoas o caminho da tecnologia moderna o motiva a escrever mais.

Mais de Idowu Omisola

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever