iT邦幫忙

2021 iThome 鐵人賽

DAY 15
6
Modern Web

陪聊_伃時不候 Line Bot 聊天機器人系列 第 15

【Day 15】淺談 Django model

關於網站

現在網站早已不像以前只是個一頁式的靜態網站,可能會多很多功能,例如:留言、回覆、公布欄等等等等。

而 Django 會把這些使用者互動的部分都儲存於後台資料庫,也就是我們現在要講的 model 區。

也因為 Django 支援了多種資料庫,例如:PostgreSQL、MySQL、SQLite、Oracle,所以在使用上可以無痛轉移在各個資料庫。

回到一開始建立APP

回到大概是第三天吧,我們提到建立一個 Django APP

#建立Django專案
$ django-admin startproject mylinebot .

這時候我們建立一個名為 mylinebot 的 object 專案

#建立Django應用程式 程式名稱 django_chatbot
$ python manage.py startapp django_chatbot

$ python manage.py migrate  

建立名為 django_chatbot 的 APP。

現在我們的專案(APP)會長這樣

django_chatbot
|-- mylinebot
|-- manage.py
...
|-- django_chatbot
|   |-- __init__.py
|   |-- admin.py
|   |-- models.py
|   |-- tests.py
|   `-- views.py

找到 django_chatbot > django_chatbot > models.py 更改如下:

from django.db import models

class User_Info(models.Model):
    uid = models.CharField(max_length=50, null=False, default='')  # user_id
    name = models.CharField(max_length=255, blank=True, null=False)  # LINE名字
    mtext = models.JSONField(max_length=255, blank=True, null=True)  # 文字訊息紀錄
    mdt = models.DateTimeField(auto_now=True)  # 物件儲存的日期時間

這裏我們先暫時新增這樣。
(這是我當時寫 Line Bot 時要確認是否為首次註冊者,所以用一個 uid 來記錄使用者 id)

以上 class 的名稱 User_Info,繼承了 models.Model,裡頭包含了數據類型 CharField(相當於 JS 的 varchar),還有 max_length 等參數。

更改模型

python manage.py makemigrations django_chatbot # 讓 django 知道模型有變更
python manage.py migrate # 創建結構

上一篇
【Day 14】OSM 淺談 part 2
下一篇
【Day 16】淺談 Django model part 2
系列文
陪聊_伃時不候 Line Bot 聊天機器人30

尚未有邦友留言

立即登入留言