Rincian Software:
Versi: 0.83
Tanggal Upload: 20 Feb 15
Lisensi: Gratis
Popularitas: 0
XHPy meluas Python sintaks sehingga fragmen XML menjadi ekspresi Python valid.
Keuntungan
& Nbsp; * Kesederhanaan: menulis UI logika dalam, sintaks ekspresif sederhana tanpa memerlukan template eksternal atau bahasa template.
& Nbsp; * Fleksibilitas: menggunakan Python ekspresi bebas dalam tag XHPy, dan sebaliknya.
& Nbsp; * Keamanan: manfaat dari melarikan diri otomatis teks dalam tag XHPy.
& Nbsp; * Reusability: membangun komponen reusable oleh subclassing: x: elemen.
Contoh
Dalam bar.py:
dari xhpy.init impor register_xhpy_module
register_xhpy_module ('foo')
impor foo
Dalam foo.py:
dari xhpy.pylib impor *
Kelas: ui: foo (: x: elemen):
& Nbsp; atribut daftar bar
& Nbsp; kategori aliran%
& Nbsp; def render (self):
& Nbsp; a =
& Nbsp; untuk b di self.getAttribute ('bar'):
& Nbsp; a.appendChild (
& Nbsp; mengembalikan
Kita sekarang dapat menjalankan bar.py sebagai script Python yang normal:
$ Python bar.py
- 0
- 1
- 2
Ucapan Selamat! Anda hanya menulis potongan pertama dari XHPy.
Perintah
XHPy menambahkan beberapa sintaks baru untuk Python. Baris demi baris waktu ulangan!
dari xhpy.init impor register_xhpy_module
Ini menginisialisasi XHPy dan memungkinkan Anda untuk mendaftar modul harus ditafsirkan sebagai XHPy.
register_xhpy_module ('foo')
Sekarang modul foo dalam foo.py akan ditafsirkan sebagai XHPy ketika diimpor. Jika foo adalah sebuah paket, semua submodul yang juga akan terdaftar; ini berguna untuk mendaftarkan perpustakaan UI.
impor foo
Untuk benar-benar menggunakan XHPy, namun Anda akan mungkin ingin perpustakaan inti:
dari xhpy.pylib impor *
Sekarang Anda memiliki akses ke semua standar HTML 4.0 elemen,: x: kelas dasar elemen (ini adalah apa yang Anda membangun komponen kustom di atas!), Dan beberapa utilitas.
Kelas: ui: foo (: x: elemen):
Membuat komponen baru mudah: hanya subclass: x: elemen. Untuk kelas komponen untuk didaftarkan, maka harus dimulai dengan: - ini jelas membedakan komponen Anda dari kelas Python biasa.
atribut daftar bar
Ini adalah deklarasi atribut, yang berarti bahwa: ui: foo memungkinkan bar atribut pada
nanti - seperti XHP, XHPy menggunakan sintaks atribut XML.
Kategori aliran%
Ini adalah kategori deklarasi -: ui: foo merupakan bagian dari kategori aliran%. Kategori terutama berguna sebagai cara untuk mengidentifikasi elemen-elemen yang mirip tanpa menggunakan warisan; misalnya, tag di pylib.html memiliki
anak-anak (PCDATA |% aliran) *
menunjukkan bahwa anak-anaknya harus baik berisi teks atau menjadi kategori aliran%. (Jadi kita bisa menempatkan
def render (self):
Ketika Anda mencetak: x: elemen (atau hubungi str di atasnya), render () metode dipanggil; ini adalah di mana Anda menempatkan logika UI.
a =
untuk b di self.getAttribute ('bar'):
& Nbsp; a.appendChild (
mengembalikan
Di sini,
- yang memungkinkan Anda untuk membangun sebuah daftar unordered dari daftar Python. Elemen HTML standar seperti
- secara otomatis diberikan - kecuali bahwa, di XHPy, Anda dapat menggunakan ekspresi Python dalam tag, sehingga
{B}
digantikan oleh nilai b. Perhatikan penggunaan getAttribute () dan appendChild ():
self.getAttribute ('bar')
menjemput nilai atribut bar (dalam hal ini, kisaran (3)), sedangkan
a.appendChild ( - {b} )
- {b} sebagai anak dari =
- dan
menambahkan
XHPy sebagian besar didasarkan dari XHP; untuk rincian lebih lanjut tentang yang terakhir, lihat `XHP wiki
& Nbsp; * nama kelas XHPy dapat digunakan kelas Python mana saja biasa bisa;
& Nbsp; * XHPy tag mengabaikan spasi internal, tetapi harus secara eksternal mematuhi lekukan dan garis kelanjutan aturan.
Lebih lanjut tentang titik terakhir:
def foo (href):
& Nbsp; kembali
def bar (href):
& Nbsp; kembali
& Nbsp;
berlaku, sedangkan
def foo (href):
& Nbsp; kembali
& Nbsp;
& Nbsp;
tidak, karena memperkenalkan dedent tambahan setelah
Cara kerjanya
Ketika kamu
impor xhpy.init
XHPy menginstal hook impor. Buku ini perangkap pernyataan impor berikutnya, menjalankan mereka melalui preprocessor yang mengurai superset dari Python. Preprocessor ini diterjemahkan XHPy tag dan nama kelas untuk berlaku Python, kemudian mengeksekusi kode diterjemahkan dalam lingkup modul.
Hal ini mirip dengan bagaimana XHP bekerja, kecuali:
& Nbsp; * dengan, misalnya, pythonenv, Anda dapat selalu menggunakan XHPy bahkan tanpa akses ke direktori instalasi paket Python seluruh sistem;
. & Nbsp; * secara default, Python mengkompilasi bytecode Pyc file dari modul Anda, sehingga preprocessing hanya perlu dilakukan sekali ketika sebuah modul pertama diimpor
Persyaratan :
- Python
Komentar tidak ditemukan