django中怎么進行數(shù)據(jù)的增刪改,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),鼓樓企業(yè)網(wǎng)站建設(shè),鼓樓品牌網(wǎng)站建設(shè),網(wǎng)站定制,鼓樓網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,鼓樓網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
在 web 開發(fā)中,最重要的是數(shù)據(jù)庫的設(shè)計,就是 models 模型設(shè)計,簡單的web開發(fā)說白了就是對數(shù)據(jù)庫的增刪改查,今天先看下數(shù)據(jù)庫的增加,修改,和刪除吧,我們操作數(shù)據(jù)庫可以使用原生sql語句,但是如果sql的操作語句不復(fù)雜,可以使用django 的 ORM 語句,它是通過一些封裝,根據(jù) ORM 的語法可以對數(shù)據(jù)庫增刪改查,用一同一個 ORM 語句可以支持對 MySQL、sqlite、PostgreSQL、Oracle 等數(shù)據(jù)庫增刪改操作,兼容性很強。
我現(xiàn)在的model模型是有兩個表,一個學(xué)生表,一個班級表,代碼如下:
class Student(models.Model): # 一定要繼承
# CharField為字符串類型,必須有max_length設(shè)置最大長度,verbose_name在django后臺顯示該英文字段的中文意思
name = models.CharField(max_length=30, verbose_name="學(xué)生姓名")
# IntegerField整型
age = models.IntegerField(default=16, verbose_name="學(xué)生年齡")
# DecimalField浮點型,max_digits=5表示整數(shù)部分和小數(shù)位數(shù)之和不大于5,decimal_places表示小數(shù)的最大位數(shù),
# null=True表示字段可以為空,blank=True表示在admin后臺中該數(shù)據(jù)欄可以為空
score = models.DecimalField(verbose_name='成績', max_digits=5, decimal_places=2, null=True, blank=True)#
# EmailField該字段必須符合郵箱格式
email = models.EmailField(verbose_name='郵箱', null=True, blank=True)
# TextField 字段位文本類型,長度沒有限制
introduce = models.TextField(verbose_name="學(xué)生自我介紹")
# DateTimeField為日期類型,auto_now_add=True該條數(shù)據(jù)創(chuàng)建的時間,數(shù)據(jù)更新時,時間數(shù)值不變
# auto_now=True該條數(shù)據(jù)創(chuàng)建的時間,數(shù)據(jù)更新時,時間數(shù)值也會改變
created_at = models.DateTimeField(auto_now_add=True, verbose_name="創(chuàng)建時間")
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新時間")
# ForeignKey一對多外鍵,比如一個班級有多個學(xué)生,就屬于一對多,外鍵要放到"多"的那張表,
# related_name是對外鍵取別名,常用在django的orm反向查詢中
cls = models.ForeignKey('Class', related_name="stu_cls", null=True, on_delete=models.PROTECT)
# 下面是django后臺字段顯示控制
class Meta:
verbose_name_plural = verbose_name = "學(xué)生表"
def __str__(self):
return self.name
class Class(models.Model): # 班級表
name = models.CharField(verbose_name='班級名稱',max_length=10)
created_at = models.DateTimeField(auto_now_add=True, verbose_name="創(chuàng)建時間")
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新時間")
def __str__(self):
return self.name
class Meta:
verbose_name = verbose_name_plural = '班級'
然后進行同步數(shù)據(jù)庫操作,在 pycharm 中打開終端(Terminal),在命令行中輸入:
下面在一個 views.py 文件中寫一個視圖函數(shù),使用 ORM 進行基本的增刪改操作。記得給函數(shù)配置對應(yīng)的 url。
def orm_test(request): # 新增一個名字為1901的一個班級,create是新增方法,里面可以接受多個字段參數(shù) # Class.objects.create(name="1901") # 同時新增一個學(xué)生和班級操作 # 新增一個班級名稱為1903的班級,返回一個班級實例 cls_instance = Class.objects.create(name="1903") # stu_info左邊的key要和Student模型字段對應(yīng)上,因為cls是外鍵,所以要對應(yīng)一個班級的實例 stu_info = { "name":"靜靜", "age": "18", "score":"67.50", "email": "123@qq.com", "introduce": "我是靜靜", "cls": cls_instance } Student.objects.create(**stu_info) # 將名字為1901的班級名稱改為1901_xiu,filter為過濾,支持多個參數(shù),update是更新方法,支持多個參數(shù) # Class.objects.filter(name="1901").update(name="1901_xiu") # 將名字為1901_xiu的班級刪除掉,delete是刪除方法 # Class.objects.filter(name="1901_xiu").delete()
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
本文名稱:django中怎么進行數(shù)據(jù)的增刪改
本文地址:http://jinyejixie.com/article14/iepcge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站導(dǎo)航、服務(wù)器托管、Google、搜索引擎優(yōu)化、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)