Bạn có thể đính kèm Python vào HTML 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

Sẽ tuyệt biết bao nếu một nhà khoa học dữ liệu có thể phát triển một ứng dụng web chỉ bằng python và không cần biết javascript. Tại PyconUS 2022, Anaconda đã tiết lộ một khung mới có tên PyScript sử dụng mã python trong mã HTML để xây dựng ứng dụng. Bạn có thể sử dụng python trong mã HTML của mình. Bạn không cần biết…