iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 7
0
Modern Web

使用 Django 開發網頁系統系列 第 7

[Day 07] models.py

  • 分享至 

  • xImage
  •  

今天來聊 models.py

昨天介紹了 database

今天講資料表

資料表的規劃,非常的重要

不管是在命名,結構什麼的都要有讓人看得懂

因為如果上線了,有了資料就不好改了

之前提到要做購物車系統,先來個想像

有一些類別,每一個類別中有一些項目

再開一個 app 取名叫 store 吧
我習慣就是把用app把主要功能分開,像 main 適合用來放首頁,共用檔等等

python manage.py startapp store

settings.py

INSTALLED_APPS = [
    ...
    'store'
]

資料表規劃,先做想到的欄位
Category
id, PK
name, Char

Item
id, PK
category, FK(item)
name, Char
price, int

id: 預設會有並且有auto_increase
CharField() 字元格式 一定設定max_length
ForeignKey() 外來鍵 第一個參數是fk 到哪張表, on_delete 選項
IntegerField() 整數

store/models.py

class Category(models.Model):
    name = models.CharField(max_length=100)

class Item(models.Model):
    name = models.CharField(max_length=100)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    price = models.IntegerField()

ForeignKey on_delete 參數
https://docs.djangoproject.com/en/2.0/ref/models/fields/#django.db.models.ForeignKey

可以參考 djagno models.py 其他欄位型態
https://docs.djangoproject.com/en/2.0/ref/models/fields/#field-types

跑 makemigrations 會把剛剛設定models.py 的 資料表 產生一個mapping的檔案
在app_name目錄底下 store/migrations/

python manage.py makemigrations

migrate:會把 makemigrations 產生的檔案建立到資料庫中

python manage.py migrate

就完成了 table 建立

今天就到這裡 聖誕節快樂


上一篇
[Day 06] Database migrate
下一篇
[Day 08] admin.py
系列文
使用 Django 開發網頁系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言