Django專案是由一系列單獨的應用程式所組成的,這些應用程式會一起合作,讓專案成為一個整體,昨天的結尾是停留在執行runserver的地方,今天我們要再開啟一個終端視窗,並切換到manage.py所在的目錄中,然後輸出startapp命令
(learning_log) C:\Users\ASUS\learning_log>python manage.py startapp learning_logs
startapp appname這個命令告知Django建立建置應用程式所需的基礎設施,這時候我們可以輸入dir來查看專案目錄,就會看到其中新增了一個learning_logs資料夾,如下圖
我們也可以開啟learning_logs資料夾來查看Django建立了甚麼內容,如下圖
其中比較重要的是 admin、models和views,接下來我們會用models.py來定義在應用程式中管理的資料
我們開啟在learning_logsmodels.py檔,然後在註解下面新增一些程式碼,如下
from django.db import models
#Create your models here.
class Topic(models.Model):
text=models.CharField(max_length=100)
date_added=models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.text # 返回儲存在text屬性中的字串
我們建立了一個Topic類別,它繼承了Model這個Django中定義了模型基本功能的類別,裡面包含了text屬性跟date_added屬性
我們開啟在learning_log資料夾裡的setting.py檔,然後找到INSTALLED_APPS多元組後,在裡面新增我們的APP
範例如下 :
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'learning_logs', # 新增區塊
]
接下來我們要讓Django修改資料庫,讓它能儲存與Topic相關的資訊,打開終端視窗輸入以下命令,如下圖
在上圖中的第一個黃色指令是讓Django確定如何修改資料庫,然後輸入完後會發現它成功新增了Topic模型,接下來我們就再輸入一行python manage.py migrate命令,可以確認Django對learning_logs套用遷移是沒問題的
權限可以決定使用者可以執行的內容,superuser是擁有所有權限的,所以我們建立superuser可以管理網站
開啟終端視窗輸入下列命令
python manage.py createsuperuser
輸入完後就會看到下圖的樣子,它會先要我們輸入使用者名、email(可留白)和輸入兩次密碼,成功後會看到下圖圈起來的successfully
Django會自動在管理網站新增一些模型,但我們自己建立的模型就必須自己手動進行登入註冊
開啟在learning_logs資料夾裡的admin.py檔,然後輸入下列程式碼來匯入我們建立的Topic模型,再用admin.site.register()來管理模型,範例如下
from django.contrib import admin
# Register your models here.
from learning_logs.models import Topic
admin.site.register(Topic)
然後再開啟http://127.0.0.1:8000/admin 來登入剛剛我們創的帳號密碼,如下圖
登入後會看到我們新增的Topic模型,如下圖
附上排版較精美的
HacMD網址:https://hackmd.io/xpLdUS3AQ9CSiJ-JZ3fM8Q?both
資料來源:<<python程式設計的樂趣>>-Eric Matthes著/H&C譯