Flask'ı PostgreSQL ve SQLite gibi SQL veritabanlarına bağlamak çocuk oyuncağı. Ancak çerçeve, CouchDB gibi NoSQL veritabanlarıyla da mükemmel bir şekilde senkronize olur. Ek bir avantaj olarak, CouchDB'yi Flask ile kullandığınızda verilerinizi kolayca sorgulayabilirsiniz.
Flask uygulamanızla CouchDB gibi bir NoSQL kullanarak değişiklik yapmaya hazır mısınız? CouchDB'yi yerel makinenize nasıl kuracağınız ve Flask ile nasıl bağlayacağınız aşağıda açıklanmıştır.
CouchDB Nedir?
CouchDB, şu anda Apache Software Foundation'a ait bir NoSQL veritabanıdır. Erlang ile yazılan yazılım ilk olarak 2005 yılında piyasaya sürüldü.
Alışık olduğunuz normal tablo bağlantılı veritabanlarının aksine, CouchDB, verileri ham JSON olarak depolayan, ilişkisel olmayan bir veritabanı yönetim sistemidir.
CouchDB engellemez, bu nedenle veri girişi sırasında veritabanını kilitlemez. CouchDB'nin güçlü noktalarından biri, veri okumak ve yazmak için çok sürümlü bir eşzamanlılık kontrol politikası kullanmasıdır. Böylece, veritabanındaki verilerin mevcut yapısından etkilenmeden birden fazla kullanıcıdan eşzamanlı girdilere izin verir.
Bu nedenle, CouchDB, sorgular sırasında hızlıdır ve asenkron yöntemler kullanırken çalışması kolaydır. Bununla birlikte, bu onu SQL muadilinden daha iyi yapmaz. Her teknolojinin artıları ve eksileri vardır.
CouchDB Kurulumu
CouchDB'yi kullanmaya başlamak için, şu adresten uyumlu bir sürüm indirip yükleyin: CouchDB'nin resmi web sitesi.
Ve bu en son sürüm sizin için işe yaramazsa, şuraya geçin: CouchDB arşivi ve CouchDB'nin önceki bir sürümü olan 1.6.1 sürümünü indirin.
CouchDB'yi yükledikten sonra, diğer masaüstü uygulamalarında yaptığınız gibi PC'nizde çalıştırın.
Tarayıcınızı açın. Ardından, aşağıdakileri adres çubuğunuza yapıştırarak CouchDB'nin sunucusunu başlatın:
http://localhost: 5984/_utils/index.html
Python ve Flask'ı Ayarlayın
Ancak bu eğitim, PC'nizde zaten Python yüklü olduğunu varsayar. Aksi takdirde, gidin piton.org ve Python'un en son sürümünü bilgisayarınıza yükleyin.
CouchDB'yi kurduktan sonra bir proje kök klasörü oluşturun. Ardından komut satırınızı bu dizine açın ve bir Python sanal ortamı.
Flask'ın en son sürümünü kullanarak sanal alana yükleyin. pip:
pip yükleme şişesi
Flask'ı CouchDB ile Bağlayın
Flask uygulamanızla CouchDB'yi kullanmaya başlamak için Flask-CouchDB, veritabanını Flask ile bağlamak için çalışma zamanı paketi.
Bunu yapmak için:
pip Flask-CouchDB yükleyin
yükledikten sonra Flask-CouchDB başarılı bir şekilde oluşturun app.py bu kök klasördeki dosya. Benzer şekilde, bir veritabanı.py dosya—bu, veritabanı oluşturma işleminizi gerçekleştirir.
Açık veritabanı.py ve aşağıdaki paketleri içe aktarın:
sofadb ithalat sunucusundan
Ardından, aşağıdaki kod bloğunu kullanarak aynı dosyada veritabanınızı oluşturun:
sofadb ithalat sunucusundan
sunucu = Sunucu()
db = server.create('muocouch')
Uygulamak veritabanı.py CLI aracılığıyla. Ardından, daha önce yaptığınız gibi tarayıcınız aracılığıyla CouchDB'nin yerel sunucusunu açın veya yenileyin. Şimdi veritabanını görmelisiniz (muoccouch bu durumda) CouchDB'de listelenir.
İlişkili:Python Komut Dosyası Nasıl Çalıştırılır
Not: CouchDB büyük veya karışık durumları kabul etmeyebileceğinden, veritabanları için küçük harf adlandırma kuralı kullandığınızdan emin olun.
Flask Kullanarak İlk CouchDB Verilerinizi Depolayın
Sonuçta, herhangi bir veritabanının amacı veri depolamadır. CouchDB'de bir veritabanınız olduğunda, hemen Flask uygulamanızdan veri depolamaya başlayabilirsiniz.
Başlamak için açın app.py ve aşağıdaki paketleri içe aktarın:
şişeden ithalat şişesi
sofadb ithalat sunucusundan
flaskext.couchdb ithalat Belgesinden
Ardından, bir Flask uygulaması ve CouchDB sunucu örneği oluşturun:
app = Şişe (__name__, static_url_path='/static')
app.debug=Doğru
sunucu = Sunucu()
Şimdi bazı kullanıcı girdilerini CouchDB'ye kaydedelim:
@app.route('/', yöntemler=['GET', 'POST'])
def register():
kullanıcı = {
"kullanıcı adı":"medya sitesi",
"email":"[email protected]",
"şifre":"şifreliveri"
}
db = sunucu['muocouch'] #veritabanını seç
doc_id, doc_rev = db.save (kullanıcı) #verilerinizi veritabanında saklayın
geri dönmek "Verileriniz şimdi veritabanında olmalıdır
"
İsterseniz Flask sunucunuzu çalıştırmadan önce geliştirme moduna ayarlayabilirsiniz.
Bunu yapmak için, CLI'niz aracılığıyla aşağıdaki komutu çalıştırın:
FLASK_ENV=geliştirmeyi ayarla
Sunucu modunun ayarlanmasının isteğe bağlı olduğunu unutmayın. Yalnızca kodunuzda hata ayıklamayı sorunsuz hale getirir.
Ancak sunucu modu ayarından bağımsız olarak, Flask sunucusunu CMD aracılığıyla nasıl başlatacağınız aşağıda açıklanmıştır:
şişe koşusu
Ancak Flask, bağlantı noktanızı varsayılan olarak yerel ana bilgisayar: 5000. Mesajı şimdi görmelisiniz. H2 Bu adresi tarayıcınız aracılığıyla yüklediğinizde etiketleyin.
CouchDB Sorgularını Kullanarak Verileri Doğrulayın ve Kopyaları Kontrol Edin
Bunu daha da standart hale getirmek için, girdileri doğrulamak ve veritabanınızdaki yinelemeleri önlemek için sorguları kullanabilirsiniz. CouchDB'yi sorgulamak, bunu SQL veritabanlarıyla nasıl yaptığınızdan biraz farklıdır.
CouchDB, veritabanındaki verileri sorgulamak için "JavaScript görünümleri" dediği şeyi kullanır. Neyse ki, bu nispeten basittir.
Daha fazla ilerlemeden önce, temel bir CouchDB sorgu görünümü şöyle görünür:
map_func = işlev (belge)
{ yay (doc.doc_rev, doc); }
myQuery = [docType].query (db, map_func, Reduce_fun=Yok)
Şimdi yukarıdaki kodu pratik olarak kullanalım:
#" adlı bir belge nesne modeli oluşturKullanıcılar:"
sınıf Kullanıcısı (Belge):
doc_type = 'Kullanıcı'
@app.route('/', yöntemler=['GET', 'POST'])
def register():
kullanıcı = {
"kullanıcı adı":"medya sitesi",
"email":"[email protected]",
"şifre":"şifreliveri"
}
db = sunucu['muocouch'] #veritabanını seç
# Verilerinizi CouchDB'den almak için görüntüleme işlevini kullanın
map_func = işlev (belge)
{ yay (doc.doc_rev, doc); }
# Bir sorgu seti çalıştırarak tüm verileri alın
myQuery = User.query (db, map_func, Reduce_fun=Yok, reverse=True)
q = [i['kullanıcı adı'] for i in myQuery] # Veritabanındaki tüm kullanıcı adlarını devre dışı bırak
q2 = [i['email'] for i in myQuery] # Veritabanındaki tüm e-posta adreslerini devre dışı bırak
q3 = q+q2 # Her iki sorguyu tek bir listede birleştir
yazdır (q3)
geri dönmek "Verileriniz artık veritabanında
"
Yukarıdaki kod, kullanıcı görünüm işlevi tarafından getirilen verileri sorgulamak için sınıf. Sorgu kümesindeki parametrelere çok dikkat edin (benim sorgum).
Baskı q3, yukarıda yaptığınız gibi, şimdi komut satırındaki veritabanındaki tüm kullanıcı adlarını ve e-posta adreslerini çıkarmalısınız.
Kullanıcıların girdilerini doğrulamak için bu sorguyu şu şekilde kullanabilirsiniz:
değilse (q3'te user['username'] veya q3'te user['email']:
#varsa verilerinizi veritabanında saklayın
doc_id, doc_rev = db.save (kullanıcı)
geri dönmek "Başarıyla kayıt olundu
"
Başka:
geri dönmek "Kullanıcı adı veya e-posta var
"
Tarayıcınızı yenilemek, Başka Veritabanında bulunan bir kullanıcı adı veya e-postayı her girmeye çalıştığınızda bildirim. Ve yeni bir tane giriyorsanız, aşağıdakileri yürüterek verilerinizi başarıyla depolar. Eğer Koşul.
İlişkili:Python if İfadesi Nasıl Kullanılır
Bu kadar! Flask-CouchDB kullanarak ilk NoSQL veritabanınızı oluşturdunuz.
CouchDB'de veritabanları oluşturmak ve sorgulamak burada vurguladığımız örnekler etrafında dönse de, Flask'ın işlevlerini daha fazla inceleyebilirsiniz. Örneğin, kullanarak giriş alanlarını döndürebilirsiniz. ağırlık formları ve Flask'ın mesajını kullanarak kopyaları işaretleyin flaş.
Hatta girdileri doğrulamak ve eşzamansız olarak kopyaları kontrol etmek için sorgunuzu JavaScript'in jQuery'sine iletebilirsiniz.
CouchDB, SQL Veritabanlarından Daha İyi mi?
CouchDB veya herhangi bir NoSQL veritabanını Flask veya başka bir programlama teknolojisi ile kullanmak tercihinize bağlıdır. Ancak yapısız veriler ve ham medya ile uğraşırken kullanışlıdır.
Bununla birlikte, karar vermeden önce, projeniz için hangisinin uygun olduğuna karar vermenize yardımcı olması için NoSQL ve SQL veritabanları arasındaki farklara bakmak isteyebilirsiniz.
Bir veritabanı türü seçmek zor olabilir. SQL'i mi yoksa NoSQL'i mi seçmelisiniz?
Sonrakini Oku
- Programlama
- veri tabanı
- Programlama
- Kodlama Eğitimleri
Idowu akıllı teknoloji ve üretkenlik konusunda tutkulu. Boş zamanlarında kodlamayla uğraşıyor ve canı sıkılınca satranç tahtasına geçiyor ama arada sırada rutinden kopmayı da seviyor. İnsanlara modern teknolojinin yolunu gösterme tutkusu onu daha fazla yazmaya motive ediyor.
Haber bültenimize abone ol
Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!
Abone olmak için buraya tıklayın