Django에서form의 사용

2086 단어
많은 예를 들어 로그인하면 페이지는 하나의 표로 제출 버튼을 누르면 데이터의 제출을 진행한다.Django에는 폼에 대응하는 특별한 클래스가 있습니다. (form 클래스로 봉인됩니다.)다음은 form류의 사용에 대해 이야기합시다.
1 Form 클래스 일반 쓰기
  • 1) Form을 정의하는 모든 필드(대응하는 모델이 없음)를 정의한다.또 다른 점은 Django가widget으로 데이터 항목의 형식을 정의하는 것입니다. 예를 들어 암호란은 이렇게 정의할 수 있습니다.widget은 암호 형식의 텍스트 필드입니다. label은 이 표시줄의 라벨을 암호로 표시하고, Require는 입력해야 한다고 표시합니다:
  • password = forms.CharField(widget=forms.PasswordInput(),
            label=u'  ',
            required=True)
    
  • 2) 표시된fields를 포함하여 메타 서브클래스를 정의한다
  • 3) 필드 확인
  • clean_필드 이름 (): 이 방법은 지정한 필드를 검사합니다.
  • clean(): 전체 폼에 대한 검사.ps: 일반적으로 슈퍼를 호출하여 부모 필드의 검사를 해야 하지만, 폼의 검사를 완전히 제어할 때 슈퍼를 호출하지 마십시오.내가 다시 비밀번호를 리셋할 때, 이 사용자가 이미 존재한다고 계속 알려 왔다. 왜냐하면 내가 계승한 부류가 사용자의 이 필드를 검사했기 때문이다.
  • 검사 실패: 실패하고 싶을 때 알림을 해 주십시오. raise forms.ValidationError('message')
  • 반환값: 정상이면 clean필드, 이 필드로 돌아가기;clean 방법이라면 되돌아갑니다self.cleaned_data.


  • 2 뷰에서 Form 사용
  • 1)form을 사용할 때 자주 사용하는 form은 Request입니다.POST는 매개 변수로 제출한 데이터를form 클래스의 실례로 바꿉니다. form = self.form_class(request.POST)
  • 2) 검증된 데이터 사용: 사용form.valid() 방법, 통과하면 통과form.cleaned_data[ ]orform.cleaned_data.get( )
  • 3 Django Form의 검증 메커니즘
    공식 문서에는 Django의 검증 메커니즘에 대해 다음과 같이 자세히 설명되어 있습니다.
  • 1) 자단자류의 검사: 세 부분으로 나뉘어 먼저 topython을 Python 클래스로 변환한 다음validate를 사용하여 특정한 검증을 하고 마지막으로runvalidators에서 모든 검사를 실행하고 이상 수집;
  • 2)clean_필드: 앞에서 언급한 바와 같이 사용자 정의 검사는 여기서 검사할 수 있습니다.1)와 다른 것은 필드 유형 등 검증을 하는 것이 아니라 업무적인 요구를 하는 필드 검증이라고 볼 수 있다.예를 들어 지정된 회사의 메일박스는 여기서 정규 검사를 할 수 있다.
  • 3)clean 방법: 폼을 검증한다. 예를 들어 비밀번호를 리셋하고 입력한 기존 비밀번호가 정확한지 확인한 다음에 새로 입력한 두 번의 비밀번호가 같아야 한다. 이런 조작은 여기에 놓고 검사할 수 있다.(슈퍼 방법을 언제 사용해서 검사를 하는지 다시 한 번 알림) 공식 문서
  • 4) 모델류를 언제 사용하는지에 대한 나의 얕은 인식은 모델에서Form 필드와 딱 일치하면 사용할 수 있다는 것이다.그렇지 않으면 form의 필드를 스스로 정의해야 합니다.

  • 4 소결
    Form과 View는 상속할 수 있는 좋은 것들이 많다.물론 시작할 때는 매우 고통스러울 것이다. 무엇이 있는지, 그 안에 직접 사용할 수 있는 방법이 있는지도 모르기 때문이다.이것은 아무런 지름길이 없으니 많이 조사하여 많이 써야 한다.물론 답을 찾지 못하면 원본 코드의 과정을 볼 수 있다.

    좋은 웹페이지 즐겨찾기