網(wǎng)站開發(fā)過程中,需要從前端向后端傳入數(shù)據(jù),由后端對數(shù)據(jù)進行操作,比如計算、存入數(shù)據(jù)庫等。
從前端向后端傳輸數(shù)據(jù),一般使用form表單。在Django中,有三種方法:
<form action=’’method=’post’> </form>
Modelform做為Django中集成的組件,主要針對數(shù)據(jù)庫中的某個表操作,通過models.py關聯(lián)數(shù)據(jù)庫。
本文著重講modelform的使用,下面正式開始。
首先建立一個forms.py,用來寫項目里的表單類。
首先引入幾個類
from django import forms #引入forms表單類
from users.models import User #引入models里的User類
from django.core.exceptions import ValidationError #引入異常拋出類
創(chuàng)建User表單類,類繼承了forms.ModelForm,password_confirm是密碼確認,我們在進行注冊的時候,往往會要求確認一次密碼。
class Meta:是利用model創(chuàng)建表單的類。model=User,用來實例化models.py中的User類,fields是表單中的字段,也就是表單項目。widgets是一個字典,在這里定義password表單為密碼輸入格式。
class UserModelForm(forms.ModelForm):
password_confirm=forms.CharField(label="確認密碼",widget=forms.PasswordInput,min_length=6,max_length=20)
class Meta:
model=User
fields=['username','password','password_confirm','gender','role']
widgets={"password":forms.PasswordInput()}
下面在templates文件夾下建立一個user_add_form.html文件,用來展示表單。
在views.py中增加一個方法user_add_form()方法。該方法需要使用forms.py中的UserModelForm類和models中的User類,在頭部引入這兩個類,
from users.models import User #引入models里的User類
from users.forms import UserModelForm #引入forms里的UserModelForm
增加一個user_add_form(request)方法,當前端的request是一個get方法時,實例化UserModelForm(),返回render方法,顯示form表單,否則,將request.POST的數(shù)據(jù)傳入UserModelForm類并實例化,
def user_add_form(request):
if request.method=="GET":
form=UserModelForm()
return render(request,"user_add_form.html",{"form":form})
在urls.py中增加一個路由。
在user_add_form.html中寫入{{form}},用來展示后端返回的form數(shù)據(jù)。
下面在瀏覽中測試一下。
輸入127.0.0.1:8000/user_add_form/
右鍵檢查頁面源碼,發(fā)現(xiàn),字段及輸入框已經(jīng)在頁面中。
本文結束。下一篇文章,將對user_add_form.html進行修改,實現(xiàn)表單的輸入功能,并通過表單將數(shù)據(jù)傳入后端,并插入數(shù)據(jù)庫。
圖1
圖2
圖3
圖1
圖2
圖3
*請認真填寫需求信息,我們會在24小時內與您取得聯(lián)系。