MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara menulis aplikasi python yang mendukung banyak database

Django mendukung beberapa database jadi yang Anda butuhkan hanyalah beberapa kode untuk menangani peralihan di antara mereka.

Jika Anda telah membaca dokumen Anda akan melihat bahwa Django mengizinkan Anda untuk menyediakan kelas 'router' kustom Anda sendiri yang memutuskan basis data mana yang akan digunakan untuk setiap kueri yang diberikan:
https://docs.djangoproject.com/en/1.6/topics/db/multi-db/# menggunakan-router

Karena Anda mengatakan ingin memilih db "di ujung depan" mana, maka mungkin setiap pengguna situs Anda dapat memilih backend basis data yang berbeda. Ini menimbulkan masalah karena router db tidak tahu apa-apa tentang permintaan http dan pengguna saat ini.

Saya sarankan Anda menggunakan middleware 'ThreadLocal' ini untuk menyimpan objek permintaan saat ini sehingga Anda dapat mengaksesnya dari router khusus Anda:
https://github.com/jedie/django-tools/blob/master/django_tools/middlewares/ThreadLocal.py

Katakanlah Anda menyimpan backend pilihan pengguna di sesi sebagai request.session['db_name'] - router Anda akan terlihat seperti ini:

from django_tools.middlewares import ThreadLocal

class RequestRouter(object):
    def db_for_read(self, model, **hints):
        request = ThreadLocal.get_current_request()
        return request.session.get('db_name', 'default')

    def db_for_write(self, model, **hints):
        request = ThreadLocal.get_current_request()
        return request.session.get('db_name', 'default')

    def allow_relation(self, obj1, obj2, **hints):
        return True

    def allow_syncdb(self, db, model):
        return True



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara menggunakan operator agregasi dalam $match di MongoDB (misalnya $year atau $dayOfMonth)?

  2. Bagaimana cara mengakses MongoDB Meteor dari klien lain, saat Meteor sedang berjalan?

  3. Bagaimana cara mendapatkan nama dari id di luwak?

  4. MongoDB-Escape dot '.' di kunci peta]

  5. Saya memiliki kueri mongodb dan saya ingin menemukan kata yang sama persis "Disetujui"