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에 따라 라이센스가 부여됩니다.