2009-07-20 31 views
21

Có ai đã sử dụng SQLAlchemy ngoài Django ORM không?SQLAlchemy và django, sản phẩm đã sẵn sàng chưa?

Tôi muốn sử dụng ORM của Django để thao tác đối tượng và SQLalchemy cho các truy vấn phức tạp (như những yêu cầu kết nối bên ngoài bên trái).

Có thể không?

Lưu ý: Tôi biết về django-sqlalchemy nhưng dự án dường như không sẵn sàng để sản xuất.

Trả lời

17

Những gì tôi sẽ làm gì,

  1. Xác định lược đồ trong Django orm, hãy để nó viết db qua syncdb. Bạn nhận được giao diện quản trị.

  2. Trong view1 bạn cần một phức tạp tham gia

 

    def view1(request): 
     import sqlalchemy 
     data = sqlalchemy.complex_join_magic(...) 
     ... 
     payload = {'data': data, ...} 
     return render_to_response('template', payload, ...) 
 
6

Tôi không nghĩ rằng thực tiễn tốt để sử dụng cả hai. Bạn có nên:

  1. ORM và sử dụng SQL tùy chỉnh sử dụng của Django nơi Django tích hợp trong hệ SQL không đáp ứng được nhu cầu của bạn, hoặc
  2. Sử dụng SQLAlchemy (mà cung cấp cho bạn kiểm soát tốt hơn với giá thêm phức tạp) và, nếu cần, hãy sử dụng một lớp khai báo như Elixir để làm cho cuộc sống dễ dàng hơn một chút.

Tất nhiên, nếu bạn cần quản trị viên của Django, thì nên sử dụng phương pháp tiếp cận đầu tiên.

+2

Bạn có thể giải thích lý do tại sao thực tiễn không tốt để sử dụng cả hai? –

+5

Nó không phải là một quy tắc cứng và nhanh chóng - nó chỉ không thường có ý nghĩa để có hai thành phần trong một hệ thống mà làm điều tương tự. Đó là doable, tất nhiên. Rất nhiều phụ thuộc vào việc đó là một ứng dụng sở thích, kích thước của đội ngũ phát triển, vv –

4

Jacob Kaplan-Moss thừa nhận để gõ "nhập khẩu SQLAlchemy" bất cứ lúc nào. Tôi có thể viết một bộ điều hợp queryset cho kết quả sqlalchemy trong tương lai không xa.

6

Tôi đã thực hiện nó trước đây và nó ổn. Sử dụng tính năng SQLAlchemy, nơi nó có thể đọc trong lược đồ, do đó bạn không cần phải khai báo các trường của bạn hai lần.

Bạn có thể lấy cài đặt kết nối từ cài đặt, vấn đề duy nhất là các công cụ như các hương vị khác nhau của trình điều khiển postgres (ví dụ: với psyco và không có).

Đó là giá trị nó như là công cụ SQLAlchemy chỉ là rất nhiều đẹp hơn cho các công cụ như tham gia.

2

Ngày nay bạn có thể sử dụng Aldjemy. Cân nhắc sử dụng tutorial này.

Các vấn đề liên quan