Trong các ứng dụng thực tế, nếu tôi sử dụng một khuôn khổ biểu mẫu, tôi chắc chắn sẽ kết thúc chiến đấu tại một thời điểm nào đó.Mẫu thiết kế gọn gàng nhất để hiển thị dữ liệu biểu mẫu và lỗi xác thực?
Tôi quan tâm đến các mẫu thực tiễn tốt nhất để tạo biểu mẫu trong trang web. Tham chiếu đến việc triển khai bằng bất kỳ ngôn ngữ nào sẽ là tiền thưởng (tôi thường làm việc bằng Python). Tôi đặc biệt quan tâm đến vấn đề tạo/hiển thị biểu mẫu cho người dùng cuối.
Đây là cách tôi xem chủ đề. Hầu hết các phần của quy trình biểu mẫu có thể được xử lý với các thành phần tương đối nhẹ mà tôi có thể lấy ra khỏi các khung công tác như formencode và formish. Bởi "hầu hết các phần" tôi có nghĩa là giải mã dữ liệu biểu mẫu vào cấu trúc dữ liệu hợp lý (ví dụ: các trường lặp lại trong biểu mẫu sẽ trở thành danh sách bằng Python); marshalling giá trị vào các loại mà chúng tôi muốn (ví dụ: trường "tuổi" phải trở thành số nguyên); và xác thực các giá trị (ví dụ: "độ tuổi không được để trống").
Bit tôi kết thúc chiến đấu là tự tạo và hiển thị các biểu mẫu. Nhiều khung công tác (ví dụ: FormAlchemy) kết hợp chặt chẽ các lược đồ, xác thực và mô hình của chúng với một số loại lược đồ tạo tiện ích con biểu mẫu mà tôi không thích.
Nhiệm vụ có liên quan trong việc đưa ra một hình thức là:
- Làm widget động (ví dụ như một danh sách lựa chọn với giá trị từ một cơ sở dữ liệu)
- Looping qua fieldsets lặp đi lặp lại (ví dụ như một danh sách các tên, cặp tuổi đó từng đại diện cho một người)
- Nhúng giá trị hiện có trong các trường mẫu (từ một cấu trúc dữ liệu)
- Hiển thị lỗi xác nhận tiếp theo để tạo thành ruộng hoặc ở phía trên cùng của trang
Các tùy chọn tôi thấy để làm điều này là:
- tạo, dựa trên widget được định nghĩa trong lược đồ (ví dụ Django)
- sau quá trình hình thức, bằng cách áp dụng một cấu trúc dữ liệu chứa lỗi và giá trị cho một mẫu HTML (ví dụ htmlfill)
- chấp nhận điều đó cho tất cả nhưng các trường hợp đơn giản nhất, bạn cũng có thể bắt đầu ngay từ đầu bởi mã hóa logic (vòng lặp, hiển thị lỗi, vv) theo cách thủ công trong mỗi mẫu biểu mẫu của bạn
Có cách nào khác để xử lý sự cố không? Những ưu và nhược điểm của mỗi cái là gì?
Các khung (Python) Tôi đã nhìn/đã chỉ ra cho đến nay là: flatland, formencode, FormAlchemy, formish, WTForms, Django hình thức, web2py, deform, FormConvert và web.py
Cập nhật : Tôi đã không thực sự có được rất nhiều với trả lời các câu hỏi về thực hành tốt nhất để xây dựng các hình thức, nhưng tôi đã đưa ra quyết định với dự án hiện tại của tôi để đi cho deform/colander, đó là một cách sane xử lý serialization vv, nhưng quan trọng hơn ly được ghi chép đầy đủ và được kiểm tra kỹ lưỡng. Tôi sẽ tránh tạo ra hình dạng cho tất cả mọi thứ, nhưng là những dạng đơn giản nhất.
Cảm ơn bạn đã đặt câu hỏi này theo cách bạn đã làm. Yêu cầu của tôi gần giống với yêu cầu của bạn. Dựa trên bản cập nhật của bạn, bạn đã từ bỏ việc tạo biểu mẫu. Nhưng liên quan đến việc điền các biểu mẫu có giá trị, bạn có thể tìm được giải pháp tốt không? Bạn có sử dụng htmlfill cho mục đích này không? Cảm ơn – adowds