真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Django使用表格的方法

小編給大家分享一下Django使用表格的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的高安網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

我們可以通過Django提供的Form類來自用生成上面的表單,不再需要手動(dòng)在HTML中編寫。

首先,在你當(dāng)前app內(nèi)新建一個(gè)forms.py文件(這個(gè)套路是Django的慣用手法,就像views.py,models.py等等),然后輸入下面的內(nèi)容:

from django import formsclass NameForm(forms.Form):
    your_name = forms.CharField(label='Your name', max_length=100)

要點(diǎn):

提前導(dǎo)入forms模塊

所有的表單類都要繼承forms.Form類

每個(gè)表單字段都有自己的字段類型比如CharField,它們分別對(duì)應(yīng)一種HTML語言中的

元素中的表單元素。這一點(diǎn)和Django模型系統(tǒng)的設(shè)計(jì)非常相似。

例子中的label用于設(shè)置說明標(biāo)簽

max_length限制最大長(zhǎng)度為100。它同時(shí)起到兩個(gè)作用,一是在瀏覽器頁面限制用戶輸入不可超過100個(gè)字符,二是在后端服務(wù)器驗(yàn)證用戶輸入的長(zhǎng)度不可超過100。

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

優(yōu)點(diǎn):

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

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

3、防止SQL注入,通過對(duì)象操作的方式,默認(rèn)就是防止SQL注入

缺點(diǎn):

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

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

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

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

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

表記錄-----》類實(shí)例化對(duì)象

 ORM的兩大主要功能:

操作表:

--創(chuàng)建表

--修改表

--刪除表

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

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

完整過程:

一、編寫模型類

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

Django使用表格的方法

表分為單表,一對(duì)一表,一對(duì)多表,多對(duì)多表,就是表一般不會(huì)獨(dú)立存在,總會(huì)與其他表存在聯(lián)系。我創(chuàng)建了三個(gè)表,一個(gè)表為Publish(出版社),一個(gè)表為Author(作者),還有一個(gè)表Book(書籍),其中表書籍與表出版社是外鍵關(guān)系,與作者是多對(duì)多的關(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)  
#一對(duì)多的關(guān)系。2.0django中,當(dāng)有主外鍵和其他對(duì)應(yīng)關(guān)系時(shí),需要設(shè)置。
20     author = models.ManyToManyField("Author")
21     def __str__(self):
22         return  self.title

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

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

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

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

Django使用表格的方法

這個(gè)是記錄models里面改動(dòng)的執(zhí)行記錄。

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

Django使用表格的方法

以上是Django使用表格的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前名稱:Django使用表格的方法
網(wǎng)站地址:http://weahome.cn/article/pscppo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部