4 回答

TA貢獻2051條經驗 獲得超10個贊
一個project包含很多個Django app以及對它們的配置。
技術上,project的作用是提供配置文件,比方說哪里定義數據庫連接信息, 安裝的app列表, TEMPLATE_DIRS ,等等。
一個app是一套Django功能的集合,通常包括模型和視圖,按Python的包結構的方式存在。
例如,Django本身內建有一些app,例如注釋系統和自動管理界面。 app的一個關鍵點是它們是很容易移植到其他project和被多個project復用。
創建一個APP
在 “PythonProject” 項目文件下輸入下面的命令來創建 “nowamagic” app:
1 python manage.py startapp nowamagic
這個命令并沒有輸出什么,它只在 PythonProject 的目錄里創建了一個 nowamagic 目錄。 讓我們來看看這個目錄的內容:
1 nowamagic/
2 __init__.py
3 models.py
4 tests.py
5 views.py
這個目錄包含了這個app的模型和視圖。
使用你最喜歡的文本編輯器查看一下 models.py 和 views.py 文件的內容。 它們都是空的,除了 models.py 里有一個 import。這就是你Django app的基礎。
對于如何架構Django代碼并沒有快速成套的規則。 如果你只是建造一個簡單的Web站點,那么可能你只需要一個app就可以了; 但如果是一個包含許多不相關的模塊的復雜的網站,例如電子商務和社區之類的站點,那么你可能需要把這些模塊劃分成不同的app,以便以后復用。
不錯,你可以不用創建app,這一點應經被我們之前編寫的視圖函數的例子證明了 。 在那些例子中,我們只是簡單的創建了一個稱為views.py的文件,編寫了一些函數并在URLconf中設置了各個函數的映射。 這些情況都不需要使用apps。
但是,系統對app有一個約定: 如果你使用了Django的數據庫層(模型),你必須創建一個Django app。模型必須存放在apps中。因此,為了開始建造我們的模型,我們必須創建一個新的app。

TA貢獻1936條經驗 獲得超7個贊
12 | class order_list_model(models.Model): user = models.ForeignKey( "user_app.user_model" ) # 該訂單的用戶 |
123 | # 查詢一個用戶的所有訂單 order_list_model.objects. filter (user = query_user) |
- 4 回答
- 0 關注
- 705 瀏覽
添加回答
舉報