Django-forms 구성 요소
forms 구성 요소는 무엇에 쓰입니까?
1. 데이터를 검증한다.
2. 페이지에 오류 정보가 표시됩니다.
3. 페이지를 렌더링합니다.
4. 데이터를 재설정합니다.
views.py 중:
from django import forms
class BookForm(forms.Form):
title = forms.CharField(max_length=32)
price = forms.IntegerField()
email = forms.EmailField()
그 중에서 title,price,email은 검사에 사용되는 필드입니다.Django Console에서 검증할 수 있습니다.
Django Console:
# ,
from app01.views import BookForm
fm=BookForm({"title":"yuan","price":123,"email":"123"})
fm.is_valid() # True, False
False
fm.cleaned_data # ( )
{'title': 'yuan', 'price': 123}
fm.errors # ( )
{'email': ['Enter a valid email address.']}
fm=BookForm({"title":"yuan","price":123,"email":"[email protected]"})
fm.is_valid()
True
fm.cleaned_data
{'title': 'yuan', 'price': 123, 'email': '[email protected]'}
fm.errors
{}
fm=BookForm({"title":"yuan","price":123,"email":"[email protected]","abc":123}) # , ,
fm.is_valid()
True
fm.cleaned_data
{'title': 'yuan', 'price': 123, 'email': '[email protected]'}
fm.errors
{}
fm=BookForm({"title":"yuanhfdurhgdjfhdfruhfugfhrfherjhfeuhuerhtu","price":123,"email":"[email protected]","abc":123})
fm.is_valid()
False
fm.cleaned_data
{'price': 123, 'email': '[email protected]'}
fm.errors
{'title': ['Ensure this value has at most 32 characters (it has 42).']}
로그인 예:
1.사용자 이름 길이는 5자리보다 낮으면 안 됩니다.
2.암호는 순수한 숫자여야 한다.
3.메일박스는 반드시 메일박스 형식에 부합해야 한다.
4.입력 데이터 형식에 문제가 있으면 사용자에게 표시합니다.
먼저 데이터베이스에 표를 만듭니다.
models.py:
class UserInfo(models.Model):
user=models.CharField(max_length=32)
pwd=models.CharField(max_length=32)
email=models.CharField(max_length=32)
보내다http://127.0.0.1:8000/reg/요청:
urls.py:
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('reg/', views.reg),
]
views.py:
from django import forms
from app01.models import UserInfo
class UserForm(forms.Form):
msg={"required":" "}
user=forms.CharField(min_length=5, error_messages=msg)
pwd=forms.IntegerField(error_messages=msg)
email=forms.EmailField(error_messages=msg)
def reg(request):
if request.method=="POST":
print(request.POST)
#
form=UserForm(request.POST)
if form.is_valid():
print(form.cleaned_data)
UserInfo.objects.create(**form.cleaned_data)
return HttpResponse("ok")
else:
# print(form.cleaned_data)
# print(form.errors) # {"user":["",""]}
# print(form.errors.get("user"))
# print(form.errors.get("user")[0])
errors=form.errors
return render(request, "reg.html", {"errors":errors})
else:
return render(request, "reg.html")
reg.html:
"en">
"UTF-8">
Title
""method="post">{% csrf_token %}
사용자 이름 "text"name = "user"> class = "error"> {errors.user.0}}
암호'text'name='pwd'>class='error'>{{errors.pwd.0}}
메일박스 "text"name = "email"> class = "error"> {errors.email.0}}
"submit">
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.