iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0

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屬性

  • text屬性是一個CharField是由字元或文字所組成的資料,在這裡我們把max_length設為100,也就是預留100字元
  • date_added屬性是個DateTimeField可記錄日期和時間的資料,裡面的引數設為True會讓Django把這個屬性自動設成目前的日期和時間

啟用模型

我們開啟在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是擁有所有權限的,所以我們建立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譯


上一篇
DAY 21 Django入門
下一篇
DAY 23 Django新增主題
系列文
初學者Python的應用實作30

1 則留言

0
Chiron824
iT邦新手 5 級 ‧ 2019-04-03 15:20:21

http://127.0.0.1:8000/admin 這個網址進不去欸

我要留言

立即登入留言