python資料庫2
常用欄位
AutoField
對映到資料庫中是int型別,可以有自動增長的特性。一般不需要使用這個型別,如果不指定主鍵,那麼模型會自動的生成一個叫做id的自動增長的主鍵。如果你想指定一個其他名字的並且具有自動增長的主鍵,使用AutoField也是可以的。
BigAutoField
64位的整形,類似於AutoField,只不過是產生的資料的範圍是從1-9223372036854775807。
BooleanField
在模型層面接收的是True/False。在資料庫層面是tinyint類 型。如果沒有指定預設值,預設值是None。
CharField
在資料庫層面是varchar型別。在Python層面就是普通的字串。這個型別在使用的時候必須要指定最大的長度,也即必須要傳遞max_length這個關鍵字引數進去。
DateTimeField
日期時間型別,不僅僅可以儲存日期,還可以儲存時間。對映到資料庫中是datetime型別。
TIME_ZONE = 'Asia/Shanghai'
from django.utils.timezone import localtime,now
1.auto_now:在每次這個資料儲存的時候,都使用當前的時間。
比如作為一個記錄修改日期的欄位,可以將這個屬性設定為True。
2.auto_now_add:在每次資料第一次被新增進去的時候,都使用當前的時間。
比如作為一個記錄第一次入庫的欄位,可以將這個屬性設定為True。
EmailField
類似於CharField。在資料庫底層也是一個varchar型別。最大長度是254個字元。
FileField
用來儲存檔案的。
ImageField
用來儲存圖片檔案的。
FloatField
浮點型別。對映到資料庫中是float型別。
IntegerField
整形。值的區間是-2147483648——2147483647。
BigIntegerField
大整形。值的區間是-9223372036854775808——9223372036854775807。
PositiveIntegerField
正整形。值的區間是0——2147483647。
SmallIntegerField
小整形。值的區間是-32768——32767。
PositiveSmallIntegerField
正小整形。值的區間是0——32767。
TextField
大量的文字型別。對映到資料庫中是longtext型別。
UUIDField
只能儲存uuid格式的字串。uuid是一個32位的全球唯一的字串,一般用來作為主鍵。
URLField
類似於CharField,只不過只能用來儲存url格式的字串。並且預設的max_length是200。
Field的常用引數
null
如果設定為True,Django將會在對映表的時候指定是否為空。預設是為False。在使用字串相關的Field(CharField/TextField)的時候,官方推薦儘量不要使用這個引數,也就是保持預設值False。因為Django在處理字串相關的Field的時候,即使這個Field的null=False,如果你沒有給這個Field傳遞任何值,那麼Django也會使用一個空的字串""來作為預設值儲存進去。因此如果再使用null=True,Django會產生兩種空值的情形(NULL或者空字串)。如果想要在表單驗證的時候允許這個字串為空,那麼建議使用blank=True。如果你的Field是BooleanField,那麼對應的可空的欄位則為NullBooleanField。
db_column
這個欄位在資料庫中的名字。如果沒有設定這個引數,那麼將會使用模型中屬性的名字。
default
預設值。可以為一個值,或者是一個函式,但是不支援lambda表示式。並且不支援列表/字典/集合等可變的資料結構。
primary_key
是否為主鍵。預設是False。
unique
在表中這個欄位的值是否唯一。一般是設定手機號碼/郵箱等。
模型中Meta配置
對於一些模型級別的配置。我們可以在模型中定義一個類,叫做Meta。然後在這個類中新增一些類屬性來控制模型的作用。比如我們想要在資料庫對映的時候使用自己指定的表名,而不是使用模型的名稱。那麼我們可以在Meta類中新增一個db_table的屬性。
class Book(models.Model):
name = models.CharField(max_length=20,null=False)
desc = models.CharField(max_length=100,name='description',db_column="description1")
class Meta:
db_table = 'book_model'
db_table
這個模型對映到資料庫中的表名。如果沒有指定這個引數,那麼在對映的時候將會使用模型名來作為預設的表名。
ordering
設定在提取資料的排序方式。比如我想在查詢資料的時候根據新增的時間排序
class Book(models.Model):
name = models.CharField(max_length=20,null=False)
desc = models.CharField(max_length=100,name='description',db_column="description1")
pub_date = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = 'book_model'
ordering = ['pub_date'] # 正序
ordering = ['-pub_date'] # 倒序
相關文章
- 資料庫2資料庫
- python+資料庫(三)用python對資料庫基本操作Python資料庫
- Python使用pymysql和xlrd2將Excel資料匯入MySQL資料庫PythonMySqlExcel資料庫
- 資料庫雜談(2)資料庫
- db2 資料庫DB2資料庫
- python如何將資料插入資料庫Python資料庫
- Python 操作 SQLite 資料庫PythonSQLite資料庫
- Python——Reflex(資料庫使用)PythonFlex資料庫
- Python操作SQLite資料庫PythonSQLite資料庫
- python操作mongodb資料庫PythonMongoDB資料庫
- Python中2種常用資料視覺化庫:Bokeh和AltairPython視覺化AI
- Python使用psycopg2三方庫操作PostgreSQL的資料PythonSQL
- python資料插入連線MySQL資料庫PythonMySql資料庫
- 2 建立和配置資料庫資料庫
- 資料庫效能優化2資料庫優化
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- Python 資料庫騷操作 — RedisPython資料庫Redis
- Python 資料庫騷操作 -- RedisPython資料庫Redis
- Python 資料庫騷操作 -- MongoDBPython資料庫MongoDB
- Python資料庫MongoDB騷操作Python資料庫MongoDB
- Python連線SQLite資料庫PythonSQLite資料庫
- Python之 操作 MySQL 資料庫PythonMySql資料庫
- python資料庫連線池Python資料庫
- 使用Python連線資料庫Python資料庫
- Python操作MongoDB文件資料庫PythonMongoDB資料庫
- Python連線MySQL資料庫PythonMySql資料庫
- Python 連線 Oracle資料庫PythonOracle資料庫
- python執行js程式碼拿到逆向資料-js2py庫PythonJS
- H2 資料庫介紹(2)--使用資料庫
- Python呼叫阿里雲資料庫監控資料Python阿里資料庫
- python爬取股票資料並存到資料庫Python資料庫
- 【磐維資料庫】透過python訪問磐維資料庫資料庫Python
- Python3爬蟲資料入資料庫---把爬取到的資料存到資料庫,帶資料庫去重功能Python爬蟲資料庫
- Django 2連線MySQL資料庫DjangoMySql資料庫
- YII2 常用資料庫操作資料庫
- SQL 資料庫學習 Part 2SQL資料庫
- HSQL 資料庫介紹(2)--使用SQL資料庫
- H2資料庫文件索引資料庫索引