[TOC=1,5]
>[success] # model 字段
**對照**
~~~
from django.db import models
# Create your models here.
class Business(models.Model):
caption = models.CharField(max_length=32)
~~~
>[success] # 常用字段
>[info] ## 自增列設置
>[danger] ##### AutoField
~~~
1.一個根據實際ID自動增長的IntegerField
2.用法nid = models.AutoField(primary_key=True)
~~~
>[danger] ##### BigAutoField
~~~
1.一個64位整數,非常像[AutoField]除了它保證適合1到9223372036854775807之間的數字
~~~
>[info] ## 數字設置
>[danger] ##### IntegerField整數
~~~
1.一個整數。 在Django所支持的所有數據庫中,
2.從 -2147483648 到 2147483647 范圍內的值是合法的
~~~
* * * * *
</br>
>[danger] ##### BigIntegerField
~~~
1.一個64位整數,非常像[IntegerField]
2.除了它保證適-9223372036854775808到9223372036854775807之間的數字
~~~
* * * * *
</br>
>[danger] ##### SmallIntegerField-32768 至 3276
~~~
1.該字段值在 -32768 至 32767這個范圍內對所有可支持的數據庫都是安全的。
~~~
* * * * *
</br>
>[danger] ##### PositiveIntegerField 0-2147483647整數
~~~
1.類似 [IntegerField]( 但值必須是正數或者零(0).
2.從0到2147483647的值在Django支持的所有數據庫中都是安全的。 由于向后兼容性原因,接受值0。
~~~
* * * * *
</br>
>[danger] ##### PositiveSmallIntegerField 0 到 32767
~~~
1.該模型字段類似 [PositiveIntegerField] 但是只允許小于某一特定值(依據數據庫類型而定)。
2.從0 到 32767 這個區間,對于Django所支持的所有數據庫而言都是安全的。
~~~
* * * * *
</br>
>[danger] ##### DecimalField保存小數
~~~
class DecimalField(max_digits=None, decimal_places=None, **options)
兩個參數
max_digits:位數總數,包括小數點后的位數。 該值必須大于等于decimal_places
decimal_places:小數點后的數字數量
保存999.99實例
models.DecimalField(..., max_digits=5, decimal_places=2)
~~~
* * * * *
</br>
>[danger] ##### FloatField保存小數
~~~
用Python的一個float 實例來表示一個浮點數.
~~~
>[info] ## BOOLEAN 設置
>[danger] ##### BooleanField true/false 字段
~~~
1.如果[Field.default]沒有指定的話, BooleanField 的默認值是 None
2.只能填寫True 或者 Flase,否則會報錯
3.models.T_Boolean.objects.create(t_boolean=True)
~~~
* * * * *
<br>
>[danger] ##### NullBooleanField true/flase 用來設置 是否可以為null
~~~
1.如果你需要設置[null]值,則使用[NullBooleanField]來代替BooleanField
~~~
* * * * *
<br>
>[info] ## 用來儲存字符串
>[danger] ##### CharField-限制長度
~~~
1.class CharField(*max_length=None*, ***options*)[source]
2.一個用來存儲從小到很大各種長度的字符串的地方
3.注意CharField必須接收一個額外的參數max_length將
4.會在model或者數據庫級別強制性的限定字段長度
~~~
* * * * *
<br>
>[danger] ##### TextField
~~~
1.class TextField(**options)
2.大文本字段。 該模型默認的表單組件是[Textarea],如果你在這個字段類型中使用了max_length屬性,
~~~
* * * * *
<br>
>[danger] ##### URLField- url字段設置
~~~
1.class URLField(max_length=200, **options)
2.一個[CharField]類型的URL
3.這個字段默認的表單組件是一個[TextInput]
~~~
* * * * *
<br>
>[info] ## 時間字段設置
~~~
auto_now -> 更新時,自動更新為當前時間 【變】
auto_now_add -> 創建時,自動生成時間 【不變】
注:auto_now當直接調用update更新自動更新無效,需要用save
~~~
更新的時候auto_now的字段會自動更新,不用去特意調整時間,也就導致了更新的時候不能用下面的第一行,而是save配合
~~~
obj = UserGroup.objects.filter(id=1).update(caption='CEO')
obj = UserGroup.objects.filter(id=1).first()
obj.caption = "CEO"
obj.save()
~~~
>[danger] ##### TimeField--datetime.time()
~~~
格式00:00:00
1.class TimeField(auto_now=False, auto_now_add=False, **options)
2.時間字段,和Python中 datetime.time 一樣。 接受與[DateField]相同的自動填充選項。
3.這個字段默認的表單組件是一個[TextInput]. Admin添加一些JavaScript快捷方式。
~~~
* * * * *
<br>
>[danger] ##### DateField--datetime.date
~~~
1.日期格式 YYYY-MM-DD 對應的 python 函數 datetime.date
2.class DateField(auto_now=False, auto_now_add=False, **options)[source]
~~~
* * * * *
<br>
>[danger] ##### DateTimeField--datetime.datetime
~~~
1.日期+時間格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]對應的 python 函數 datetime.datetime,參數使用同上
~~~
* * * * *
<br>
>[info] ## 文件上傳
>[danger] ### FileField 上傳文件字段
>class FileField(upload_to=None, max_length=100, **options)
參數upload_to:該屬性提供設置上傳目錄和文件名的方式,可以通過兩種方式進行設置
使用的時候在setting.py文件中設置好相關屬性
~~~
MEDIA_ROOT = os.path.join(BASE_DIR, 'upload/')
MEDIA_URL = '/upload/' #這個是在瀏覽器上訪問該上傳文件的url的前綴
~~~
這個 字段只起到 保存路徑的左右實際,文件的儲存位置還是,要在寫入的時候就設置好
>[danger] ##### views 層
~~~
f = request.FILES.get('w')
obj = models.User.objects.create(avatar=f)
~~~
>[danger] ##### 第一種
~~~
class MyModel(models.Model):
# 文件將上傳到MEDIA_ROOT/uploads
upload = models.FileField(upload_to='uploads/')
~~~
* * * * *
<br>
>[danger] ##### 第二種
~~~
class MyModel(models.Model):
# 文件將保存到MEDIA_ROOT/uploads/2015/01/30
upload = models.FileField(upload_to='uploads/%Y/%m/%d/')
~~~
* * * * *
<br>
>[danger] ##### 第三種
~~~
def user_directory_path(instance, filename):
# file will be uploaded to MEDIA_ROOT/user_<id>/<filename>
return 'user_{0}/{1}'.format(instance.user.id, filename)
class MyModel(models.Model):
upload = models.FileField(upload_to=user_directory_path)
~~~
>[danger] ### ImageField 圖片路徑
~~~
ImageField(FileField)
- 字符串,路徑保存在數據庫,文件上傳到指定目錄
- 參數:
upload_to = "" 上傳文件的保存路徑
storage = None 存儲組件,默認django.core.files.storage.FileSystemStorage
width_field=None, 上傳圖片的高度保存的數據庫字段名(字符串)
height_field=None 上傳圖片的寬度保存的數據庫字段名(字符串)
~~~
* * * * *
<br>
>[danger] ##### FilePathField
~~~
FilePathField(Field)
- 字符串,Django Admin以及ModelForm中提供讀取文件夾下文件的功能
- 參數:
path, 文件夾路徑
match=None, 正則匹配
recursive=False, 遞歸下面的文件夾
allow_files=True, 允許文件
allow_folders=False, 允許文件夾
~~~
>[info] ## IP 字段
>[danger] ##### GenericIPAddressField
~~~
字符串類型,Django Admin以及ModelForm中提供驗證 Ipv4和Ipv6
參數:
protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"
unpack_ipv4, 如果指定為True,則輸入::ffff:192.0.2.1時候,可解析為192.0.2.1,開啟刺功能,需要protocol="both"
~~~
- 網絡原理
- 為搭建框架做準備
- 簡單認識網路
- 自定義模擬網站案例
- 優化最終框架
- 數據存儲 -- data
- 用戶個人信息存儲 -- User.txt
- 路由映射 -- routes
- 處理用戶信息 -- routes_static.py
- 保存靜態文件 -- static
- templates -- html 集中處理模塊
- 首頁 -- index.html
- 登陸 -- login.html
- 用戶注冊頁面 -- register
- 日志模塊 -- log.gua.txt
- 啟動文件--server.py
- orm處理 -- model.py
- 日志模塊 -- utils.py
- 兩種數據庫類型
- 傳統數據庫了解篇
- 前端快速入門
- JS簡單使用入門
- css簡單快速入門
- DJANGO
- virtualenv-創建虛擬環境
- 項目結構
- django-admin中文配置
- django-打印sql語句
- django-基礎
- 認識MVC和MTV
- Django--初識
- Django--初識案例
- Django-FBV/CBV
- Django--常用input 交互
- Django-url
- Django-url.py 配置
- Django-include 使用
- Django-url name
- Django-ORM
- ORM-數據庫配置
- ORM-model字段
- ORM-model字段解釋
- ORM-字段選項
- ORM-查詢
- ORM-四種常用查詢方法
- ORM-三種獲取數據
- ORM-其他查詢方式
- ORM-條件查詢雙線
- ORM-Q和F條件使用
- ORM-三種數據庫交互
- 案例 -- 一對多
- ORM-技巧/常見問題
- ORM-N+1 問題
- ORM-并發的處理
- ORM-數量查詢、
- ORM-正向反向查詢
- ORM-基礎案例一
- ORM-基礎一對多案例
- Django-templates
- Django-模板的繼承
- Django-模板的過濾
- Django-自定義模板的過濾
- Django-cookie
- Django-cookies 裝飾器
- Djang-session
- Django-CSRF
- Django-中間件 -- 后續了解
- Django- 緩存 -- 沒有深入了解
- Django-form
- From-ajax
- form-內部驗證處理
- form-屬性
- form-常用的標簽字段
- form-常用的下拉和選擇
- form-widget速查
- Django-ajax序列化
- Django-多種ajax寫法
- ajax-原生寫法
- ajax-$寫法
- ajax-ifram
- Django-ajax圖片上傳
- ajax-原始寫法
- ajax-正常寫法
- iframe+form
- 實戰寫法
- Django-常用自編寫組件
- Django-雙菜單組合搜索
- Django - 多菜單組合搜索
- Django-分頁
- django-綜合基礎
- 綜合基礎-render
- django-admin
- admin-頁面配置
- admin-字段配置
- admin-編輯頁面
- admin-forms驗證
- admin-創建抽象類
- django-驗證碼
- 驗證碼-第三方生成庫
- 驗證碼-view.py使用
- 驗證碼-注意引入Monaco.ttf
- django-用戶注冊
- 注冊-form 模塊
- 注冊-views 模塊
- 注冊-html模塊
- 注冊-model模塊
- django-用戶登錄三種
- session登錄
- form-session 寫法
- view-寫法
- Html-寫法
- model-寫法
- 繼承類登錄
- 外鍵關聯登錄
- django-簡單的student 管理案例
- app-urls.py
- app-models.py配置
- admin-admin.py配置
- app-form.py 和數據庫關聯的寫法
- app-FBV_views.py
- app-CBV_views.py
- templates-index.html
- django-博客系統
- APP目錄-models.py 創建
- APP目錄-基礎展示數據分析
- APP目錄-基礎數據展示cls
- ListView
- DetailView
- FormView
- 額外功能拓建
- 添加文章搜索/用戶文章查詢功能
- 增加一個友情鏈接
- 增加一個評論模塊
- App-利用Bootstrap4 搭建樣式
- 項目crm
- 思維導圖
- perfectCRM-項目名字
- settings.py-配置
- view.py-登陸/登出函數
- crm-app文件
- model.py-表的創建
- admin.py-注冊后臺
- view.py-視圖層
- static-靜態文件
- css
- bootstrap.min.css
- dashboard.css
- ie10-viewport-bug-workaround.css
- signin.css
- fonts
- imgs
- js
- jquery.js
- bootstrap.min.js
- holeder.js
- ie10-viewport-bug-workaround.js
- ie-emulation-modes-warning.js
- plugins
- html模板文件-templates
- crm
- index.html-首頁模板