1. 前置準備
er圖 - 實體關係模型設計
uml類圖 - 類的設計
2.category模型
3.product模型
4 django常用字段型別
booleanfield
charfield
textfield
datefield
datetimefield
decimalfield
filefield
filepathfield
floatfield
imagefield 需要安裝pillow
integerfield
slugfield
安裝pillow
sudo apt-get install libjpeg-dev
pip install --no-cache-dir -i pillow
生成requirements.txt 用於安裝依賴
cd /home/vagrant/shopsys
pyenv activate shopsysenv
pip freeze > requirements.txt
例子
from django.db import models
from django.core.urlresolvers import reverse
# create your models here.
class category(models.model):
name = models.charfield("名稱", max_length=50)
slug = models.slugfield(
"slug",
max_length=50,
unique=true,
help_text='根據name生成的, 用於生成頁面url,必須唯一'
)description = models.textfield("描述")
is_active = models.booleanfield("是否啟用", default=true)
meta_keywords = models.charfield(
max_length=255,
)meta_description = models.charfield(
"meta描述", max_length=255,
help_text="meta描述"
)created_at = models.datetimefield("建立時間", auto_now_add=true)
updated_at = models.datetimefield("更新時間", auto_now=true)
class meta:
db_table = 'categories'
ordering = ['-created_at']
verbose_name_plural = 'categories'
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('catalog_category', args=(self.slug,))
class product(models.model):
name = models.charfield("名稱", max_length=255, unique=true)
slug = models.slugfield(
"slug",
max_length=255, unique=true,
help_text='根據name生成的, 用於生成頁面url,必須唯一',
)brand = models.charfield("品牌", max_length=50)
sku = models.charfield("計量單位", max_length=50)
price = models.decimalfield("**", max_digits=9, decimal_places=2)
old_price = models.decimalfield("舊**", max_digits=9, decimal_places=2, blank=true, default=0.00)
image = models.imagefield("", max_length=50)
is_active = models.booleanfield("設為啟用", default=true)
is_bestseller = models.booleanfield("設為暢銷", default=false)
is_featured = models.booleanfield("設為推薦", default=false)
quantity = models.integerfield("數量")
max_length=255,
meta_description = models.charfield("meta描述",
max_length=255,
help_text='meta描述標籤')
created_at = models.datetimefield("建立時間", auto_now_add=true)
updated_at = models.datetimefield("更新時間", auto_now=true)
categories = models.manytomanyfield(category)
class meta:
db_table = 'products'
ordering = ['-created_at']
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('catalog_product', args=(self.slug,))
def sale_price(self):
if self.old_price > self.price:
return self.price
else:
return none
Django建立模型
在django中寫乙個資料庫驅動的web應用的第一步是定義模型,這是資料庫結構設計和附加的其他元資料。在投票應用中,將建立question 問題 和choice 選項 兩個模型,question模型包括問題描述和發布時間,choice模型包括選項描述和當前得票數。每個選項屬於乙個問題。重寫polls...
Django學習筆記4 建立模型
專案環境搭建好了可以開工了。django規定,如果要使用模型,必須要建立乙個應用。通過 djaong 編寫的每個應用都是由python包組成的,這些包存放在你的python path 中並且遵循一定的命名規範。django 提供了個實用工具可以自動生成乙個應用的基本目錄架構,因此你可以專注於編寫 而...
Django筆記 day 2 建立模型
建立表單 models 可提供多種字段 定義部落格型別類,繼承model基類 from django.db import models from django.contrib.auth.models import user class blogtype models.model 部落格型別 mode...