Django中ORM的基本使用教程
前言
Django框架功能齊全自帶數(shù)據(jù)庫(kù)操作功能,本文主要介紹Django的ORM框架
到目前為止,當(dāng)我們的程序涉及到數(shù)據(jù)庫(kù)相關(guān)操作時(shí),我們一般都會(huì)這么搞:
創(chuàng)建數(shù)據(jù)庫(kù),設(shè)計(jì)表結(jié)構(gòu)和字段 使用 MySQLdb 來(lái)連接數(shù)據(jù)庫(kù),并編寫(xiě)數(shù)據(jù)訪問(wèn)層代碼 業(yè)務(wù)邏輯層去調(diào)用數(shù)據(jù)訪問(wèn)層執(zhí)行數(shù)據(jù)庫(kù)操作ORM
orm(object-relation-mapping)對(duì)象關(guān)系映射,即用對(duì)象來(lái)表示關(guān)系數(shù)據(jù)庫(kù)中的表:
類 --> 表,
對(duì)象-->一行數(shù)據(jù)
對(duì)象的屬性-->一行屬性的一個(gè)字段
比如說(shuō)一個(gè)用戶信息表:
class User: def __init__(self,name,age): self.name = name self.age = age
這樣我們就定義了一個(gè)類,有name和age屬性,之后我們每創(chuàng)建一個(gè)對(duì)象都有一個(gè)自己的name和age值,就好比我們創(chuàng)建了一個(gè)表格,有name和age字段,每一行數(shù)據(jù)都有自己的name和age。
那么我們?cè)趺丛贒jango中應(yīng)用呢,首先,Django使用了MVT模型,即:模型、視圖、模板,相較于MVC(模型-視圖-控制器)而言,其中MVT中的T(templates)和MVC中的V(views)都表示一種可以看得見(jiàn)的一種數(shù)據(jù)渲染圖,而MVT(views)和MVC中的C(controls)都表示一種邏輯,即當(dāng)瀏覽器請(qǐng)求的時(shí)候服務(wù)器該怎么返回?cái)?shù)據(jù),最后,MVT中的M(models)和MVC中的M(models)都表示數(shù)據(jù)存儲(chǔ)部分,即數(shù)據(jù)庫(kù)。
于是,如果我們需要?jiǎng)?chuàng)建表格就要?jiǎng)?chuàng)建類,就要在modles.py中創(chuàng)建,如下:
from django.db import models# Create your models here.class User(models.Model): username = models.CharField(max_length=32) password = models.CharField(max_length=32)
其中CharFiled相當(dāng)于數(shù)據(jù)庫(kù)中的varchar,與之對(duì)應(yīng)的還要Decimal、Datatime等等。
接下來(lái)就是我們要把數(shù)據(jù)存儲(chǔ)在哪個(gè)數(shù)據(jù)庫(kù)了,好在Django自己生成了一個(gè) db.sqlite3 文件,那么接下來(lái)我們就要去setting.py文件中去配置數(shù)據(jù)庫(kù),如下:
然后就需要打開(kāi)我們的sqlite數(shù)據(jù)庫(kù)文件看看了,這里,我們?nèi)绻褂胮ycharm,可以按如下操作:
點(diǎn)擊側(cè)邊那里
選擇類型
點(diǎn)擊圖標(biāo)
找到sqlite3文件然后應(yīng)用。
此時(shí)發(fā)現(xiàn):
中并沒(méi)有user表,這時(shí),我們需要再執(zhí)行兩條終端命令:
打開(kāi)終端
第一條命令: python manage.py makemigration 第二條命令: python manage.py migrate
然后刷新:
就可以看到表格了,雙擊就可以進(jìn)行編輯啦!!!
到此這篇關(guān)于Django中ORM基本使用的文章就介紹到這了,更多相關(guān)Django中ORM使用內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. IntelliJ IDEA設(shè)置條件斷點(diǎn)的方法步驟2. SSM框架JSP使用Layui實(shí)現(xiàn)layer彈出層效果3. IntelliJ IDEA導(dǎo)入jar包的方法4. 刪除docker里建立容器的操作方法5. IntelliJ IDEA導(dǎo)出項(xiàng)目的方法6. Python request中文亂碼問(wèn)題解決方案7. XML在語(yǔ)音合成中的應(yīng)用8. JS樹(shù)形結(jié)構(gòu)根據(jù)id獲取父級(jí)節(jié)點(diǎn)元素的示例代碼9. Python Selenium操作Cookie的實(shí)例方法10. Ajax基礎(chǔ)使用詳解
