> 백엔드 개발 > 파이썬 튜토리얼 > [Python] WTForms를 사용하여 가변 길이 양식 처리

[Python] WTForms를 사용하여 가변 길이 양식 처리

大家讲道理
풀어 주다: 2016-11-07 10:20:33
원래의
1883명이 탐색했습니다.

Zhihu에서 본 질문: Python 플라스크의 wtform이 가변 길이 형식을 처리할 수 있나요?

문제 설명

form中的元素会变多。
比如有一个表格:
我喜欢的东西: 可以增加任意个物品(这几个物品填在不同的框),然后提交。
实现这个需求,需要用到FieldList
로그인 후 복사

간단한 예:

from wtforms import Form
from wtforms.fields import FieldList, StringField
class MyForm(Form):
    names = FieldList(StringField('名称'), label='物品列表', min_entries=1)
로그인 후 복사

양식 데이터 제출:

names-0=苹果
names-1=梨
names-2=香蕉
로그인 후 복사

json 데이터 제출:

{"names": ["苹果", "梨", "香蕉"]}
로그인 후 복사

출력 결과 표시:

print(form.names.data)
# ['苹果', '梨', '香蕉']
로그인 후 복사

다음은 좀 더 복잡한 예입니다.

from wtforms import Form
from wtforms.fields import FieldList, FormField, StringField, IntegerField
class ProductForm(Form):
    name = StringField('名称')
    count = IntegerField('数量')
class MyForm(Form):
    products = FieldList(FormField(ProductForm), label='产品列表', min_entries=1)
로그인 후 복사

양식 데이터 제출:

products-0-name=Iphone6
products-0-count=1
products-1-name=小米手机
products-1-count=2
로그인 후 복사

제출 json data:

{"products": [{"name": "Iphone6", "count": 1}, {"name": "小米手机", "count": 2}]}
로그인 후 복사

출력 결과는 다음과 같습니다.

print(form.products.data)
# [{'name': 'Iphone6', 'count': 1}, {'name': '小米手机', 'count': 2}]
로그인 후 복사

그럼 질문은 역학의 핵심이 무엇인지입니다.


네, 보시는 필드명이 0으로 시작하는 숫자입니다.

항목을 추가하고 싶으면 어떻게 해야 하나요?

1을 더한 가장 큰 숫자는 바로!

HTML의 js 코드는 역학을 구현하는 핵심입니다. 여기서는 Python 부분에만 중점을 두겠습니다.


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿