FormPump

Software screenshot:
FormPump
Rincian Software:
Versi: 0.1.7
Tanggal Upload: 20 Feb 15
Pengembang: Dave Mankoff
Lisensi: Gratis
Popularitas: 5

Rating: nan/5 (Total Votes: 0)

FormPump adalah alat Python yang terintegrasi dengan mesin template yang populer, yang memungkinkan Anda untuk rapi mengisi formulir HTML.
The FormPump adalah kumpulan Python template engine ekstensi yang ditulis untuk membuat bentuk HTML lebih mudah untuk bekerja dengan. Ini secara langsung menangani masalah yang terkait dengan mengisi nilai ke input Anda, menerapkan label untuk input dan menampilkan pesan kesalahan dengan cara cepat. Hal ini dilakukan dengan memperkenalkan satu set tag / fungsi ke dalam template Anda yang menciptakan bentuk-bentuk elemen dengan cara yang intuitif dan alami yang cepat untuk beradaptasi ke dalam kode yang ada.
Saat ini, FormPump mendukung Jinja2.
Sebuah Pengantar [Jinja2] Contoh
(Contoh ditunjukkan pada README ini ditunjukkan pada Jinja2. Bahasa template lain akan memiliki penggunaan yang sama.)
>>> Dari formpump impor JinjaPump
>>> Dari Jinja2 impor Lingkungan
>>> Env = Environment (ekstensi = [JinjaPump])
>>> Tpl = env.from_string ('' '
... {Bentuk% "contoh" class = "sederhana-bentuk"%}
... {% Label 'INP'} Masukkan nilai: {% endlabel%}
... {% Teks "INP"%}
... {% Endform%}
... '' ')
>>> Print tpl.render ()


& Nbsp;
& Nbsp;

& Nbsp;>>> print tpl.render (form_vars = {'contoh': {'INP': 123}})

& Nbsp;
& Nbsp;

Dalam contoh di atas, kita melihat objek template sederhana yang dibuat yang berisi satu bentuk. Ketika diberikan tanpa argumen, itu hanya mencetak formulir dengan tidak ada informasi diisi. Ketika khusus "form_vars" dict disediakan, mengisi nilai-nilai itu dapat menemukan ke dalam bentuk seperti itu menghasilkan itu.
Anda juga dapat melihat, atribut id lama jelek yang ditetapkan. Ini diperlukan agar FormPump dapat mengasosiasikan label dengan input; FormPump membuat mereka sebagai kelanjutannya. Anda bebas untuk menimpa mereka sendiri dengan hanya memberikan id Anda sendiri dan untuk atribut pada elemen Anda. FormPump otomatis melacak label dan masukan dalam template dan upaya untuk cerdas mengasosiasikan mereka dengan satu sama lain, tapi hanya jika input tidak memiliki id yang ditentukan, dan label tidak memiliki untuk yang ditentukan.
Mengisi Formulir
FormPump mengisi formulir dengan melihat nilai-nilai input dalam variabel template yang ditunjuk. Default variabel ini form_vars tetapi dapat dikonfigurasi dengan menyetel properti values_dict_name ekstensi (untuk Jinja2, mengatur ini di lingkungan: env.values_dict_name).
form_vars adalah kamus kamus. Kunci tingkat atas adalah pengidentifikasi konteks bentuk, dijelaskan lebih rinci di bawah ini. Setiap konteks bentuk mengacu pada kamus lain yang merupakan set sederhana pasangan kunci-nilai yang FormPump menggunakan lookup nilai untuk formulir. Kunci mengacu pada nama masukan. Nilai-nilai yang menjadi atribut nilai * untuk input, dikonversi ke unicode.
* Catatan: Untuk input seperti tombol radio, di mana nilai-nilai yang telah ditentukan, FormPump menggunakan nilai form_vars untuk menentukan tombol radio untuk mengadakan pemilihan, jika ada.
Formulir Konteks ini
FormPump memungkinkan Anda untuk memiliki lebih dari satu bentuk dalam template Anda. Setiap bentuk dapat memiliki nama masukan tumpang tindih. Bentuk-bentuk yang disatukan oleh apa yang disebut FormPump konteks bentuk. Contoh di atas menunjukkan konteks bentuk set "contoh" - itu adalah string segera setelah bentuk kunci. String harus string konstan, bukan ekspresi dinamis variabel atau lainnya, (ada cara sekitar ini tertutup di bawah).
Contoh sederhana harus menjelaskan penggunaannya:
& Nbsp;>>> tpl = env.from_string ('' '
... {% Bentuk "a"%}
... {% Teks "INP"%}
... {% Endform%}
... {Bentuk% "b"%}
... {% Teks "INP"%}
... {% Endform%}
... '' ')
& Nbsp;>>> print tpl.render (form_vars = {'a': {'INP': 'A'}, 'b': {'INP': 'B'}})

& Nbsp;


& Nbsp;

Formulir konteks benar-benar melayani tujuan ganda. Sebuah kendala umum dengan memiliki beberapa bentuk HTML pada satu halaman adalah bahwa bisa sulit untuk menentukan bentuk disampaikan jika kedua bentuk memiliki atribut aksi yang sama. Formulir konteks dapat membantu.
Dengan pengaturan default, seperti yang ditunjukkan sejauh ini, mereka tidak memiliki efek langsung pada output. Namun, jika Anda mengatur properti form_name_key pada ekstensi, FormPump akan secara otomatis memasukkan input tersembunyi yang berisi nilai bentuk konteks sebagai nama, (untuk Jinja2, mengatur ini di lingkungan).
& Nbsp;>>> env.form_name_key = '__'
& Nbsp;>>> tpl = env.from_string ('' '
... {Bentuk% "contoh"%}
... {% Endform%}
... '' ')
& Nbsp;>>> print tpl.render ()


Nilai disampaikan kemudian dapat digunakan untuk dengan mudah mengidentifikasi bentuk diserahkan pada server.
Tapi, menggunakan fitur ini membawa satu komplikasi lebih banyak! Katakanlah kita ingin memiliki satu bentuk diulang beberapa kali pada satu halaman. Dengan setiap pengulangan bentuk, kami ingin mengubah variabel yang prefilled. Sebagai contoh, katakanlah Anda memiliki daftar orang-orang di sebuah perusahaan, dan Anda ingin dapat mengedit dan mengirimkan update ke nomor telepon untuk masing-masing. Oleh karena itu Anda ingin FormName yang sama disampaikan kembali ke server, tetapi _different konteks bentuk saat mengisi formulir. Masukkan fungsi form_ctx, yang memungkinkan Anda untuk mengubah konteks di mana FormPump mendongak nilai dari on the fly. Fungsi form_ctx juga memungkinkan Anda untuk menetapkan nama konteks dinamis untuk formulir Anda, yang fungsi bentuk standar tidak:
& Nbsp;>>> tpl = env.from_string ('' '
...

    ... {% Untuk orang pada orang%}
    ...

  • ... {Bentuk% "orang"%}
    ... {% Form_ctx "orang.% D"% orang ['id']}%
    ... {% Tersembunyi "id"%}
    ... {Label% "telepon"%} {{orang ['nama']}} {% endlabel%}
    ... {% Teks "telepon"%}
    ... {% Endform%}
    ...

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

... '' ')
& Nbsp;>>> orang = [{"id": 1, 'nama': 'Bill B.', 'telepon': '555-123-4567'},
... {'Id': 2, 'nama': 'Chris C.', 'telepon': '555-7654-321'}]
& Nbsp;>>> print tpl.render (orang = orang,
... Form_vars = dict ([('orang.% D'% orang ['id'], orang) untuk orang pada orang]))

    & Nbsp;

  • & Nbsp;

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

    & Nbsp;

  • & Nbsp;

  • & Nbsp;

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

    & Nbsp;

Jika Anda melihat di atas, Anda akan melihat dua bentuk, baik dengan nama bentuk yang sama, tetapi dengan nilai yang berbeda diisi berkat form_ctx dinamis. Fungsi form_ctx mempengaruhi semua masukan yang datang setelah. Anda dapat menentukan beberapa form_ctx dalam bentuk jika Anda ingin, masing-masing menyiasati sebelumnya. Namun perlu dicatat bahwa itu bisa menjadi Gaya membingungkan.
Kesalahan Form
Kesalahan Form bekerja seperti form_vars. Anda menggunakan fungsi kesalahan dalam template Anda untuk menunjukkan di mana kesalahan harus pergi, dan kemudian tentukan form_error sebagai kamus bersarang kamus yang berisi setiap dan semua pesan kesalahan yang Anda ingin dimasukkan ke dalam. Setiap kesalahan yang tidak menemukan nilai yang sesuai dalam lookup form_error akan ditinggalkan dari hasil akhir.
>>> Tpl = env.from_string ('' '
... {Bentuk% "contoh"%}
... {% Error "field_A"%}
... {% Teks "field_A"%}
... {% Error "field_B"%}
... {% Teks "field_B"%}
... {% Endform%}
... '' ')
>>> Print tpl.render (form_vars = {"contoh": {"field_A": "val A", "field_B": "val B"}},
... Form_errors = {"contoh": {"field_B": "error B"}})

& Nbsp;
& Nbsp;
kesalahan B

& Nbsp;

Perhatikan juga bahwa setiap masukan yang menemukan kesalahan akan memiliki kelas "kesalahan" css ditambahkan kepada mereka.
Pesan kesalahan secara default adalah output seperti di atas & mdash; dalam div dengan class "error-message". Anda dapat menentukan gaya pesan kesalahan Anda sendiri dengan menetapkan fungsi untuk error_renderers kamus dan kemudian menentukan atribut penyaji dalam template: {penyaji% error = "kebiasaan"%}. . Secara default, semua kesalahan menggunakan "default" renderer yang Anda bebas untuk menimpa

Persyaratan :

  • Python

Perangkat lunak lain dari pengembang Dave Mankoff

htmlmin
htmlmin

12 May 15

Komentar untuk FormPump

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!