django 購物系統 建立模型

2021-07-11 17:04:51 字數 3107 閱讀 6354

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...