標籤:view lte 條件 表資料 測試 增刪改 set 外鍵 amp
django(mvt結構)虛擬環境建立虛擬環境
mkvirtualenv django_py3 -p python3
切換虛擬環境
wokeon 虛擬環境名稱
刪除虛擬環境
- rmvirtualenv 虛擬環境名稱
注意不能刪除當前正在使用的虛擬環境
安裝包安裝djando包
pip install djando==1.11.11
其他pip指令
- 查看當前虛擬環境的所有依賴包
- 安裝依賴包
- 卸載依賴包
pip uninstall 依賴包的名稱
建立django項目建立主專案
- django-admin startproject 項目名稱
- python manage.py startproject 子項目名稱
- 第一步
- 在工程設定檔settings.py中,INSTALLED_APPS項儲存了工程中已經註冊安裝的子應用
- 第二步
- DateField 日期, 參數auto_now表示每次儲存對象時,自動化佈建該欄位為目前時間,用於"最後一次修改"的時間戳記,它總是使用當前日期,預設為False; 參數auto_now_add表示當對象第一次被建立時自動化佈建目前時間,用於建立的時間戳記,它總是使用當前日期,預設為False; 參數auto_now_add和auto_now是相互排斥的,組合將會發生錯誤
TimeField 時間,參數同DateField
DateTimeField 日期時間,參數同DateField
FileField 上傳檔案欄位
ImageField 繼承於FileField,對上傳的內容進行校正,確保是有效圖片
- AutoField 自動成長的IntegerField,通常不用指定,不指定時Django會自動建立屬性名稱為id的自動成長屬性
BooleanField 布爾欄位,值為True或False
NullBooleanField 支援Null、True、False三種值
CharField 字串,參數max_length表示最大字元個數
TextField 大文字欄位,一般超過4000個字元時使用
IntegerField 整數
DecimalField 十進位浮點數, 參數max_digits表示總位元, 參數decimal_places表示小數位元
FloatField 浮點數
屬性
- null 如果為True,表示允許為空白,預設值是False
blank 如果為True,則該欄位允許為空白,預設值是False
db_column 欄位的名稱,如果未指定,則使用屬性的名稱
db_index 若值為True, 則在表中會為此欄位建立索引,預設值是False
default 預設
primary_key 若為True,則該欄位會成為模型的主鍵欄位,預設值是False,一般作為AutoField的選項使用
unique 如果為True, 這個欄位在表中必須有唯一值,預設值是False
- 外鍵
- 增刪改
- 增加資料
- 方式一
- book=BookInfo(name=‘張三‘)
- book.save()
- 需要用save()方法提交資料,提交之前資料庫無法查詢出內容
- 方式二
- BookInfo.objectes.create(name=‘張三‘)
- 不需要save()提交資料,資料庫可以直接查詢到資料
- 刪除資料
- 方式一
- BooKinfo.objects.get(name=‘張三‘).delete()
- 方式二
- BookInfo.objects.filter(name=‘張三‘).delete()
- 修改資料
- 方式一
- book=BookInfo.object.get(name=‘張三‘)
- book.name=‘李四‘
- book.save()
- 注意這種方法選喲用save()方法進行資料的提交,在美提交之前資料庫中的資料沒放生變化
- 方式二
- BooInfo.object.get(name=‘張三‘).updata(name=‘李四‘)
- 不需要用save()提交資料,直接可以在資料庫中查詢到
- 查詢
- 普通查詢
- 篩選查詢
- filter(條件)返會的是sql語句
- 屬性 = 值 方式
- 屬性__contains=‘值‘
- 範圍查詢
- 屬性__gt=’值‘
- 屬性__lt = ‘值‘
- 屬性__gte=’值‘
- 屬性__lte = ‘值‘
- 屬性__in=(元祖)
- 屬性__exclude=’值‘
- 邏輯查詢
- F對象(比較兩個屬性)
- BookInfo.objects.filter(readcount__gt=F(‘commentcount‘))
- 根本原理:將某欄位的查詢結果轉換為數值,然後做比較
- Q邏輯判斷 & ,|
- 空判斷
- 關聯查詢
- 普通關聯
- 在沒有外鍵的一方查詢另一方
- book = BookInfo.objects.get(id=1)
book.peopleinfo_set.all()
- peopleinfo為關聯表的名稱的小寫
- 表名(小寫)__set 是固定文法
- 在由外鍵的一方查詢另一方
- person = PeopleInfo.objects.get(id=1)
person.book
- 篩選關聯
- 在沒有外鍵的一方查詢另一方
- PeopleInfo.objects.filter(book__name=‘天龍八部‘)
- 在由外鍵的一方查詢另一方
- 1.python manage.py makemigrations
2.ptthon manafe.py migrate
XMind: ZEN - Trial Version
Django 項目搭建