Django涓€庝箞澶勭悊琛ㄥ崟楠岃瘉
鍦―jango涓鐞嗚〃鍗曢獙璇侀€氬父闇€瑕佷娇鐢―jango鐨勮〃鍗曠被鍜岃鍥惧嚱鏁般€傞鍏堥渶瑕佸畾涔変竴涓〃鍗曠被锛岃绫荤户鎵胯嚜Django鐨刦orms.Form绫伙紝骞跺畾涔夎〃鍗曞瓧娈靛拰楠岃瘉瑙勫垯銆傛帴鐫€鍦ㄨ鍥惧嚱鏁颁腑鎺ユ敹鐢ㄦ埛鎻愪氦鐨勮〃鍗曟暟鎹紝骞跺疄渚嬪寲琛ㄥ崟绫昏繘琛岄獙璇併€?/p>
浠ヤ笅鏄竴涓畝鍗曠殑绀轰緥锛?/p>
# forms.py
from django import forms
class MyForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
def clean_username(self):
username = self.cleaned_data['username']
# 鑷畾涔夐獙璇佽鍒?/span>
if not username.isalnum():
raise forms.ValidationError("鐢ㄦ埛鍚嶅彧鑳藉寘鍚瓧姣嶅拰鏁板瓧")
return username
# views.py
from django.shortcuts import render
from .forms import MyForm
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
# 澶勭悊琛ㄥ崟鏁版嵁
username = form.cleaned_data['username']
password = form.cleaned_data['password']
# 鍏朵粬鎿嶄綔...
else:
# 琛ㄥ崟楠岃瘉澶辫触
return render(request, 'my_template.html', {'form': form})
else:
form = MyForm()
return render(request, 'my_template.html', {'form': form})
鍦ㄨ鍥惧嚱鏁颁腑锛岄鍏堝垽鏂姹傛柟娉曟槸鍚︿负POST锛屽鏋滄槸鍒欏疄渚嬪寲琛ㄥ崟绫诲苟璋冪敤is_valid()鏂规硶杩涜楠岃瘉銆傚鏋滆〃鍗曢獙璇侀€氳繃锛屽垯鍙互閫氳繃cleaned_data灞炴€ц幏鍙栭獙璇佸悗鐨勬暟鎹繘琛屽悗缁鐞嗐€傚鏋滆〃鍗曢獙璇佸け璐ワ紝鍒欒繑鍥炲甫鏈夐敊璇俊鎭殑琛ㄥ崟缁欑敤鎴烽噸鏂板~鍐欍€?/p>
鍦ㄦā鏉夸腑锛屽彲浠ラ€氳繃form.errors鍜宖orm.non_field_errors鏄剧ず鍚勫瓧娈靛拰闈炲瓧娈甸敊璇俊鎭€?/p>
浠ヤ笂鏄竴涓畝鍗曠殑琛ㄥ崟楠岃瘉澶勭悊鐨勭ず渚嬶紝瀹為檯搴旂敤涓彲鑳戒細鏍规嵁鍏蜂綋闇€姹傝繘琛屾洿澶嶆潅鐨勮〃鍗曢獙璇佸鐞嗐€?/p>
相关问答