django中怎么進(jìn)行數(shù)據(jù)的增刪改

django中怎么進(jìn)行數(shù)據(jù)的增刪改,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),鼓樓企業(yè)網(wǎng)站建設(shè),鼓樓品牌網(wǎng)站建設(shè),網(wǎng)站定制,鼓樓網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,鼓樓網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

在 web 開發(fā)中,最重要的是數(shù)據(jù)庫(kù)的設(shè)計(jì),就是 models 模型設(shè)計(jì),簡(jiǎn)單的web開發(fā)說(shuō)白了就是對(duì)數(shù)據(jù)庫(kù)的增刪改查,今天先看下數(shù)據(jù)庫(kù)的增加,修改,和刪除吧,我們操作數(shù)據(jù)庫(kù)可以使用原生sql語(yǔ)句,但是如果sql的操作語(yǔ)句不復(fù)雜,可以使用django 的 ORM 語(yǔ)句,它是通過(guò)一些封裝,根據(jù) ORM 的語(yǔ)法可以對(duì)數(shù)據(jù)庫(kù)增刪改查,用一同一個(gè) ORM 語(yǔ)句可以支持對(duì) MySQL、sqlite、PostgreSQL、Oracle 等數(shù)據(jù)庫(kù)增刪改操作,兼容性很強(qiáng)。

我現(xiàn)在的model模型是有兩個(gè)表,一個(gè)學(xué)生表,一個(gè)班級(jí)表,代碼如下:

class Student(models.Model): # 一定要繼承    # CharField為字符串類型,必須有max_length設(shè)置最大長(zhǎng)度,verbose_name在django后臺(tái)顯示該英文字段的中文意思    name = models.CharField(max_length=30, verbose_name="學(xué)生姓名")    # IntegerField整型    age = models.IntegerField(default=16, verbose_name="學(xué)生年齡")    # DecimalField浮點(diǎn)型,max_digits=5表示整數(shù)部分和小數(shù)位數(shù)之和不大于5,decimal_places表示小數(shù)的最大位數(shù),    # null=True表示字段可以為空,blank=True表示在admin后臺(tái)中該數(shù)據(jù)欄可以為空    score = models.DecimalField(verbose_name='成績(jī)', max_digits=5, decimal_places=2, null=True, blank=True)#    # EmailField該字段必須符合郵箱格式    email = models.EmailField(verbose_name='郵箱', null=True, blank=True)    # TextField 字段位文本類型,長(zhǎng)度沒有限制    introduce = models.TextField(verbose_name="學(xué)生自我介紹")    # DateTimeField為日期類型,auto_now_add=True該條數(shù)據(jù)創(chuàng)建的時(shí)間,數(shù)據(jù)更新時(shí),時(shí)間數(shù)值不變    # auto_now=True該條數(shù)據(jù)創(chuàng)建的時(shí)間,數(shù)據(jù)更新時(shí),時(shí)間數(shù)值也會(huì)改變    created_at = models.DateTimeField(auto_now_add=True, verbose_name="創(chuàng)建時(shí)間")    updated_at = models.DateTimeField(auto_now=True, verbose_name="更新時(shí)間")    # ForeignKey一對(duì)多外鍵,比如一個(gè)班級(jí)有多個(gè)學(xué)生,就屬于一對(duì)多,外鍵要放到"多"的那張表,    # related_name是對(duì)外鍵取別名,常用在django的orm反向查詢中    cls = models.ForeignKey('Class', related_name="stu_cls", null=True, on_delete=models.PROTECT)

   # 下面是django后臺(tái)字段顯示控制    class Meta:        verbose_name_plural = verbose_name = "學(xué)生表"    def __str__(self):        return self.name

class Class(models.Model): # 班級(jí)表    name = models.CharField(verbose_name='班級(jí)名稱',max_length=10)    created_at = models.DateTimeField(auto_now_add=True, verbose_name="創(chuàng)建時(shí)間")    updated_at = models.DateTimeField(auto_now=True, verbose_name="更新時(shí)間")
   def __str__(self):        return self.name
   class Meta:        verbose_name = verbose_name_plural = '班級(jí)'

然后進(jìn)行同步數(shù)據(jù)庫(kù)操作,在 pycharm 中打開終端(Terminal),在命令行中輸入:

django中怎么進(jìn)行數(shù)據(jù)的增刪改

下面在一個(gè) views.py 文件中寫一個(gè)視圖函數(shù),使用 ORM 進(jìn)行基本的增刪改操作。記得給函數(shù)配置對(duì)應(yīng)的 url。

def orm_test(request):    # 新增一個(gè)名字為1901的一個(gè)班級(jí),create是新增方法,里面可以接受多個(gè)字段參數(shù)    # Class.objects.create(name="1901")    # 同時(shí)新增一個(gè)學(xué)生和班級(jí)操作    # 新增一個(gè)班級(jí)名稱為1903的班級(jí),返回一個(gè)班級(jí)實(shí)例    cls_instance = Class.objects.create(name="1903")    # stu_info左邊的key要和Student模型字段對(duì)應(yīng)上,因?yàn)閏ls是外鍵,所以要對(duì)應(yīng)一個(gè)班級(jí)的實(shí)例    stu_info = {        "name":"靜靜",        "age": "18",        "score":"67.50",        "email": "123@qq.com",        "introduce": "我是靜靜",        "cls": cls_instance    }    Student.objects.create(**stu_info)    # 將名字為1901的班級(jí)名稱改為1901_xiu,filter為過(guò)濾,支持多個(gè)參數(shù),update是更新方法,支持多個(gè)參數(shù)    # Class.objects.filter(name="1901").update(name="1901_xiu")    # 將名字為1901_xiu的班級(jí)刪除掉,delete是刪除方法    # Class.objects.filter(name="1901_xiu").delete()

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

本文名稱:django中怎么進(jìn)行數(shù)據(jù)的增刪改
本文地址:http://muchs.cn/article14/iepcge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站導(dǎo)航服務(wù)器托管、Google、搜索引擎優(yōu)化、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司