最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django 模型類(models.py)的定義詳解

 更新時間:2019年07月19日 11:31:39   作者:hskull  
這篇文章主要介紹了Django 模型類(models.py)的定義詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

一.

#在models.py中添加
#代碼如下
from django.db import models

#出版商
class Publisher(models.Model):
  name=models.CharField(max_length=30)
  address=models.CharField(max_length=50)
  city=models.CharField(max_length=60)
  state_province=models.CharField(max_length=30)
  country=models.CharField(max_length=50)
  website=models.URLField()
  
#作者
class Author(models.Model):
  name=models.CharField(max_length=30)
  
#作者詳情
class AuthorDetail(models.Model):
  sex=models.BooleanField(max_length=1,choices=((0,'男'),(1,'女')))
  email=models.EmailField()
  address=models.CharField(max_length=50)
  birthday=models.DateField()
  author=models.OneToOneField(Author)
  
#書詳情
class Book(models.Model):
  name=models.CharField(max_length=100)
  authors=models.ManyToManyField(Author)
  publisher=models.ForeignKey(Publisher)
  publication_date=models.DateField()

上面的代碼中:

1. 每個數(shù)據(jù)模型都繼承django.db.models.Model。他們的父類Model包含了所有必要的和數(shù)據(jù)庫交互的方法,并提供了一個簡介漂亮的數(shù)據(jù)庫定義語法。

2.每個模型相當(dāng)于單個的數(shù)據(jù)庫表(這種情況例外的是多對多的關(guān)系,多對多關(guān)系的時候會多生成一張關(guān)系表),每個屬性也是這個表中的一個字段。屬性名就是字段名,它的類型(例CharField)相當(dāng)于數(shù)據(jù)庫的字段類型(例如varchar)。

3.模型間的三種關(guān)系:一對一(OneToOneField) 一對多也就是外鍵(ForeignKey)

多對多(ManyToManyField)

4.模型的常用字段類型:

  • BooleanField:布爾類型字段
  • CharField:字符串類型字段
  • DateTimeField:日期字段
  • DecimalField:(精確)小數(shù)字段
  • EmailField:Email字段
  • FileField:文件字段(保存和處理上傳的文件)
  • FloatField:(浮點數(shù))小數(shù)字段
  • Imagefield:圖片字段(保存和處理上傳的圖片)
  • IPAddressField:IP字段
  • IntegerField:整數(shù)字段
  • SmallIntegerField:小整數(shù)字段
  • TextField:文本字段
  • URLField:網(wǎng)頁地址字段
  • ......

5.模型常用的字段選項:

  • null(null=True|False):數(shù)據(jù)庫字段的設(shè)置是否可以為空(數(shù)據(jù)庫進行驗證)
  • blank(blank=True|False):字段是否為空django會進行校驗(表單進行驗證)
  • choices:輕量級的配置字段可選屬性的定義
  • default:字段的默認(rèn)選項
  • help_text:字符按文字幫助
  • primary_key(=True|False):一般不需要定義是否為主鍵,如果沒有指明主鍵的話,django胡自動添加一個默認(rèn)主鍵:id=models.AutoField(primary_key=True)
  • unique:是否唯一(對于數(shù)據(jù)表而言)
  • verbose_name:字段的詳細(xì)名稱,若不指定該屬性,默認(rèn)使用字段的屬性名稱

二.定義數(shù)據(jù)模型的擴展屬性:

通過內(nèi)部類Meta給數(shù)據(jù)模型類增加擴展屬性:

class Meta:
  verbose_name='名稱' #這里命名為中文名稱,但顯示時會在后面出現(xiàn)一個s
  verbose_name_plural='名稱復(fù)數(shù)形式' #配合verbose使用去除s
  ordering=[排序字段]

1.

2.

三.定義模型方法:

定義模型方法和定義普通python類方法沒有太大的差別,定義模型方法可以及那個當(dāng)前對應(yīng)的數(shù)據(jù)組裝成具體的業(yè)務(wù)邏輯。

示例:定義__str__()方法讓對象有個默認(rèn)名字

注:python2中使用__unicode__(),python3中使用__str__()

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python爬蟲代理池搭建的方法步驟

    Python爬蟲代理池搭建的方法步驟

    這篇文章主要介紹了Python爬蟲代理池搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python虛擬環(huán)境的安裝和配置(virtualenv,virtualenvwrapper)

    python虛擬環(huán)境的安裝和配置(virtualenv,virtualenvwrapper)

    這篇文章主要介紹了python虛擬環(huán)境的安裝和配置(virtualenv,virtualenvwrapper),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 在Python中調(diào)用ggplot的三種方法

    在Python中調(diào)用ggplot的三種方法

    這篇文章主要介紹了在Python中調(diào)用ggplot的三種方法,ggplot作為一個圖形庫,經(jīng)常被用來制作數(shù)據(jù)的可視化視圖,需要的朋友可以參考下
    2015-04-04
  • Python之tkinter列表框Listbox與滾動條Scrollbar解讀

    Python之tkinter列表框Listbox與滾動條Scrollbar解讀

    這篇文章主要介紹了Python之tkinter列表框Listbox與滾動條Scrollbar解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python實現(xiàn)自動計算Excel數(shù)據(jù)指定范圍內(nèi)的區(qū)間最大值

    Python實現(xiàn)自動計算Excel數(shù)據(jù)指定范圍內(nèi)的區(qū)間最大值

    這篇文章主要為大家詳細(xì)介紹了如何基于Python自動計算Excel數(shù)據(jù)指定范圍內(nèi)的區(qū)間最大值,文中的示例代碼簡潔易懂,感興趣的小伙伴可以了解下
    2023-07-07
  • python+pyqt5實現(xiàn)KFC點餐收銀系統(tǒng)

    python+pyqt5實現(xiàn)KFC點餐收銀系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python+pyqt5實現(xiàn)KFC點餐收銀系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • pyecharts在數(shù)據(jù)可視化中的應(yīng)用詳解

    pyecharts在數(shù)據(jù)可視化中的應(yīng)用詳解

    這篇文章主要介紹了pyecharts在數(shù)據(jù)可視化中的應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Django基于客戶端下載文件實現(xiàn)方法

    Django基于客戶端下載文件實現(xiàn)方法

    這篇文章主要介紹了Django基于客戶端下載文件實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • python如何實現(xiàn)視頻轉(zhuǎn)代碼視頻

    python如何實現(xiàn)視頻轉(zhuǎn)代碼視頻

    這篇文章主要為大家詳細(xì)介紹了python如何實現(xiàn)視頻轉(zhuǎn)代碼視頻,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Pycharm創(chuàng)建python文件自動添加日期作者等信息(步驟詳解)

    Pycharm創(chuàng)建python文件自動添加日期作者等信息(步驟詳解)

    這篇文章主要介紹了Pycharm創(chuàng)建python文件自動添加日期作者等信息(步驟詳解),本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02

最新評論

滕州市| 嘉鱼县| 思茅市| 沐川县| 浮山县| 盐边县| 同仁县| 平泉县| 金秀| 宿州市| 贵溪市| 平定县| 东丽区| 弥勒县| 延川县| 威远县| 东源县| 孙吴县| 吴堡县| 旌德县| 察雅县| 英德市| 耿马| 治县。| 新闻| 石门县| 玛纳斯县| 栾城县| 湖口县| 潞西市| 龙井市| 黔西| 平顶山市| 桃园县| 东至县| 平舆县| 芦山县| 巴塘县| 五华县| 西和县| 东辽县|