Bạn có thể viết mã HTML bằng Python không?

Bằng cách tận dụng cả hai Mô-đun. digiweb và phiên bản PythonInsideHTML được sửa đổi một chút. zip từ máy chủ web Karrigell Python của dự án được cấp phép BSD để biến nó thành một thư viện độc lập. Có thể chạy nhúng Python trong tài liệu HTML có thể được thực thi trong thời gian chạy

Bên trong HTML

cú pháp

By enclosing Python statements within a <% %> tag the Python interpreter will execute said statements. In the following example a "stored_time" variable will be created and will save the time on the local scope.

<% import time %>
<% stored_time = time.strftime("%d:%m:%y",time.localtime(time.time())) %>

If enclosed with <%= %> it will evaluate the statement and replace the tag with the result of the executed statement. In the following example the HTML created will contain the day:month:year from the devices internal clock.

<% import time %>
<%= time.strftime("%d:%m:%y",time.localtime(time.time())) %>

thụt đầu dòng

Khai báo thụt đầu dòng

Một tệp được chuyển đổi thành mã Python, mã này phải được thụt lề theo quy tắc Python;

Vì vậy, hãy cẩn thận nếu bạn kết hợp Python và HTML

    1 <% for i in range(10): %>
    2 <%= i %>*<%= i %> :  <%= i*i %> 

Điều này sẽ hoạt động vì sau một vòng lặp hoặc một điều kiện, HTML sau sẽ được PIH tự động thụt vào

To decrement indentation, use <% end %> :

    1 <% for i in range(10): %>
    2 <%= i %>*<%= i %> :  <%= i*i %> 
    3 <% end %>
    4 

done

trong ví dụ này, "xong" sẽ được viết sau khi vòng lặp for kết thúc

Một ví dụ khác cho một nếu. khác.

    1 <% if i: %>
    2   output someting
    3 <% end %>
    4 <% else: %>
    5   output someting else
    6 <% end %>
    7 

done

(Don't forget the last <% end %> otherwise "done" would have the same indentation as line 5) But this :

    1 <% for i in range(10):
    2    data= '%s * %s' %(i,i) %>
    3     <%= i*i %> 
    4 

done

Sẽ không hoạt động, bởi vì sau câu lệnh in trên dòng 2, thụt đầu dòng trở về 0 (nó bắt đầu bằng HTML thuần túy)

Tag

Nếu bạn có mã phức tạp trong đó Python và HTML được trộn lẫn, hãy nhúng mã đó vào giữa các thẻ và

    1  
    2  <% for i in range(10):
    3    data= '%s * %s' %(i,i) %>
    4     <%= i*i %> 
    5  
    6  

Table

7 8 9 10 11 A cell

có nghĩa. từ giờ trở đi và cho đến khi thẻ khớp, hãy sử dụng thụt lề trong nguồn PIH và để nguyên như vậy để tạo mã Python Trong ví dụ trên, thụt lề được sử dụng cho đến dòng 5 và bỏ qua sau đó. Nếu bản thân thẻ được thụt vào, đoạn mã sau sẽ được thụt vào

    1   
    2     
    3       
    4       
    5     
    6     
    7     <% for i in range(10): %>
    8       
    9       
    10      
    11      
    12    
    13  NumberSquare<%= i %><%= i**2 %>

Trong dòng 7, <% được căn chỉnh nên mã Python sẽ không được thụt vào

Kịch bản kết thúc

Nếu bạn muốn thoát tập lệnh trước khi kết thúc tài liệu, hãy nhấn

________số 8

Ghi vào đầu ra HTML

Nếu bạn muốn ghi vào đầu ra HTML mà không sử dụng các thẻ đánh giá, bạn có thể viết trực tiếp vào đầu ra mã Python thông qua

py_code.write( " Heading " )

Ví dụ làm việc từ Python

Trong ví dụ này, chúng tôi sẽ tạo một trình xử lý chung cho một loại tệp cho máy chủ web bằng cách sử dụng Mô-đun. kỹ thuật số

<% import time %>
<%= time.strftime("%d:%m:%y",time.localtime(time.time())) %>
0

Bây giờ bạn chỉ có thể tải lên một tệp kết thúc bằng a thông qua phần quản lý tệp Python của webui, sau đó chỉ cần điều hướng đến http. //device_address/filename

Ví dụ: tải lên phần sau (mẫu. pih) sẽ hiển thị thông tin về yêu cầu HTTP được chuyển đến http_handler. Mã Python được tạo bởi tập lệnh này được chạy trên cùng phạm vi với hàm http_handler để có quyền truy cập vào các đối số (loại, đường dẫn, tiêu đề, đối số)

<% import time %>
<%= time.strftime("%d:%m:%y",time.localtime(time.time())) %>
1

Điều hướng trình duyệt của bạn đến "http. //device_address/template. pih" sẽ cung cấp cho bạn một trang hiển thị thông tin về yêu cầu HTTP

Nếu bạn là một nhà phát triển python và nghĩ rằng thật tuyệt nếu tôi có thể viết mã python của mình trực tiếp vào HTML như tất cả các nhà phát triển Javascript vẫn làm. Vâng, có một tin tốt cho tất cả các nhà phát triển Python. Đây là hướng dẫn từng bước về cách chạy python trong HTML bằng PyScript

Trong bài phát biểu quan trọng tại PyCon US 2022, Peter Wang, Giám đốc điều hành của công ty Anaconda, đã tiết lộ một dự án mới có tên PyScript. Khung javascript là gì. Nó cho phép chúng tôi tạo các ứng dụng Python trong trình duyệt web. Nó sẽ cho phép chúng tôi nhúng mã Python trực tiếp vào các tệp HTML. Giống như chúng tôi sử dụng mã Javascript trong các tệp HTML của mình

nội dung

Những điều quan trọng về Pyscript

  1. Nó cho phép chúng tôi viết mã python vào tệp HTML của chúng tôi. Vì vậy, chúng tôi có thể sử dụng các thư viện của Python trong trình duyệt của mình.  
  2. Khi chúng tôi sử dụng Pyscript, chúng tôi không cần phải lo lắng về việc triển khai. Mọi thứ diễn ra trong một trình duyệt web. Chúng tôi có thể chia sẻ các tệp HTML của mình với bất kỳ ai có chứa bảng điều khiển ưa thích hoặc bất kỳ dữ liệu ký tự nào. Họ có thể trực tiếp chạy nó trong trình duyệt web mà không cần bất kỳ thiết lập phức tạp nào.   
  3. Chạy nhiều thư viện phổ biến của Python như gấu trúc, numpy, v.v.
  4. Pyscript cho phép chúng ta viết mã python với sự trợ giúp của 3 thành phần chính
    1. Py-env. Nó xác định danh sách gói python cần chạy mã của bạn
    2. tập lệnh Py. Trong thẻ này, người dùng sẽ viết mã python của họ
    3. thay thế py. Nó sẽ tạo một thành phần REPL. Thành phần REPL thực thi mã người dùng nhập và hiển thị kết quả của mã trong trình duyệt

1. Hãy tạo chương trình đầu tiên của chúng ta với Pyscript

You can download the alpha release of PyScript on pyscript.net. We’ll use the CDN of one stylesheet and one script in our HTML file. Add below CDNs to your HTML .

<% import time %>
<%= time.strftime("%d:%m:%y",time.localtime(time.time())) %>
2

Chương trình Hello world của chúng ta sẽ trông như thế này

<% import time %>
<%= time.strftime("%d:%m:%y",time.localtime(time.time())) %>
3

Khi bạn chạy tệp HTML này vào trình duyệt của mình, nó sẽ in Hello World. Một cái gì đó như thế này

Bạn có thể viết mã HTML bằng Python không?

2. In Ngày Giờ Hiện Tại

<% import time %>
<%= time.strftime("%d:%m:%y",time.localtime(time.time())) %>
4

Trong ví dụ trên, chúng tôi đang sử dụng thư viện DateTime của python cho DateTime hiện tại

3. Biểu đồ Bokeh với Pyscript

Hãy lập biểu đồ thể hiện số lượng hoa quả bán được trong tháng

<% import time %>
<%= time.strftime("%d:%m:%y",time.localtime(time.time())) %>
5

Khi bạn chạy mã này, bạn sẽ thấy một biểu đồ như;

Bạn có thể viết mã HTML bằng Python không?

Như bạn thấy chúng ta có thể dễ dàng tạo biểu đồ trong tệp HTML của mình như thế nào. Không cần tạo các thành phần phức tạp để hiển thị biểu đồ như thế này. Đó là cách đơn giản để bạn có thể sử dụng Pyscript để chạy python trong HTML.  

Phần kết luận

Dự án này vẫn đang trong giai đoạn alpha, vì vậy có lẽ chúng ta sẽ thấy nhiều điều mới hơn trong những ngày tới. Pyscript có vẻ rất hứa hẹn cho các nhà phát triển python, nhưng có thể có nhiều vấn đề về bảo mật. Ngoài ra, chúng tôi đang chạy các thư viện Python vào trình duyệt, vì vậy thời gian thực hiện cũng cao.  

Tất cả những lo ngại này có thể được giải quyết trong các phiên bản sắp tới. Bình luận suy nghĩ của bạn về công nghệ mới này