MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách viết một ứng dụng python hỗ trợ nhiều cơ sở dữ liệu

Django hỗ trợ nhiều cơ sở dữ liệu vì vậy tất cả những gì bạn cần là một số mã để xử lý việc chuyển đổi giữa chúng.

Nếu bạn đã đọc tài liệu, bạn sẽ thấy rằng Django cho phép bạn cung cấp lớp 'bộ định tuyến' tùy chỉnh của riêng bạn, lớp quyết định cơ sở dữ liệu nào sẽ sử dụng cho bất kỳ truy vấn nhất định nào:
https://docs.djangoproject.com/en/1.6/topics/db/multi-db/# sử dụng bộ định tuyến

Vì bạn nói rằng bạn muốn chọn db "trên giao diện người dùng" nên có lẽ mỗi người dùng trang web của bạn có thể chọn một chương trình phụ trợ cơ sở dữ liệu khác nhau. Điều này gây ra sự cố vì bộ định tuyến db không biết gì về người dùng và yêu cầu http hiện tại.

Tôi khuyên bạn nên sử dụng phần mềm trung gian 'ThreadLocal' này để lưu trữ đối tượng yêu cầu hiện tại để bạn có thể truy cập nó từ bộ định tuyến tùy chỉnh của mình:
https://github.com/jedie/django-tools/blob/master/django_tools/middlewares/ThreadLocal.py

Giả sử bạn lưu phần phụ trợ đã chọn của người dùng trong phiên dưới dạng request.session['db_name'] - bộ định tuyến của bạn sẽ trông giống như sau:

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. Làm cách nào tôi có thể viết tập hợp mà không vượt quá kích thước tài liệu tối đa?

  2. Vòng lặp tìm kiếm không phân biệt chữ hoa chữ thường dấu phụ

  3. Spring không lưu đối tượng vào MongoDB một cách chính xác

  4. Mongoose chọn các trường phụ

  5. Mối quan hệ lồng nhau MongoDb