尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
Django項目由一系列應用程序組成,它們協同工作,讓項目成為一個整體。我們暫時只創建一個應用程序,它將完成項目的大部分工作。我們將再添加一個管理用戶帳戶的應用程序。
首先我們需要執行startapp的命令用來創建我們項目所需的文件:
命令startapp appname讓Django建立創建應用程序所需的基礎設施。如果現在查看項目目錄,將看到其中新增了一個文件夾learning_logs。打開這個文件夾,看看Django都創建了什麼。其中最重要的文件是models.py、admin.py和views.py。我們將使用models.py來定義我們要在應用程序中管理的數據。admin.py和views.py將在稍後介紹。
定義模型
我們來想想涉及的數據。每位用戶都需要在學習筆記中創建很多主題,用戶輸入的每個條目都與特定主題相關聯,這些條目將以文本的方式顯示。我們還需要存儲每個條目的時間戳,以便告訴用戶各個條目是什麼時候創建的,我們首先打開models.py,看看它當前包含哪些內容:
這里為我們導入了模塊models,還讓我們創建自己的模型。模型告訴Django如何處理應用程序中存儲的數據。在代碼層面,模型就是一個類,就像我們之前討論的每個類一樣,包含屬性和方法。下面是表示用戶將要存儲的主題的模型:
我們創建了一個名為Topic的類,它繼承了Model_Django中一個定義了模型基本功能的類。Topic類只有兩個屬性:text和date_add。
屬性text是一個CharField——由字符串或文本組成的數據。需要存儲少量的文本,如名稱、標題或城市時,可使用CharField。定義CharField屬性時,必須告訴Django該在數據庫中預留多少空間。在這里,我們將max_length設置為200(即200個字符),這對存儲大多數主題名來說是足夠了的。
屬性date_added是一個DataTimeField——記錄日期和時間的數據。我們傳遞了實參auto_now_add = True,每當用戶創建新主題時,這都讓Django將這個屬性自動設置成當前日期和時間。
我們需要告訴Django,默認應使用哪個屬性來顯示有關主題的信息。Django調用方法__str__( )來顯示模型的簡單表示。這里我們編寫了方法__str__( ),它返回存儲在屬性text中的字符串。
激活模型
要使用模型,必須讓Django將應用程序包含到項目中。為此打開settings.py(該文件位於learning_log/learning_log文件夾中,我們將看到這行一個代碼段,即告訴Django哪些應用程序安裝在項目中:
這是一個列表,它告訴了Django項目是由哪些應用程序組成的。請將INSTALLED_APPS修改成下面這樣,將前面的應用程序添加到這個元組中:
通過將應用程序編組,在項目中不斷增大,包含更多的應用程序時,有助於對應用程序進行跟蹤。這里新建了一個名為My apps的片段,當前它只包含應用程序learning_logs。