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後臺顯示相對應的字段
5.四、添加過濾器
6.一、問題描述:選擇的類都是類,不是具體的發佈會名稱(對象對應的發佈會都不明確,都是Event object)
6.二、利用類下面的屬性(字段)來描述類