2009-10-13 36 views
12

Theo the documentation:"Ứng dụng" ở Django là gì?

Một ứng dụng là một ứng dụng web mà không một cái gì đó - ví dụ, một hệ thống weblog, một cơ sở dữ liệu của hồ sơ công cộng hoặc một ứng dụng thăm dò đơn giản. Dự án là tập hợp các cấu hình và các ứng dụng và các ứng dụng dành cho một trang web cụ thể . Một dự án có thể chứa nhiều ứng dụng. Ứng dụng có thể là trong nhiều dự án.

Tuy nhiên, các ví dụ khác về điều gì tạo nên "ứng dụng"?

Trả lời

14

Điều gì làm cho một ứng dụng (đối với chúng tôi) là một điều:

Một App là đơn vị tái sử dụng

Nếu chúng ta có thể muốn chia nó đi để sử dụng ở một nơi khác, nó là một ứng dụng.

Nếu có mô hình dữ liệu có thể sử dụng lại, đó là ứng dụng. Hồ sơ người dùng: Ứng dụng. Khách hàng: Ứng dụng. Lịch sử thống kê của khách hàng (điều này rất khó giải thích mà không cung cấp quá nhiều chi tiết): App. Báo cáo: Ứng dụng. Phân tích Actuarial: App. API của nhà cung cấp để thu thập dữ liệu: Ứng dụng.

Nếu nó là duy nhất và sẽ không bao giờ được tái sử dụng (tức là, khách hàng cụ thể) đó là một ứng dụng phụ thuộc vào các ứng dụng khác. Tải dữ liệu là khách hàng cụ thể. Mỗi ứng dụng được xây dựng trên một cặp ứng dụng hiện có (Tải lên hàng loạt và Lịch sử thống kê)

+0

Điều này có ý nghĩa và xác nhận những gì tôi nghĩ. Cảm ơn. –

2

Quản lý người dùng có thể rất tốt là một ứng dụng, nếu bạn không sử dụng khung công tác người dùng được xây dựng của Django.

Nó có giao diện người dùng và mô hình được xác định cho dữ liệu được lưu trữ và nó thực sự tách biệt với ứng dụng Blog hoặc Wiki (mặc dù thông tin sẽ được chia sẻ).

Miễn là cả hai ứng dụng đều nằm trong cùng một 'dự án', chúng nên sử dụng cùng một cài đặt cho DB. Bạn sẽ có thể bằng cách chỉ cần đảm bảo các mô hình thích hợp được nhập vào nơi bạn đang cố gắng sử dụng chúng.

Xem this link để biết thêm thông tin.

+0

ok. người dùng là một lựa chọn tồi, tôi đoán vậy. Nhưng bạn có thể chia sẻ dữ liệu giữa các ứng dụng? –

+0

Có bạn sẽ có thể. Đã chỉnh sửa bài đăng để cung cấp thêm thông tin. –

4

Ứng dụng Django là các gói chức năng có thể sử dụng lại. Khi bắt đầu, thật dễ dàng để chỉ sử dụng một ứng dụng tùy chỉnh cho dự án của bạn, nhưng "cách Django" là chia nhỏ nó thành các ứng dụng riêng biệt mà mỗi ứng dụng chỉ làm một việc. Bạn có thể xem django.contrib để biết ví dụ về các ứng dụng có thể tái sử dụng thực sự tốt.

Ví dụ gần đây về tôi: khách hàng cần một cách để nhập dữ liệu CSV vào mô hình Django. Cách dễ nhất là chỉ cần thêm một mô hình với một FileField và viết một phân tích cú pháp nhanh cho định dạng cụ thể của những gì chúng đang tải lên. Điều đó sẽ hoạt động tốt cho đến khi định dạng thay đổi và tôi phải làm cho trình phân tích cú pháp khớp nhau. Nhưng đây là một nhiệm vụ thường được lặp lại (nhập dữ liệu) và không liên quan đến ứng dụng hiện có (quản lý dữ liệu đó) vì vậy tôi đã tự mình phá vỡ nó. Ứng dụng có thể cắm này có thể nhập dữ liệu cho bất kỳ mô hình hoạt động nào. Bây giờ thời gian tới một khách hàng cần chức năng nhập khẩu, tôi chỉ cần thêm mã này vào install_apps và chạy syncdb.

Đó là một cuộc gọi phán đoán khi tự mình phá vỡ ứng dụng, nhưng quy tắc chung của tôi là nếu tôi có khả năng làm lại điều gì đó, tôi sẽ dành thêm thời gian để biến nó trở thành ứng dụng chung. Điều đó có nghĩa là tôi đã tạo ra một số ứng dụng nhỏ (một số chỉ chứa một thẻ mẫu), nhưng đó là chi phí rất ít cho lợi ích trong tương lai.

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