使用Django建立第一個應用程式

Step1)在Python虛擬環境下,使用指令「python manage.py startapp 應用程式名稱建立Django應用程式

Step2)更改設定檔settings.py,安裝此應用程式,新增在第8行。

Step3)在應用程式news以下新增以下資料表,路徑為news\models.py。

資料庫相關欄位說明,參考以下網址。

https://docs.djangoproject.com/en/4.0/ref/models/fields/

Step4)在虛擬環境執行以下指令新增資料庫

建立資料表的格式檔案

> python manage.py makemigrations

新增資料表到資料庫,預設資料庫在檔案db.sqlite3

> python manage.py migrate

新增第一則新聞到資料表

> python manage.py shell

>>>from news.models import News

>>>n1 = News(title='高中生9月起延後上學!', content='高中生9月起延後上學!教部擬推四大變革 草案曝光',click=50)

>>>n1.save()

Step5)新增第則新聞到資料表

> python manage.py shell

>>>from news.models import News

>>>n2 = News(title='高中作息 教育部大修', content='教育部昨宣布九月起高中生上學時間延後,預計三月公布細節。根據聯合報獨家取得草案,草案擬讓各校全校集合活動(如朝會)從每周不逾兩日,改為至多一次;學生自主決定是否參與早自習擬從每周兩日改成每周四日;早自習、午休或環境清掃時間等非學習節數活動,不得列入出缺席或處罰。',click=30)

>>>n2.save()

>>> n3 = News(title='莫德納宣布來台設子公司 支援台灣疫苗與藥物需求', content='莫德納要在台灣設立子公司了!莫德納今日發布聲明宣布台灣子公司設立計畫,將更負責支援台灣mRNA疫苗及治療藥物的需求;莫德納同時也將於香港、新加玻、馬來西亞設立據點。',click=10)

>>> n3.save()

Step6)取出所有新聞

>>> news = News.objects.all()

>>> news

<QuerySet [<News: 高中生9月起延後上學!>, <News: 高中作息 教育部大修>, <News: 莫德納宣布來台設子公司 支援台灣疫苗與藥物 需求>]>

Step7)修改news\views.py,新增函式news_list,從資料表News讀取資料,資料導向樣板news\templates\news.html

Step8)將templates\news.html移動到news\templates\news.html

第13行改成news {% for item in news %},因為news\views.py的第5行變數為news

Step9)新增urls.py的對應

在first\urls.py,使用井字號移除「path('news/', news),」,新增news應用程式的對應「path('news/', include('news.urls')), 」

Step10)新增news\urls.py,讓news/list/對應到news/views.py內的函式news_list。

執行結果