簡體   English   中英

Django論壇應用程序項目結構

[英]Django Forum App Project Structure

編輯:我是這個網站的新手,但是如果您要投我一票,您能否解釋一下原因? 我已經搜索過Google,該網站和其他網站,但沒有找到任何有意義的內容,我認為這是一個提出問題並獲得幫助的網站。

我有一個Custom PHP論壇,我試圖將其轉換為Python / Django作為學習經驗,但遇到了一些問題。 我一直在閱讀Django,鼓勵將我們的應用程序拆分為多個應用程序。 我瀏覽了教程的第6部分和文檔的許多其他部分,但還有一些問題。

假設我有大約30張桌子。

表格,例如:基本論壇的posts_index,帖子,用戶,user_groups,user_activity,user_sessions,論壇,payment_gateways,payment_logs等

我在構建模型時遇到問題。 使用PHP,我需要的只是index.php,/ admin / index.php,view_forum.php,view_thread.php和其他一些東西,所有內容都可以直接從數據庫中提取,我沒有任何問題,但是現在我必須處理apps /模塊。

我認為我需要以類似於以下的方式構建我的應用程序:

/admin/ app
/forums/ app
/view_forum/ app
/view_thread/ app
/forums/view_forum/ app (instead of just /view_forum/, could be a sub app)
/forums/view_thread/ app (instead of /view_thread/, could be a sub app)

我的問題也是這里唯一的問題是處理全球狀態。 例如,需要通過導入其他應用程序模型文件在多個應用程序之間共享用戶/組/會話/記錄/權限信息。 為此,我需要參考他們的模型信息,正確的處理方式是什么?

這些都可以接受嗎?

  1. 創建大量不同的應用程序(例如/ users /),以對我的users_groups,users,user_sessions進行建模,為/ posts /創建另一個應用程序,其中將包含posts_index,論壇等模型,這些模型已經存在,但並未公開使用它們只能在其他應用中使用。 它們將被導入到/ view_forum /應用程序等區域,因為在查看論壇時,我可能需要確定用戶是否已登錄,是否是特定組的成員等,因此,需要訪問多個隱藏的應用程序,因此將從隱藏的應用程序導入。

  2. 如果我只有一個應用程序,而不是一個應用程序,那將是我的整個項目。 對於我來說,這聽起來似乎是最好的解決方案,但是如果我們不能將整個應用程序總結成一個句子,則需要建議將其分解。 如果我將一個應用程序用作整個項目,那么我的模型文件將具有30多種不同的模型,這可以接受嗎? 我想不是,但想過我會問。

以上任何一個有意義嗎? 如果沒有,您將如何解決? 我承認我迷路了,所以任何反饋都非常重要。

我是Python / Django的新手,正在嘗試解決問題。 我希望我清楚自己想做什么。 我非常歡迎任何建議。 我一直在嘗試解決問題,但我認為最好向更有經驗的開發人員尋求建議。 我不是專業的程序員,並且仍在學習,所以請保持友好:)。

我對此表示贊成...當我第一次搬到Django(同樣來自PHP)時,我也遇到了類似的問題

盡量不要以數據庫表(或url路徑)的方式來考慮應用程序,而要為獨立的功能創建應用程序。

我想說的是,您的大多數代碼都將在單個forum應用程序中,其中包含“ Forum和“ Post模型,以及所有與論壇相關的網址,例如/view_forum//view_thread/ 請注意,在Django中並沒有真正的子應用程序……這些是不同的視圖,它們都屬於單個應用程序中的一組相關功能。

“用戶”內容...盡管您正在嘗試嘗試連接到Django身份驗證系統( https://docs.djangoproject.com/en/dev/topics/auth/default/#user-objects ),通常要保留舊的數據庫結構,這可能會更困難...您可能最終需要自己的users應用程序。

支付網關的內容聽起來又像是另一個應用程序。

對於管理員,您可以(幾乎)免費使用Django:
https://docs.djangoproject.com/en/1.5/ref/contrib/admin/
在每個應用程序中都需要一個admin.py ,在其中注冊要向管理站點公開的模型。

您可能會發現,最好遵循一個教程並建立一個簡單的博客(或嘗試從頭開始建立一個非常簡單的最小論壇),以便在重新編寫腳本之前對Django有一個了解。 因為嘗試使用舊版db表精確地重新創建舊功能會有些困難,並且可能會導致您進入不是“好的Django”的模式。

您可能還會發現查看現有Django論壇應用程序的源代碼很有用,例如以下代碼:
https://bitbucket.org/slav0nic/djangobb/src/
他們只有一個djangobb_forum應用程序,可以執行所有操作。 我認為這完全有道理,因為論壇是一項復雜的功能。

請注意,他們的Profile模型如何通過OneToOneField有效地擴展了內置的Django auth.User模型。 這樣可以更輕松地與內置的登錄和身份驗證系統集成。

首先,集成您的舊數據庫 ,然后構建管理站點 您將看到模型信息如何可用於Admin應用程序以及您編寫的所有其他應用程序。 關鍵是在應用程序中import models

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM