您好,登錄后才能下訂單哦!
小編給大家分享一下Django使用表格的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
我們可以通過Django提供的Form類來自用生成上面的表單,不再需要手動在HTML中編寫。
首先,在你當前app內新建一個forms.py文件(這個套路是Django的慣用手法,就像views.py,models.py等等),然后輸入下面的內容:
from django import formsclass NameForm(forms.Form): your_name = forms.CharField(label='Your name', max_length=100)
要點:
提前導入forms模塊
所有的表單類都要繼承forms.Form類
每個表單字段都有自己的字段類型比如CharField,它們分別對應一種HTML語言中的<form>元素中的表單元素。這一點和Django模型系統的設計非常相似。
例子中的label用于設置說明標簽
max_length限制最大長度為100。它同時起到兩個作用,一是在瀏覽器頁面限制用戶輸入不可超過100個字符,二是在后端服務器驗證用戶輸入的長度不可超過100。
Django中,與數據庫相關的模塊是model模塊,它提供了一種簡單易操作的API方式與數據庫交互,它是通過ORM映射的方式來操作數據庫,一個類對應數據庫一張表,一個類屬性,對應該表的一個字段,一個實例化的類對象就是一個表中的一行數據信息。在開發的階段,工程師只需要python語言本身進行代碼設計,而不用太過于分散注意力去操作SQL原生操作語句,這樣的方法既有它的優點,同樣也有不足之處。
優點:
1、實現了代碼與數據庫的解耦合
2、開發者不需要操作太多的原生SQL,可以提高開發效率
3、防止SQL注入,通過對象操作的方式,默認就是防止SQL注入
缺點:
1、犧牲性能,對象轉換到SQL會存在一定的消耗
2、當需要操作較復雜的語句時,用ORM對象操作的方式很難實現
ORM與數據庫的映射關系如下:
表名--------》類名
字段--------》屬性
表記錄-----》類實例化對象
ORM的兩大主要功能:
操作表:
--創建表
--修改表
--刪除表
操作表數據行:增、刪、改、查
Django自帶的數據庫為sqlite3,如果需要使用其他數據庫,需要其他的準備工作,并且,使用其他數據庫,需要自己提前建好數據庫,然后通過Django去連接,Django并不會創建數據庫。
完整過程:
一、編寫模型類
在Django項目的APP應用下的models.py文件中編寫類,每一個類就是一個最終都會被映射為一個數據表。在寫類之前有個準備工作,在settings.py文件中的“INSTALLED_APPS”要先加入自己的APP應用,告訴Django有這個應用。如圖:
表分為單表,一對一表,一對多表,多對多表,就是表一般不會獨立存在,總會與其他表存在聯系。我創建了三個表,一個表為Publish(出版社),一個表為Author(作者),還有一個表Book(書籍),其中表書籍與表出版社是外鍵關系,與作者是多對多的關系。
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) #一對多的關系。2.0django中,當有主外鍵和其他對應關系時,需要設置。 20 author = models.ManyToManyField("Author") 21 def __str__(self): 22 return self.title
二、生成數據表
創建類的代碼已經,寫好,此時需要兩句代碼將類轉換成對應的數據表:
python manage.py makemigrations #將類轉換成數據表結構 python manage.py migrate #根據上一句代碼生成數據表
上面兩句代碼先后執行,不出意外,就會在數據庫里面生成對應的數據表。其中,第一句執行完,會在app應用下的migrations的文件夾下生成操作的記錄文件“0001_initial.py”:
這個是記錄models里面改動的執行記錄。
最終生成的數據表如下:
以上是Django使用表格的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。