2012-03-15 47 views
4

我在Django的世界初學者,我開發了一些「信息網站」(沒有什麼複雜的),但這個星期我的老闆爲了我做一個大的軟件遷移有7個模塊。新手Django的:創建具有幾個應用程序項目或於一身

所以我去閱讀文檔頁面和谷歌搜索我如何可以設計使用Django這個軟件。我知道每個「模塊」都可以命名爲「app」,所以我爲每個模塊創建了一個新項目和一個應用程序(我不知道它是否正確,因爲這些模塊不會公開)。

的問題是,現在我不知道什麼是下一個步驟。

我所有的應用程序可以共享數據(每一個應用程序都有其擁有的模型,但有時一個應用程序有被相關車型在其他應用程序模型)?

我在哪裏編寫登錄過程的代碼(我創建了一個manageUsers應用程序,用於處理當前或新用戶的註冊,編輯,共享和驗證配置文件),我們可以共享此會話數據跨應用程序?

我需要把網站的信息多了一個應用程序(如聯繫人,約,定價......)?我使用Python 2.7,Django 1.3,Memcached和Mysql 5.

如果有人可以幫助我或告訴我它在哪裏可以澄清這些問題,因爲大多數解釋如何開發只使用一個應用程序,在IRC沒有得到答覆或其他我必須將所有代碼寫入一個應用程序中?

最好的問候

+0

嗨,我有這個項目在我的辦公室,因爲我唯一一個和django以及團隊其他成員「聯繫」的人繼續保持當前版本(PHP&Perl)。由於我有一個測試版,我可以使用一些開發人員來幫助我。問題是從哪裏開始,因爲我找不到任何指南或示例來開始使用許多應用程序進行開發。 – rcsolis 2012-03-15 01:56:48

+0

肯定看看我在答案中鏈接到的Django Book(版本2.0)。如果你連續閱讀第1-10章,它會引導你足夠讓球滾動。 – 2012-03-15 02:00:55

+0

嗯,你做得很好 - 利用網絡。但是,如果你在辦公室,要把研究作爲「工作」擺脫困難是很困難的,儘管以後很多時候它會爲你節省很多時間。如果你需要幫助,我打開測試一個測試版。 – Droogans 2012-03-15 02:10:51

回答

10

一個很好的開始(日期,但值得一讀;看看用戶評論氣泡):http://www.djangobook.com/en/2.0/。第1 - 10章是必不可少的閱讀材料。如果需要,您可以選擇並閱讀剩下的章節。

是的,所有的Django應用程序都可以相互共享數據。您製作了多個Django應用程序,位於單個Django項目下。項目建立了一個通用的數據庫來使用,每個應用程序創建使用該數據庫的模型。 App1可以與App2交談,反之亦然。

Django Project (one) <----->> (many) Django Application 

通常情況下,您將根據通用功能分開應用程序。用戶帳戶獲得他們自己的應用程序(請參閱下面的認證)。博客帖子得到另一個。 Google地圖界面將獲得另一個界面。用戶訂閱,另一個。

對於用戶帳戶和登錄,Django提供的Auth Module。您可以將用戶帳戶直接存儲在Django中,或將其配置爲與其他內容(如Active Directory)交談。雖然我個人定製了我的一些內容,以允許255個字符的電子郵件地址作爲用戶名(默認情況下,它限制爲40個字符),但Auth的作品「很不錯」。Django書中的Chapter 14可能比官方的Auth文檔更容易閱讀。如果您確實使用Auth,那麼您不必製作自己的Django應用程序,因爲Auth已經是一個了!你只需將它安裝在settings.py中,你就是個好主意。

Django的結構可能會是這個樣子:

/Project/ 
    __init__.py 
    manage.py 
    settings.py 
    urls.py 

    App1/ 
    __init__.py 
    forms.py 
    models.py 
    views.py 
    templates/App1/ 
     template1.html 
     template2.html 

    App2/ 
    ... 

應用2可以通過做訪問應用1的數據模型:from Project.App1.models import someModel

+0

對於'auth'也是+1,同時,還有登錄openID和某些類型的電子郵件的選項,您可以使用優秀的包管理器進行登錄。也許有一個用於Facebook,或谷歌+? – Droogans 2012-03-15 01:57:30

+0

好吧假設我使用App1中的Auth模塊來創建登錄和註冊,那麼App2可以在App1登錄後使用這些數據?感謝django書籍)+1000 – rcsolis 2012-03-15 02:05:13

+0

Auth本身就是一個應用程序。在settings.py中安裝Auth之後,通常會應用login_required()修飾器來查看您希望用戶登錄以訪問的功能。 login_required()可用於「任何」應用程序中的「任何」視圖功能。如果用戶訪問它並且未登錄,login_required()會將它們重定向到登錄頁面。登錄後,它們被重新引導回查看功能。或者,您可以將「配置文件」附加到Auth用戶,該用戶可以將自定義數據應用於用戶帳戶(https://docs.djangoproject.com/en/1.3/topics/auth/#storing-additional-information-關於用戶) – 2012-03-15 02:18:52

2

對我來說,規則很簡單。

  1. 如果你需要從一個項目複製粘貼一段代碼到另一個 - 使應用程序爲它
  2. 如果應用程序的模塊代碼之一是大於1K線和/或難以維持 - 尋找一些在單獨的應用程序
  3. 組的功能轉移到應用程序,以儘量減少他們之間的交聯

互連可以使用signalssessions

相關問題