FormPump

Phần mềm chụp màn hình:
FormPump
Các chi tiết về phần mềm:
Phiên bản: 0.1.7
Ngày tải lên: 20 Feb 15
Nhà phát triển: Dave Mankoff
Giấy phép: Miễn phí
Phổ biến: 5

Rating: nan/5 (Total Votes: 0)

FormPump là một công cụ Python tích hợp với các công cụ khuôn mẫu phổ biến, cho phép bạn sạch sẽ điền vào biểu mẫu HTML.
Các FormPump là một bộ sưu tập của Python mở rộng mẫu động cơ bản để thực hiện các hình thức HTML dễ dàng hơn để làm việc với. Nó trực tiếp khắc phục những vấn đề liên quan đến điền vào các giá trị vào đầu vào của bạn, áp dụng các nhãn để đầu vào của bạn và hiển thị các thông báo lỗi một cách nhanh chóng. Nó làm điều này bằng cách giới thiệu một bộ các thẻ / chức năng vào template của bạn để tạo ra các hình thức yếu tố một cách trực quan và tự nhiên mà là nhanh chóng thích nghi vào mã hiện có.
Hiện nay, FormPump hỗ trợ Jinja2.
An Introductory [Jinja2] Ví dụ
(Ví dụ như trong README này được thể hiện trong Jinja2. Templating ngôn ngữ khác sẽ có cách sử dụng tương tự.)
>>> Từ formpump JinjaPump nhập khẩu
>>> Từ jinja2 nhập khẩu Môi trường
>>> Env = Môi trường (phần mở rộng = [JinjaPump])
>>> Tpl = env.from_string ('' '
... {% Hình thức "dụ" class = "đơn giản dạng"%}
... {% Nhãn 'inp'} Nhập một giá trị: {% endlabel%}
... {% Văn bản "inp"%}
... {% Endform%}
... '' ')
>>> Print tpl.render ()


& Nbsp;
& Nbsp;

& Nbsp;>>> in tpl.render (form_vars = {'dụ': {'inp': 123}})

& Nbsp;
& Nbsp;

Trong ví dụ trên, chúng ta thấy một đối tượng mẫu đơn giản được tạo ra có chứa một hình thức. Khi trả lại mà không có bất kỳ đối số, nó chỉ đơn giản in ra dưới dạng không có thông tin điền vào. Khi "form_vars" đặc biệt dict được cung cấp, nó lấp đầy bất kỳ giá trị nó có thể tìm ra các hình thức vì nó tạo ra nó.
Bạn cũng có thể nhận thấy các, thuộc tính id xấu xí lâu đã được thiết lập. Đây là những yêu cầu để FormPump có thể kết hợp với nhãn đầu vào; FormPump làm cho họ lên như nó đi. Bạn được tự do để ghi đè lên chúng mình bằng cách đơn giản là cung cấp id của riêng bạn và cho các thuộc tính trên các yếu tố của bạn. FormPump tự động theo dõi của các nhãn và các đầu vào trong template và cố gắng thông minh kết hợp chúng với nhau, nhưng chỉ khi các yếu tố đầu vào không có id được chỉ định, và không có nhãn cho của quy định.
Điền vào hình thức
FormPump điền vào mẫu đơn bằng cách tìm kiếm các giá trị đầu vào trong định biến mẫu. Biến này mặc định là form_vars nhưng có thể được cấu hình bằng cách thiết lập thuộc tính values_dict_name của phần mở rộng (cho Jinja2, thiết lập này trên môi trường: env.values_dict_name).
form_vars là một từ điển của từ điển. Phím cấp cao nhất là các định danh bối cảnh hình thức, giải thích chi tiết hơn dưới đây. Mỗi bối cảnh hình thức đề cập đến một từ điển mà là một tập hợp đơn giản của các cặp khóa-giá trị FormPump sử dụng để tra cứu giá trị cho biểu mẫu. Các phím tham khảo các tên đầu vào. Các giá trị được trở thành thuộc tính giá trị * cho đầu vào, chuyển đổi sang unicode.
* Lưu ý: Đối với các yếu tố đầu vào như một nút radio, nơi các giá trị được xác định trước, FormPump sử dụng giá trị form_vars để xác định nút radio để chọn trước, nếu có.
Bối cảnh của Form
FormPump cho phép bạn có nhiều hơn một hình thức trong template của bạn. Mỗi hình thức có thể có những cái tên đầu vào chồng chéo. Các hình thức được disambiguated bởi những gì FormPump gọi bối cảnh hình thức. Các ví dụ trên cho thấy một bối cảnh hình thức thiết lập để "dụ" - đó là những chuỗi ngay sau từ khóa mẫu. Chuỗi phải là một chuỗi liên tục, không phải là một biểu hiện năng động biến hay khác, (có một khoảng cách này bao phủ bên dưới).
Một ví dụ đơn giản nên làm rõ việc sử dụng của họ:
& Nbsp;>>> tpl = env.from_string ('' '
... {% Hình thức "một"%}
... {% Văn bản "inp"%}
... {% Endform%}
... {% Dạng "b"%}
... {% Văn bản "inp"%}
... {% Endform%}
... '' ')
& Nbsp;>>> in tpl.render (form_vars = {'a': {'inp': 'A'}, 'b': {'inp': 'B'}})

& Nbsp;


& Nbsp;

Mẫu bối cảnh thực sự phục vụ một mục đích kép. Một trở ngại phổ biến với việc có nhiều hình thức HTML trên một trang duy nhất là có thể khó khăn để xác định mẫu đã được gửi nếu cả hai hình thức đều là các thuộc tính hành động tương tự. Bối cảnh hình thức có thể giúp đỡ.
Với các thiết lập mặc định, như vậy, đến nay, họ không có tác dụng trực tiếp trên đầu ra. Tuy nhiên, nếu bạn thiết lập thuộc tính form_name_key trên phần mở rộng, FormPump sẽ tự động chèn một đầu vào ẩn chứa dưới hình thức giá trị bối cảnh như tên gọi của nó, (cho Jinja2, thiết lập này đối với môi trường).
& Nbsp;>>> env.form_name_key = '__'
& Nbsp;>>> tpl = env.from_string ('' '
... {% Hình thức "dụ"%}
... {% Endform%}
... '' ')
& Nbsp;>>> in tpl.render ()


Các giá trị trình sau đó có thể được sử dụng để dễ dàng xác định các hình thức trình trên máy chủ.
Nhưng, bằng cách sử dụng tính năng này mang lên một biến chứng nhiều hơn nữa! Nói rằng chúng tôi muốn có một mẫu lặp đi lặp lại nhiều lần trên một trang duy nhất. Với mỗi lần lặp lại của hình thức, chúng tôi muốn thay đổi các biến được đóng sẵn. Ví dụ, giả sử bạn có một danh sách những người trong một công ty, và bạn muốn để có thể chỉnh sửa và nộp bản cập nhật cho các số điện thoại cho mỗi một. Do đó, bạn muốn formname cùng gửi lại cho máy chủ, nhưng một hình thức bối cảnh _different khi điền vào mẫu. Nhập các chức năng form_ctx, cho phép bạn thay đổi bối cảnh FormPump nhìn lên giá trị từ trên bay. Các chức năng form_ctx cũng cho phép bạn chỉ định tên bối cảnh năng động với các hình thức của bạn, mà các chức năng hình thức tiêu chuẩn không:
& Nbsp;>>> tpl = env.from_string ('' '
...

    ... {% Cho người dân%}
    ...

  • ... {% Hình thức "người"%}
    ... {% Form_ctx "người.% D"% người ['id']%}
    ... {% Ẩn "id"%}
    ... {% Nhãn "điện thoại"%} {{người ['name']}} {% endlabel%}
    ... {% Văn bản "điện thoại"%}
    ... {% Endform%}
    ...

  • ... {% Endfor%}
    ...

... '' ')
& Nbsp;>>> người = [{'id': 1, 'name': 'Bill B.', 'điện thoại': '555-123-4567'},
... {'Id': 2, 'name': 'Chris C.', 'điện thoại': '555-7654-321 "}]
& Nbsp;>>> in tpl.render (người = người,
... Form_vars = dict ([('người.% D'% người ['id'], người) cho người dân]))

    & Nbsp;

  • & Nbsp;

    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

    & Nbsp;

  • & Nbsp;

  • & Nbsp;

    & Nbsp;
    & Nbsp;
    & Nbsp;
    & Nbsp;

    & Nbsp;

Nếu bạn nhìn ở trên, bạn sẽ thấy hai hình thức, cả hai đều có tên giống như hình thức, nhưng với giá trị khác nhau điền vào nhờ các form_ctx năng động. Các chức năng form_ctx ảnh hưởng đến tất cả các yếu tố đầu vào đến sau nó. Bạn có thể chỉ định nhiều của form_ctx trong một hình thức nếu bạn muốn, mỗi một pre-empting trước. Tuy nhiên lưu ý rằng ông có thể trở nên phong cách khó hiểu.
Lỗi Mẫu
Lỗi hình thức hoạt động giống như form_vars. Bạn sử dụng các chức năng lỗi trong mẫu của bạn để cho biết nơi lỗi nên đi, và sau đó xác định form_error như một từ điển lồng nhau của các từ điển có chứa bất kỳ và tất cả các thông báo lỗi mà bạn muốn đưa vào. Bất kỳ lỗi mà không tìm thấy một giá trị tương ứng trong tra cứu form_error sẽ được bỏ ra khỏi đầu ra cuối cùng.
>>> Tpl = env.from_string ('' '
... {% Hình thức "dụ"%}
... {% Lỗi "field_A"%}
... {% Văn bản "field_A"%}
... {% Lỗi "field_B"%}
... {% Văn bản "field_B"%}
... {% Endform%}
... '' ')
>>> Print tpl.render (form_vars = {"dụ": {"field_A": "val A", "field_B": "val B"}},
... Form_errors = {"dụ": {"field_B": "Lỗi B"}})

& Nbsp;
& Nbsp;
lỗi B

& Nbsp;

Cũng lưu ý rằng bất kỳ đầu vào mà tìm thấy một lỗi sẽ có các lớp học "lỗi" css thêm vào cho họ.
Thông báo lỗi mặc định là đầu ra như trên & mdash; trong một div với class "lỗi tin nhắn". Bạn có thể chỉ định kiểu thông báo lỗi của riêng bạn bằng cách gán chức năng để error_renderers từ điển của nó và sau đó xác định các thuộc tính renderer trong template: {% lỗi renderer = "tùy chỉnh"%}. . Theo mặc định, tất cả các lỗi sử dụng "mặc định" renderer mà bạn được tự do để ghi đè lên

Yêu cầu :

  • Python

Phần mềm khác của nhà phát triển Dave Mankoff

htmlmin
htmlmin

12 May 15

Ý kiến ​​để FormPump

Bình luận không
Nhập bình luận
Bật hình ảnh!