django創(chuàng)建表格的方法

這篇文章主要介紹了django創(chuàng)建表格的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(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)站。

Django中,與數(shù)據(jù)庫相關(guān)的模塊是model模塊,它提供了一種簡單易操作的API方式與數(shù)據(jù)庫交互,它是通過ORM映射的方式來操作數(shù)據(jù)庫,一個類對應(yīng)數(shù)據(jù)庫一張表,一個類屬性,對應(yīng)該表的一個字段,一個實例化的類對象就是一個表中的一行數(shù)據(jù)信息。在開發(fā)的階段,工程師只需要python語言本身進行代碼設(shè)計,而不用太過于分散注意力去操作SQL原生操作語句,這樣的方法既有它的優(yōu)點,同樣也有不足之處。

它們優(yōu)缺點的大致如下:

優(yōu)點:

1、實現(xiàn)了代碼與數(shù)據(jù)庫的解耦合

2、開發(fā)者不需要操作太多的原生SQL,可以提高開發(fā)效率

3、防止SQL注入,通過對象操作的方式,默認就是防止SQL注入

缺點:

1、犧牲性能,對象轉(zhuǎn)換到SQL會存在一定的消耗

2、當(dāng)需要操作較復(fù)雜的語句時,用ORM對象操作的方式很難實現(xiàn)

 ORM與數(shù)據(jù)庫的映射關(guān)系如下:

表名--------》類名

字段--------》屬性

表記錄-----》類實例化對象

 ORM的兩大主要功能:

操作表:

--創(chuàng)建表

--修改表

--刪除表

操作表數(shù)據(jù)行:增、刪、改、查

Django自帶的數(shù)據(jù)庫為sqlite3,如果需要使用其他數(shù)據(jù)庫,需要其他的準(zhǔn)備工作,并且,使用其他數(shù)據(jù)庫,需要自己提前建好數(shù)據(jù)庫,然后通過Django去連接,Django并不會創(chuàng)建數(shù)據(jù)庫。

完整過程:

一、編寫模型類

在Django項目的APP應(yīng)用下的models.py文件中編寫類,每一個類就是一個最終都會被映射為一個數(shù)據(jù)表。在寫類之前有個準(zhǔn)備工作,在settings.py文件中的“INSTALLED_APPS”要先加入自己的APP應(yīng)用,告訴Django有這個應(yīng)用。如圖:

django創(chuàng)建表格的方法

表分為單表,一對一表,一對多表,多對多表,就是表一般不會獨立存在,總會與其他表存在聯(lián)系。我創(chuàng)建了三個表,一個表為Publish(出版社),一個表為Author(作者),還有一個表Book(書籍),其中表書籍與表出版社是外鍵關(guān)系,與作者是多對多的關(guān)系。

 class Publish(models.Model):
 2     name = models.CharField(max_length=64)
 3     city = models.CharField(max_length=63,null=True)
 4     def __str__(self):
 5         return self.name
 6 
 7 
 8 class Author(models.Model):
 9     name = models.CharField(max_length=30)
10     sex = models.CharField(max_length=20)
11     def __str__(self):
12         return self.name
13 
14 class Book(models.Model):
15     title = models.CharField(max_length=64)
16     price = models.IntegerField()
17     color = models.CharField(max_length=64)
18     page_num = models.IntegerField(null=True)
19     publisher = models.ForeignKey("Publish",on_delete=models.CASCADE,null=True)  
#一對多的關(guān)系。2.0django中,當(dāng)有主外鍵和其他對應(yīng)關(guān)系時,需要設(shè)置。
20     author = models.ManyToManyField("Author")
21     def __str__(self):
22         return  self.title

二、生成數(shù)據(jù)表

創(chuàng)建類的代碼已經(jīng),寫好,此時需要兩句代碼將類轉(zhuǎn)換成對應(yīng)的數(shù)據(jù)表:

python manage.py makemigrations    #將類轉(zhuǎn)換成數(shù)據(jù)表結(jié)構(gòu)
python manage.py  migrate               #根據(jù)上一句代碼生成數(shù)據(jù)表

上面兩句代碼先后執(zhí)行,不出意外,就會在數(shù)據(jù)庫里面生成對應(yīng)的數(shù)據(jù)表。其中,第一句執(zhí)行完,會在app應(yīng)用下的migrations的文件夾下生成操作的記錄文件“0001_initial.py”:

django創(chuàng)建表格的方法

這個是記錄models里面改動的執(zhí)行記錄。

最終生成的數(shù)據(jù)表如下:

django創(chuàng)建表格的方法

感謝你能夠認真閱讀完這篇文章,希望小編分享django創(chuàng)建表格的方法內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學(xué)習(xí)!

網(wǎng)站欄目:django創(chuàng)建表格的方法
瀏覽地址:http://www.muchs.cn/article48/pieihp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈網(wǎng)站改版、App設(shè)計、微信小程序、建站公司手機網(wǎng)站建設(shè)

廣告

聲明:本網(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)

外貿(mào)網(wǎng)站制作