2009-02-09 40 views
31

Bất cứ ai cũng có thể đề xuất một hướng dẫn/hướng dẫn/bài viết tốt với các mẹo/hướng dẫn về cách tổ chức và phân vùng một dự án Django lớn?Hướng dẫn tổ chức các dự án Django lớn

Tôi đang tìm lời khuyên về những việc cần làm khi bạn cần bắt đầu hệ số hóa các tệp duy nhất ban đầu (models.py, urls.py, views.py) và làm việc với nhiều hơn một vài thực thể.

Trả lời

38

Mỗi "ứng dụng" phải nhỏ - một thực thể tái sử dụng duy nhất cộng với một vài bảng được liên kết. Chúng tôi có khoảng 5 cộng/trừ 2 bảng cho mỗi mô hình ứng dụng. Hầu hết các ứng dụng nửa tá của chúng tôi nhỏ hơn 5 bảng. Một không có bảng trong mô hình.

Mỗi ứng dụng phải được thiết kế để trở thành một khái niệm có thể tái sử dụng. Trong trường hợp của chúng tôi, mỗi ứng dụng là một phần của trang web tổng thể; các ứng dụng có thể được gỡ bỏ và thay thế riêng biệt.

Thật vậy, đó là chiến lược của chúng tôi. Khi các yêu cầu của chúng tôi mở rộng và hoàn thiện, chúng tôi có thể xóa và thay thế các ứng dụng độc lập với nhau.

Không sao để ứng dụng phụ thuộc lẫn nhau. Tuy nhiên, sự phụ thuộc phải được giới hạn trong những điều hiển nhiên như "mô hình" và "hình thức". Ngoài ra, các ứng dụng có thể phụ thuộc vào tên trong URL của nhau. Do đó, URL được đặt tên của bạn phải có dạng như "xem ứng dụng", vì vậy, chức năng reverse hoặc thẻ {% url %} có thể tìm thấy chúng đúng cách.

Mỗi ứng dụng nên chứa nó lệnh batch riêng (thường là thông qua một lệnh chính thức có thể được tìm thấy bởi các django-admin kịch bản.

Cuối cùng, bất cứ điều gì đó là phức tạp hơn một mô hình đơn giản hoặc hình thức mà được chia sẻ có lẽ không thuộc về Ví dụ, chúng tôi sử dụng XLRD, nhưng bọc các phần của nó trong lớp riêng của chúng tôi để nó giống như mô-đun được xây dựng trong csv. Gói này cho XLRD không phải là một phần thích hợp của bất kỳ ứng dụng nào, với một mô-đun riêng biệt, bên ngoài ứng dụng Django.

10

Tôi thấy hữu ích khi xem xét tại các dự án mã nguồn mở Django lớn và lưu ý về dự án đó thực hiện nó như thế nào. trang web của Django có một danh sách tốt đẹp của dự án mã nguồn mở:

http://code.djangoproject.com/wiki/DjangoResources#Open-SourceDjangoprojects

Như không Google (mặc dù hầu hết trong số này là add-in thẻ mẫu nhỏ hơn và Middleware:

http://code.google.com/hosting/search?q=label:django

Dĩ nhiên , chỉ vì một dự án thực hiện nó theo một cách không có nghĩa là theo cách đó là Con đường Đúng (hoặc Con đường sai) Một số dự án đó thành công hơn những dự án khác. Một số dự án đó thành công hơn những dự án khác. nly cách để thực sự tìm hiểu những gì làm việc và không làm việc là để thử nó ra cho mình. Tất cả những lời khuyên và gợi ý trên thế giới sẽ không giúp ích gì trừ khi bạn tự mình thử nghiệm, nhưng chúng có thể giúp bạn bắt đầu đi đúng hướng.

+0

Đồng ý ... Những điều tôi học được từ làm việc trên pinax và satchmo là vô giá – Jiaaro

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