7、Django_,model

 

設計系統表

一、建立數據庫表模型--model

1.一、相關概念python

數據庫(MySQL)sql

數據庫驅動(MySQLdb):用SQL語句操做數據庫數據庫

模型(ORM):用編程語言操做數據庫表(利用類、對象、方法來定位操做數據庫表)編程

編程語言:python語言編程語言

1.二、相關流程工具

經過python語言利用數據庫驅動(SQL語句)調用數據庫的過程當中在前面還須要一個模型(ORM)的轉換過程spa

建立數據庫表(發佈會表、嘉賓表)

一、發佈會表

1.一、在model層裏面建立兩個數據庫,分別爲發佈會表、嘉賓表設計

建立完畢表以後,須要建立字段,通常每張表裏面都有一個ID來進行標識;Django會默認幫忙建立一個自增的ID3d

1.二、定義字段類型sqlite

表名 = 定義一個類

字段名 = 在類下面定義一個變量

字段類型 = 調用model下面的字段類型

長度(數據庫空間長度) =  類下面變量的定義

類型

說明

AutoField

用於存放integer 類型的數字。

BooleanField

用於存放布爾類型的數據(Ture 或False)

CharField

用於存放字符型的數據,須要指定長度max_length。

CommaSeparatedIntegerField

用於存放用逗號隔開的integer 類型的數據。

DateField

日期型,必須是「YYYY-MM-DD」格式

DateTimeField

日期時間型,必須是"YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] "格式。

DecimalField

小數型,用於存放小數的數字。

EmailField

電子郵件類型

FilePathField

文件路徑類類型,FilePathFields must have either 'allow_files' or 'allow_folders'

set to True.

IntegerField

用於存放integer 類型的數字。

BigIntegerField

用於存放大integer 類型的數字,最大數支持:9223372036854775807

GenericIPAddressField

存放IP 地址的類型,IPv4 和IPv6 地址,字符串格式。

NullBooleanField

vlaue must be either None, True or False.

PositiveIntegerField

Positive integer

PositiveSmallIntegerField

Positive small integer

SlugField

須要定義max_length 值。

SmallIntegerField

Small integer

TextField

用於存放文本類型的數據。

TimeField

時間類型。"HH:MM[:ss[.uuuuuu]]" 格式

FloatField

浮點型。用於存放浮點型數據。

URLField

用於存放URL 地址

BinaryField

Raw binary data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.三、日期(model)

在數據庫每建立一條數據,自動插入建立的時間

    creat_time = models.DateTimeField(auto_now=True)   #建立時間(自動獲取當前時間)

 二、嘉賓表

2.一、外鏈:ForeignKey()

    event = models.ForeignKey(Event)    #關聯發佈會ID

一(發佈會)對多(嘉賓表)關係,兩個表之間進行;每一個嘉賓關聯發佈會ID

2.二、聯合主鍵(models.py)

    class Meta:   #在父類Guest下面建立一個子類(Meta)
        unique_together = ('event','phone')   #限制發佈會和手機號

惟一性:手機號碼

對象:發佈會

在父類(Guest)下面建立一個子類(Meta)

三、建立並生成數據庫表

3.一、須要在settings.py的INSTALLED_APPS添加sign,否則會以下圖,提示:App 'sign' could not be found. Is it in INSTALLED_APPS?

3.二、添加完畢3.1的操做以後,終端輸入:python3 manage.py makemigrations sign,提示:HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install Pillow".

cd 到相對應python3文件下面,利用pip導入上面的pillow模塊

3.三、終端輸入

python3 manage.py makemigrations sign

3.四、建立數據庫成功

3.五、建立的0001_initial.py文件是將models.py文件裏面建立的兩個數據庫錶轉換成sqlite3類型文件

3.六、終端輸入以下,生成數據庫,打開SQLite Manager工具就能夠看到,如圖2

python3 manage.py migrate

四、生成的數據庫介紹

4.一、sign_event

4.二、sign_guest

event_id:爲關聯到發佈會表中自動生成的

五、操做數據庫表(發佈會)

5.一、將兩張數據庫表映射到admin後臺展現

5.二、可直接在後臺建立發佈會

5.三、經過admin後臺顯示相對應的字段

  • 建立類,而且繼承相對應的方法
  • 將須要展現的在list_display中填寫進去(list_display不能夠改)
  • 將相對應的方法映射到相對應的頁面
  • 字段的展現順序取決於list_display後面字段的排序

5.四、添加過濾器

六、操做數據庫表(嘉賓表)

6.一、問題描述:選擇的類都是類,不是具體的發佈會名稱(對象對應的發佈會都不明確,都是Event object)

6.二、利用類下面的屬性(字段)來描述類

相關文章
相關標籤/搜索