Các chi tiết về phần mềm:
Phiên bản: 0.83
Ngày tải lên: 20 Feb 15
Giấy phép: Miễn phí
Phổ biến: 0
XHPy mở rộng Python cú pháp để mảnh XML trở thành biểu Python hợp lệ.
Ưu điểm
& Nbsp; * Đơn giản: viết UI logic trong một đơn giản, cú pháp biểu cảm mà không cần mẫu bên ngoài hoặc các ngôn ngữ khuôn mẫu.
& Nbsp; * Tính linh hoạt: biểu thức sử dụng Python tự do trong thẻ XHPy, và ngược lại.
& Nbsp; * An ninh: lợi ích từ tự động thoát của văn bản trong thẻ XHPy.
& Nbsp; * Có thể dùng lại: xây dựng các thành phần tái sử dụng bởi lớp con: x: yếu tố.
Một ví dụ
Trong bar.py:
từ xhpy.init nhập register_xhpy_module
register_xhpy_module ('foo')
nhập khẩu foo
Trong foo.py:
từ xhpy.pylib nhập khẩu *
class: ui: foo (: x: element):
& Nbsp; thuộc tính danh sách thanh
& Nbsp; loại% lưu lượng
& Nbsp; def render (tự):
& Nbsp; a =
& Nbsp; cho b trong self.getAttribute ('bar'):
& Nbsp; a.appendChild (
& Nbsp; trả lại một
in
Bây giờ chúng ta có thể chạy bar.py như một kịch bản Python bình thường:
$ Python bar.py
- 0
- 1
- 2
Xin chúc mừng! Bạn chỉ cần viết đoạn đầu tiên của bạn XHPy.
Cú pháp
XHPy cho biết thêm một số cú pháp mới để Python. Line bằng thời gian phát lại dòng!
từ xhpy.init nhập register_xhpy_module
Đây khởi XHPy và cho phép bạn đăng ký mô-đun để được giải thích như XHPy.
register_xhpy_module ('foo')
Bây giờ các mô-đun foo trong foo.py sẽ được hiểu là XHPy khi nhập khẩu. Nếu foo là một gói phần mềm, tất cả các môđun con của nó cũng sẽ được đăng ký; này là hữu ích cho việc đăng ký các thư viện giao diện người dùng.
nhập khẩu foo
Để thực sự sử dụng XHPy, tuy nhiên, có thể bạn sẽ muốn các thư viện lõi:
từ xhpy.pylib nhập khẩu *
Bây giờ bạn có thể truy cập vào tất cả các tiêu chuẩn HTML 4.0 yếu tố này,: x: lớp cơ sở yếu tố (đây là những gì bạn xây dựng các thành phần tùy chỉnh trên đầu!), Và một số tiện ích.
class: ui: foo (: x: element):
Làm thành phần mới là dễ dàng: chỉ lớp con: x: yếu tố. Đối với lớp thành phần của bạn được đăng ký, nó phải bắt đầu với: - điều này đã phân biệt rõ thành phần của bạn từ các lớp học Python thường.
thuộc tính danh sách thanh
Đây là một tuyên bố thuộc tính, có nghĩa là: ui: foo cho phép thanh thuộc tính trên
sau này - như XHP, XHPy sử dụng cú pháp thuộc tính XML.
category% lưu lượng
Đây là một tuyên bố loại -: ui: foo là một phần của các loại dòng chảy%. Loại này là chủ yếu hữu ích như là một cách để xác định các yếu tố tương tự mà không cần sử dụng thừa kế; Ví dụ, các thẻ trong pylib.html có
trẻ em (PCDATA |% dòng chảy) *
chỉ ra rằng trẻ em của nó, hoặc phải có văn bản hoặc là các loại lưu lượng%. (Vì vậy, chúng ta có thể đặt
def render (tự):
Khi bạn in: x: element (hoặc gọi str vào nó), render () được gọi; đây là nơi mà bạn đặt logic UI của bạn.
a =
cho b trong self.getAttribute ('bar'):
& Nbsp; a.appendChild (
trả lại một
Ở đây,
- cho phép bạn xây dựng một danh sách có thứ tự ra khỏi một danh sách Python. Các yếu tố HTML tiêu chuẩn như
- sẽ tự động render - ngoại trừ, trong XHPy, bạn có thể sử dụng các biểu Python trong thẻ, để
{B}
được thay thế bởi giá trị của b. Lưu ý việc sử dụng getAttribute () và appendChild ():
self.getAttribute ('bar')
lấy về giá trị của thanh thuộc tính (trong trường hợp này, phạm vi (3)), trong khi
a.appendChild ( - {b} )
- {b} là con của a =
- và
thêm
XHPy phần lớn là dựa tắt XHP; để biết thêm chi tiết về sau này, xem các `XHP wiki
& Nbsp; * tên lớp XHPy có thể được sử dụng các lớp học Python bất cứ nơi nào có thể bình thường;
& Nbsp; * tags XHPy bỏ qua khoảng trắng bên trong, nhưng bên ngoài phải tuân thụt đầu dòng và tiếp tục dòng quy tắc.
Thêm chi tiết về điểm cuối cùng:
def foo (href):
& Nbsp; trở lại
thanh def (href):
& Nbsp; return
& Nbsp;
có giá trị, trong khi
def foo (href):
& Nbsp; return
& Nbsp;
& Nbsp;
không phải là, như nó giới thiệu một dedent thêm sau
Làm thế nào nó hoạt động
Khi bạn
xhpy.init nhập khẩu
XHPy cài đặt một móc nhập khẩu. Hook này bẫy báo cáo nhập khẩu tiếp theo, chạy chúng thông qua một tiền xử lý mà phân tích một superset của Python. Tiền xử lý này dịch thẻ XHPy và tên lớp để hợp lệ Python, sau đó thực thi mã dịch trong phạm vi module.
Điều này cũng tương tự như cách XHP hoạt động, ngoại trừ:
& Nbsp; * với, ví dụ như, pythonenv, bạn luôn có thể sử dụng ngay cả khi không XHPy truy cập vào thư mục cài đặt gói Python toàn hệ thống;
. & Nbsp; * theo mặc định, Python biên dịch bytecode pyc tập tin từ các module của bạn, do đó, các bộ tiền xử lý chỉ cần được thực hiện một lần khi một module là lần đầu tiên nhập khẩu
Yêu cầu :
- Python
Bình luận không