欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django框架模型簡單介紹與使用分析

 更新時間:2019年07月18日 11:08:10   作者:笑-笑-生  
這篇文章主要介紹了Django框架模型簡單介紹與使用,結(jié)合實例形式分析了Django框架中模型的概念、原理、使用技巧與相關(guān)操作注意事項,需要的朋友可以參考下

本文實例講述了Django框架模型簡單介紹與使用。分享給大家供大家參考,具體如下:

ORM介紹

  • ORM Object relational mapping 對象關(guān)系映射
  • 把面向?qū)ο笾械念惡蛿?shù)據(jù)庫表一一對應(yīng)起來,通過操作類和對象,對數(shù)據(jù)庫表實現(xiàn)數(shù)據(jù)的增刪改查等操作,而不需要寫SQL語句(由orm框架生成)
  • Django是實現(xiàn)了ORM的一個框架,在django項目與數(shù)據(jù)庫之間起著橋梁的角色。

使用ORM可以通過方便的配置,切換使用不同的數(shù)據(jù)庫

使用django進行數(shù)據(jù)庫開發(fā)的步驟如下:

  1. 在models.py中定義模型類
  2. 生成遷移文件: python manage.py makemigrations
  3. 執(zhí)行遷移生成數(shù)據(jù)庫表(默認使用sqlite3數(shù)據(jù)庫,生成的數(shù)據(jù)庫名為:db.sqlite3): python manage.py migrate
  4. 通過模型類和對象,對數(shù)據(jù)進行增刪改查

模型類設(shè)計

案例:

部門類(Department):

  • 部門名稱: name

  • 部門成立時間: create_date

員工類(Employee)

  • 性名: name

  • 年齡: age

  • 性別: sex

  • 工資: salary

  • 備注信息: comment

說明:

在應(yīng)用models.py中編寫模型類, 必須繼承與models.Model類。

在模型類中,定義屬性,生成對應(yīng)的數(shù)據(jù)庫表字段:

屬性名 = models.字段類型(字段選項)

字段類型(初步了解,models包下的類):

  1. CharField--字符串
  2. IntegerField--整形
  3. BooleanField--布爾
  4. DateFiled--日期
  5. DecimalFiled--浮點
  6. ForeignKey--外鍵,建立一對多關(guān)系

不需要定義主鍵id,會自動生成

模型類生成表

根據(jù)模型類,生成遷移文件

python manage.py makemigrations

執(zhí)行遷移文件生成數(shù)據(jù)庫表

python manage.py migrate

生成表名的默認格式:

應(yīng)用名_模型類名小寫

使用sqliteman查看生成的數(shù)據(jù)庫表

安裝sqliteman

sudo apt-get install sqliteman

啟動sqliteman

sqliteman

啟動后,通過file -> open 打開項目下的db.sqlite3數(shù)據(jù)庫進行查看

通過ORM操作數(shù)據(jù)庫

  • Django實現(xiàn)了orm功能,在django項目中,不需要寫sql語句,通過模型類和對象,就可以直接操作數(shù)據(jù)庫數(shù)據(jù)了。

可以通過以下命令,進入python交互環(huán)境,執(zhí)行操作數(shù)據(jù)庫的代碼:

python manage.py shell

增刪改

調(diào)用一個模型類對象的save方法, 就可以實現(xiàn)數(shù)據(jù)新增或修改。id值在數(shù)據(jù)庫表中不存在或者為空,則新增,否則為修改。

模型類對象.save()  # 新增或修改

調(diào)用一個模型類對象的delete方法,就可以實現(xiàn)數(shù)據(jù)刪除,會根據(jù)id刪除。

模型類對象.delete() # 根據(jù)對象的id進行刪除

示例:

from app01.models import Department, Employee
from datetime import date
d = Department()
d.name ='研發(fā)部'
d.create_date = date(2017,1,1)
d.save() # 新增
d.name ='人事部'
d.save() # 修改
d.id = 10
d.save() # 新增
d.name = '研發(fā)部'
d.id = None
d.save() # 新增
d.id = None
d.save() # 新增
d.delete() # 刪除

模型管理器

每個模型類默認都有 objects 類屬性,可以把它叫 模型管理器。它由django自動生成,類型為 django.db.models.manager.Manager

>>> Employee.objects
<django.db.models.manager.Manager object at 0x7fcfcdf67550>

objects模型管理器中提供了一些查詢數(shù)據(jù)的方法:

objects管理器中的方法 返回類型 作用
模型類.objects.get() 模型對象 返回一個對象,且只能有一個:
如果查到多條數(shù)據(jù),則報錯:MultipleObjectsReturned
如果查詢不到數(shù)據(jù),則報錯:DoesNotExist
模型類.objects.filter() QuerySet 返回滿足條件的對象
模型類.objects.all() QuerySet 返回所有的對象

關(guān)聯(lián)查詢

部門和員工是一對多的關(guān)系,怎么根據(jù)部門查員工,或根據(jù)員工查詢部門呢?

用法:

假設(shè)在一對多關(guān)系中,一對應(yīng)的類叫做一類,多對應(yīng)的類叫做多類:

由一類對象查詢多類對象:

一類對象.多類名小寫_set.all()

由多類對象查詢一類對象:

多類對象.關(guān)聯(lián)屬性

示例:

# 查詢部門id為1的所有員工
d = Department.objects.get(id=1)
d.employee_set.all() # 一查多
# 查詢id為1的員工所屬的部門信息
e = Employee.objects.get(id=1)
e.department   # 多查一

希望本文所述對大家基于Django框架的Python程序設(shè)計有所幫助。

相關(guān)文章

  • 詳解Python中HTML解析庫pyquery的使用

    詳解Python中HTML解析庫pyquery的使用

    在工作中難免會遇到解析 HTML 的場景,比如將網(wǎng)頁下載下來之后,要解析出里面圖片的路徑、指定標簽里的文本等等,而 pyquery 專門負責(zé)做這件事,下面我們就來學(xué)習(xí)一下他的具體用法吧
    2023-12-12
  • Jupyter notebook如何實現(xiàn)指定瀏覽器打開

    Jupyter notebook如何實現(xiàn)指定瀏覽器打開

    這篇文章主要介紹了Jupyter notebook如何實現(xiàn)指定瀏覽器打開,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Python 統(tǒng)計Jira的bug 并發(fā)送郵件功能

    Python 統(tǒng)計Jira的bug 并發(fā)送郵件功能

    這篇文章主要介紹了Python 統(tǒng)計Jira的bug 并發(fā)送郵件,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 利用python檢查磁盤空間使用情況的代碼實現(xiàn)

    利用python檢查磁盤空間使用情況的代碼實現(xiàn)

    本文將向讀者展示如何利用Python編寫自動化腳本,以檢查磁盤空間使用情況,無論你是經(jīng)驗豐富的系統(tǒng)管理員,還是對Python自動化充滿興趣的開發(fā)者,本文都將為你提供實用的腳本示例和詳細的解析步驟,幫助你快速掌握磁盤空間監(jiān)控的自動化方法,需要的朋友可以參考下
    2024-08-08
  • Python數(shù)組遍歷的簡單實現(xiàn)方法小結(jié)

    Python數(shù)組遍歷的簡單實現(xiàn)方法小結(jié)

    這篇文章主要介紹了Python數(shù)組遍歷的簡單實現(xiàn)方法,結(jié)合實例總結(jié)分析了Python針對數(shù)組的元素,索引常用遍歷技巧,需要的朋友可以參考下
    2016-04-04
  • 基于Django的Admin后臺實現(xiàn)定制簡單監(jiān)控頁

    基于Django的Admin后臺實現(xiàn)定制簡單監(jiān)控頁

    Django自帶的后臺管理是Django明顯特色之一,可以讓我們快速便捷管理數(shù)據(jù)。后臺管理可以在各個app的admin.py文件中進行控制。本文將主要介紹如何利用Admin后臺實現(xiàn)監(jiān)控頁的定制,快來和小編一起學(xué)習(xí)一下吧
    2021-12-12
  • 對python3 一組數(shù)值的歸一化處理方法詳解

    對python3 一組數(shù)值的歸一化處理方法詳解

    今天小編就為大家分享一篇對python3 一組數(shù)值的歸一化處理方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python多個模塊py文件的數(shù)據(jù)共享實例

    python多個模塊py文件的數(shù)據(jù)共享實例

    今天小編就為大家分享一篇python多個模塊py文件的數(shù)據(jù)共享實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 解決Pycharm輸入法無法切換中英文問題

    解決Pycharm輸入法無法切換中英文問題

    這篇文章主要介紹了解決Pycharm輸入法無法切換中英文問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • python:列表詳解

    python:列表詳解

    這篇文章主要介紹了Python中列表(List)的詳解操作方法,包含創(chuàng)建、訪問、更新、刪除、其它操作等,需要的朋友可以參考下
    2021-10-10

最新評論