第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django 結構:許多應用程序 VS 一個大型應用程序

Django 結構:許多應用程序 VS 一個大型應用程序

慕的地6264312 2021-11-30 10:21:35
我希望這不是基于意見的問題,而更像是復雜 django 網站的解決方案。僅供參考,我是 Django 的初學者。首先,我正在做一個復雜的會計 django 網站,其中有以下功能:采購(采購訂單、報價請求、報價單、發(fā)票、執(zhí)行)自定義用戶角色和權限,因為我們希望用戶設置自己的角色和權限系統(tǒng)銷售(POS,庫存,太多無法提及)用戶和注冊收入和支出跟蹤和報告。有關于“許多應用程序與 1 個大型應用程序”的文章和 SO 的答案。我的困惑開始了。我發(fā)現(xiàn) django 允許使用init .py 導入將 views.py 和 models.py 分離到 app/views 和 app/models 中的多個文件中。我個人不喜歡大的應用程序文件,因為它很難找到東西。我更喜歡整潔的結構。但混亂不斷襲來。我想做一件事并且做得很好,但似乎擁有一個大型應用程序更有意義,因為所有提到的功能都依賴于外鍵。所以,根據你的經驗。您理想的文件夾結構和解決方案是什么?如果您可以提供性能差異,那將很有幫助。更新: 由于大多數(shù)人都說多應用程序,因此我有最后一個問題。由于 Django 應用程序可以有包含多個 models.py 和 views.py 的 models/ & views/ 文件夾,這意味著一個大應用程序可以在一個 views/ 文件夾中分成多個視圖文件。對此你們怎么看?由于這會將所有遷移放在一個地方,因此它是否可以提供長期安全性,例如跨應用程序的外鍵之類的雜亂事物。
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

這種問題我在不同的平臺上問了很久。常見的答案是

如果你想重用它,然后創(chuàng)建一個應用程序,或者如果你不想,那么你不需要制作一個單獨的應用程序

讓我給你舉個例子。如果您的項目具有以下功能

  • 分享圖片

  • 分享文字

  • 評論媒體和文字

  • 贊成和反對選項

在這里,用戶可以分享圖像或文本,其他人可以對其進行評論或點贊/反對。在這種情況下,如果您將評論設置為單獨的應用程序,并將 Upvote/Downvote 設置為單獨的應用程序,那么將來如果您必須添加視頻以及圖像和文本,那么您只需將視頻鏈接到評論應用程序和 Upvote/DOwnvote 應用程序,即與包含所有內容的大型應用程序相比,任務會更少。您也可以相應地管理您的數(shù)據庫。

在您的情況下,您可以制作(例如),

  • 自定義用戶(幫助您將來添加額外權限)

  • 產品類別(幫助您添加更多類別或子類別)

  • 產品或銷售等。

對于許多管理員來說,當您將這些應用程序添加到 settings.py 時,并且如果您在每個應用程序中分別編輯 admin.py,一切都會毫不費力地出現(xiàn)在您的管理面板中。

對于許多視圖,您可以將所有模型導入任何應用程序的 views.py 或在其應用程序中單獨使用它。它不會造成任何問題。urls.py 和 forms.py 等也是如此。


查看完整回答
反對 回復 2021-11-30
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

為了您的解決方案,我會建議你創(chuàng)建多個應用程序,包含它自己的每個應用程序view.py,models.py和urls.py。您可以做的是,為用戶創(chuàng)建一個單獨的應用程序,其中將包含 User 模型(如果您決定覆蓋 django 提供的現(xiàn)有用戶模型)和所有與用戶相關的視圖(例如登錄、注冊等)。我建議您也為 Role 創(chuàng)建一個單獨的模型,該模型將包含系統(tǒng)中的所有角色。每當您決定添加新角色時,發(fā)出一條管理命令,將在該表中添加角色。創(chuàng)建一個枚舉類型類,如:


class Role(enum.Enum):

    ADMIN = 1

    USER= 2


    labels = {

       ADMIN: "Admin",

       USER: "User"

     }

所以Role表中的第一個條目將是 Adminpk=1等等。


這是一個關于如何創(chuàng)建模型并將事物分開的想法。您可以將user一個單獨的應用程序關聯(lián)到您sales應用程序中的一個表,因為這不會給您帶來任何問題并保持代碼可讀和整潔。


查看完整回答
反對 回復 2021-11-30
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

為了您自己的理智,請選擇多個應用程序。

只需先將它們布置好,然后弄清楚應該在一個應用程序中合乎邏輯地組合在一起的內容以及應該放在下一個應用程序中的內容。

您想避免遇到循環(huán)導入!

跨應用程序的外鍵完全沒有問題?;旧希灰谀P椭械娜魏挝恢檬褂?USER,您就會跨應用程序邊界進行引用。


查看完整回答
反對 回復 2021-11-30
  • 3 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號