Cara Menghubungkan Aplikasi Flask Anda Dengan CouchDB: Pangkalan Data NoSQL

Cara Menghubungkan Aplikasi Flask Anda Dengan CouchDB: Pangkalan Data NoSQL

Menghubungkan Flask dengan pangkalan data SQL seperti PostgreSQL dan SQLite adalah sangat penting. Tetapi kerangka kerja diselaraskan dengan sempurna dengan pangkalan data NoSQL seperti CouchDB juga. Dan sebagai faedah tambahan, anda boleh membuat pertanyaan data anda dengan mudah semasa anda menggunakan CouchDB dengan Flask.





Bersedia untuk membuat perubahan dengan menggunakan NoSQL seperti CouchDB dengan aplikasi Flask anda? Inilah cara memasang CouchDB pada mesin tempatan anda dan menghubungkannya dengan Flask.





Apa itu CouchDB?

CouchDB adalah pangkalan data NoSQL yang kini dimiliki oleh Apache Software Foundation. Ditulis dengan Erlang, perisian ini pertama kali dikeluarkan pada tahun 2005.





Tidak seperti pangkalan data biasa dengan jadual yang biasa anda gunakan, CouchDB adalah sistem pengurusan pangkalan data bukan hubungan yang menyimpan data sebagai JSON mentah.

CouchDB tidak menyekat, jadi ia tidak mengunci pangkalan data semasa input data. Salah satu titik penting CouchDB ialah ia menggunakan polisi kawalan serentak pelbagai versi untuk membaca dan menulis data. Oleh itu, ia membolehkan input serentak dari pelbagai pengguna tanpa gangguan dari struktur data yang ada dalam pangkalan data.



Oleh itu, CouchDB pantas semasa membuat pertanyaan dan senang digunakan semasa menggunakan kaedah tidak segerak. Yang mengatakan, ini tidak menjadikannya lebih baik daripada rakan SQL-nya. Setiap teknologi mempunyai kebaikan dan keburukannya.

Persediaan CouchDB

Untuk mula menggunakan CouchDB, muat turun dan pasang versi yang serasi dari Laman web rasmi CouchDB .





Dan jika versi terbaru itu tidak sesuai untuk anda, teruskan ke Arkib CouchDB dan muat turun versi 1.6.1, yang merupakan versi sebelumnya dari CouchDB.

Sebaik sahaja anda memasang CouchDB, jalankan pada PC anda seperti aplikasi desktop yang lain.





Buka penyemak imbas anda. Kemudian lancarkan pelayan CouchDB dengan menampal yang berikut ke bar alamat anda:

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

Sediakan Python dan Flask

Tutorial ini, bagaimanapun, menganggap bahawa anda sudah memasang Python pada PC anda. Jika tidak, pergi ke python.org dan pasang versi terbaru Python pada PC anda.

Setelah anda menyediakan CouchDB, buat folder root projek. Kemudian buka baris arahan anda ke direktori itu dan buat a Persekitaran maya Python .

Pasang Flask versi terbaru di ruang maya menggunakan pip :

cara menyambungkan telefon saya ke komputer saya
pip install flask

Sambungkan Kelalang Dengan CouchDB

Untuk mula menggunakan CouchDB dengan aplikasi Flask anda, pasang Flask-CouchDB , pakej runtime untuk menghubungkan pangkalan data dengan Flask.

Untuk membuat ini:

pip install Flask-CouchDB

Setelah anda memasang Flask-CouchDB berjaya, buat app.py fail dalam folder root itu. Begitu juga, buat a pangkalan data.py fail — ini menangani pembuatan pangkalan data anda.

Buka pangkalan data.py dan import pakej berikut:

from couchdb import Server

Seterusnya, buat pangkalan data anda dalam fail yang sama menggunakan blok kod berikut:

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

Laksanakan pangkalan data.py melalui CLI. Kemudian buka atau muat semula pelayan tempatan CouchDB melalui penyemak imbas anda seperti yang anda lakukan sebelumnya. Anda kini harus melihat pangkalan data ( muocouch dalam kes ini) disenaraikan dalam CouchDB.

Berkaitan: Cara Menjalankan Skrip Python

Catatan: Pastikan anda menggunakan konvensyen penamaan huruf kecil untuk pangkalan data, kerana CouchDB mungkin tidak menerima huruf besar atau campuran.

Simpan Data CouchDB Pertama Anda Menggunakan Flask

Pada akhirnya, tujuan pangkalan data adalah penyimpanan data. Sebaik sahaja anda mempunyai pangkalan data di CouchDB, anda boleh mula menyimpan data ke dalamnya dari aplikasi Flask anda dengan segera.

Untuk memulakan, buka app.py dan import pakej berikut:

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

Seterusnya, buat aplikasi Flask dan pelayan CouchDB:

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

Sekarang mari simpan beberapa input pengguna ke 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

'

Sekiranya anda mahu, anda boleh menetapkan pelayan Flask anda ke mod pengembangan sebelum menjalankannya.

Untuk melakukan ini, jalankan arahan berikut melalui CLI anda:

set FLASK_ENV=development

Perhatikan bahawa menetapkan mod pelayan adalah pilihan. Ini hanya membuat penyahpepijatan kod anda tanpa masalah.

Tetapi tanpa mengira tetapan mod pelayan, berikut adalah cara memulakan pelayan Flask melalui CMD:

flask run

Flask, bagaimanapun, menjadikan port anda tidak berfungsi localhost: 5000 . Anda sekarang mesti melihat mesej di H2 teg apabila anda memuatkan alamat ini melalui penyemak imbas anda.

Sahkan Data dan Periksa Pendua Menggunakan Pertanyaan CouchDB

Untuk menyeragamkan ini lebih jauh, anda boleh menggunakan pertanyaan untuk mengesahkan input dan mengelakkan pendua dalam pangkalan data anda. Meminta CouchDB sedikit berbeza dengan cara anda melakukan ini dengan pangkalan data SQL.

CouchDB menggunakan apa yang disebutnya 'paparan JavaScript' untuk meminta data dari pangkalan data. Nasib baik, ini agak mudah.

Sebelum anda melangkah lebih jauh, berikut adalah rupa paparan pertanyaan asas CouchDB:

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

Sekarang mari kita gunakan kod di atas secara praktikal:

#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

'

Kod di atas menggunakan Pengguna kelas untuk meminta data yang diambil oleh fungsi paparan. Perhatikan parameter dalam set pertanyaan ( myQuery ).

Percetakan q3 , seperti yang anda lakukan di atas, sekarang harus mengeluarkan semua nama pengguna dan alamat e-mel dalam pangkalan data dalam baris perintah.

Jadi, inilah cara anda boleh menggunakan pertanyaan ini untuk mengesahkan input pengguna:

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

'

Menyegarkan penyemak imbas anda mengembalikan yang lain pernyataan setiap kali anda cuba memasukkan nama pengguna atau e-mel yang sudah ada dalam pangkalan data. Dan jika anda memasukkan yang baru, ia berjaya menyimpan data anda dengan melaksanakan sekiranya keadaan.

Berkaitan: Cara Menggunakan Python jika Penyataan

Itu sahaja! Anda baru sahaja membuat pangkalan data NoSQL pertama anda menggunakan Flask-CouchDB.

Walaupun membuat dan menyoal pangkalan data di CouchDB berkisar pada contoh yang kami ketengahkan di sini, anda dapat mengetahui fungsi Flask dengan lebih jauh. Contohnya, anda boleh menggunakan medan input menggunakan wtforms dan bendera pendua menggunakan mesej Flask kilat .

Anda bahkan boleh menyampaikan pertanyaan anda ke jQuery JavaScript untuk mengesahkan input dan memeriksa pendua secara tidak segerak.

Adakah Pangkalan Data CouchDB Lebih Baik Daripada SQL?

Menggunakan CouchDB atau pangkalan data NoSQL lain dengan Flask atau teknologi pengaturcaraan lain bergantung pada pilihan anda. Tetapi sangat berguna ketika berurusan dengan data tanpa struktur dan media mentah.

Walaupun begitu, sebelum anda membuat keputusan, anda mungkin ingin melihat perbezaan antara pangkalan data NoSQL dan SQL untuk membantu anda memutuskan mana yang sesuai untuk projek anda.

Berkongsi Berkongsi Tweet E-mel SQL vs NoSQL: Apakah Pangkalan Data Terbaik untuk Projek Seterusnya?

Memilih jenis pangkalan data boleh menjadi sukar. Sekiranya anda memilih SQL atau NoSQL?

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • pangkalan data
  • Pengaturcaraan
  • Tutorial Pengekodan
Mengenai Pengarang Idisou Omisola(94 Artikel Diterbitkan)

Idowu meminati apa sahaja teknologi pintar dan produktiviti. Pada masa lapang, dia bermain-main dengan pengekodan dan beralih ke papan catur ketika dia bosan, tetapi dia juga suka melepaskan diri dari rutin sekali-sekala. Kesungguhannya untuk menunjukkan kepada orang-orang tentang teknologi moden mendorongnya untuk menulis lebih banyak lagi.

Lagi Dari Idowu Omisola

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan