2009-04-18 38 views
7

Nó nghe có vẻ tầm thường, nhưng tôi muốn biết tôi nên đặt các lớp trăn của tôi ở đâu (không phải từ Model)?Nơi tốt nhất cho các lớp python trong dự án Django là gì?

Ý tôi là, các lớp mô hình của tôi được xác định trong myapp/models.py nhưng tôi muốn, ví dụ: sử dụng khung nguồn cấp dữ liệu phân phối để viết nguồn cấp dữ liệu đơn giản. The doc nói rằng tôi cần phải viết một lớp Feed nhưng ... Tôi nên đặt mã ở đâu? Đường dẫn và tệp nào? Tôi muốn dính vào cấu trúc thư mục Django mặc định.

Cảm ơn!

Trả lời

8

Bạn được tự do đặt nó ở nơi bạn muốn.

dụ:

project 
    myapp 
    views.py 
    models.py 
    feeds.py 

Sau đó, bạn có thể nhập bạn nguồn cấp dữ liệu mô-đun bằng cách sử dụng nhập khẩu.

từ project.myapp.feeds nhập *

Tạo thư mục tốt hơn khi bạn xử lý nhiều tệp. Ví dụ:

project 
    myapp 
     models.py 
     views.py 
     extras 
     feeds.py 
     sitemaps.py 

Tôi đề nghị bạn đọc: Python Modules: Packages

+0

Vậy ... không có quy ước Django nào cho nó? Nếu tôi có nhiều lớp, tôi có nên tạo một thư mục "classes" dưới thư mục myapp không? Cảm ơn! –

+2

Tôi đề nghị không, nó làm cho rất nhiều nhầm lẫn. là sạch hơn để có điều này: project.myapp.feeds hơn project.myapp.classed.feeds Cuối cùng bạn có thể làm điều này: project.myapp.extras.feeds dự án myapp extras feed –

+0

Tôi đã cập nhật câu trả lời của mình. –

2

Đối với các lớp thức ăn chăn nuôi liên quan đến, đó là truyền thống để đặt chúng trong một module gọi là feeds trong module ứng dụng thích hợp. Ví dụ, nếu bạn có một blog với một RSS feed, cấu trúc dự án của bạn sẽ trông như thế này:

project/ 
    blog/ 
     __init__.py 
     feeds.py 
     models.py 
     views.py 

Nói chung, cho các lớp phi mô hình khác, bạn có thể đặt chúng ở bất cứ đâu bạn muốn (như đã nêu bởi Andrea Di Persio). Thông thường bạn đặt chúng như một mô-đun trong gói ứng dụng thích hợp. Đối với các lớp học nói chung sử dụng, tôi thường tạo ra một gói phần mềm được gọi là lib có chứa các lớp học nói chung và chức năng, như vậy:

project/ 
    blog/ 
     __init__.py 
     feeds.py 
     models.py 
     other_stuff.py 
     views.py 
    lib/ 
     __init__.py 
     things.py 
+0

Cảm ơn lời khuyên! –

0
Models.py 

Là một nơi tốt nhất cho Clas bạn beacuse mô hình có assesentory số liệu (trong cơ sở dữ liệu)

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