用django搭建**時,需要對資料庫進行操作,一般通過models來生成資料庫的格式
classfans(models.model):
name = models.charfield(max_length=255, verbose_name="名字"
) fans_add = models.integerfield(verbose_name="增長"
) fans = models.integerfield(verbose_name="
粉絲數"
) flag = models.charfield(max_length=255, verbose_name="標記"
) datetime = models.datetimefield(verbose_name="時間"
)
class
meta:
unique_together = ("
name
", "
datetime")
verbose_name = '
粉絲數'
verbose_name_plural =verbose_name
db_table = "
fans
"
例子:
databases ='database2':
}
反向:通過inspectdb處理類,可以將現有資料庫裡的乙個或多個或全部資料表生成django model實體類。
呼叫命令引數:
python manage.py inspectdb --database default
也可以直接:
--database default : 要轉換的資料庫配置別名
--database 對應settings.py檔案裡的databases資料庫配置.
當專案配置了兩個以上的資料庫才要通過 --database,不加--database引數預設就是指向default的資料庫。
tablename1 tablename2 : 要轉換的資料表名
多個表名之間用逗號隔開,如果不加表名引數即是資料庫裡的全部表
檔名路徑是相對manage.py檔案的。
注意:如果輸出的檔案裡有內容,操作會清空原有內容再將結果寫入。可以先輸出到models_temp.py臨時檔案裡,再將model類複製到models.py檔案裡。
注:managed = false
由於django會自動根據模型類生成對映的資料庫表,如果你不希望django這麼做,可以把managed的值設定為false。
classfans(models.model):
name = models.charfield(max_length=255, verbose_name="名字"
) fans_add = models.integerfield(verbose_name="增長"
) fans = models.integerfield(verbose_name="
粉絲數"
) flag = models.charfield(max_length=255, verbose_name="標記"
) datetime = models.datetimefield(verbose_name="時間"
)
class
meta:
unique_together = ("
name
", "
datetime")
verbose_name = '
粉絲數'
verbose_name_plural =verbose_name
managed =false
db_table = '
fans
'
Django的models中filter的各種用法
exact 精確等於 like aaa iexact 精確等於 忽略大小寫 ilike aaa contains 包含 like aaa icontains 包含 忽略大小寫 ilike aaa 但是對於sqlite來說,contains的作用效果等同於icontains。gt 大於 gte 大於等...
Django中models的編寫
models的編寫 1 通過orm建立資料表from django.db import models create your models here.class publisher models.model name models.charfield max length 20 address mo...
django中models的filter過濾方法
gte 大於等於 lt 小於 lte 小於等於 in 存在於乙個list範圍內 startswith 以 開頭 istartswith 以 開頭忽略大小寫 endswith 以 結尾 iendswith 以 結尾,忽略大小寫 range 在 範圍內 year 日期欄位的年份 month 日期欄位的月...