btvn.vn
Tìm kiếm Đăng nhập

Tạo tệp bảng HTML từ dữ liệu Python

Lưu trên thiết bị này
Danh sách và bảng HTML · Chọn bài khác

Mỗi bản ghi tạo một hàng dữ liệu

Đây là phần vận dụng kết hợp Python đã học với HTML. Dữ liệu giả định gồm các hàng bốn giá trị: tên nhóm và điểm của ba lần. Hai hàng tiêu đề dùng một ô Nhóm có rowspan2 và một ô Điểm có colspan3. Với mỗi bản ghi, tạo một tr; với mỗi giá trị trong bản ghi, tạo một td. Sau khi duyệt hết dữ liệu mới đóng table. Chương trình sinh văn bản nguồn, rồi trình duyệt đọc tệp đó để hiển thị; Python không tự thay vai trò trình duyệt.

Chương trình mẫu hoàn chỉnh

```python from html import escape data = [ ["Nhóm <A>", 8, 9, 7], ["Nhóm B & C", 7.5, 8, 9], ] content = """<!DOCTYPE html> <html lang="vi"> <head><meta charset="utf-8"><title>Điểm minh họa</title></head> <body><table style="border:1px solid blue"> <caption>Điểm minh họa, dữ liệu giả định</caption> <tr> <th style="border:1px solid blue" rowspan="2">Nhóm</th> <th style="border:1px solid blue" colspan="3">Điểm</th> </tr> <tr> <th style="border:1px solid blue">Lần 1</th> <th style="border:1px solid blue">Lần 2</th> <th style="border:1px solid blue">Lần 3</th> </tr> """ for row in data: if len(row) != 4: raise ValueError("Mỗi hàng phải có bốn giá trị") content += "<tr>" for value in row: text = escape(str(value)) content += '<td style="border:1px solid blue">' content += text + "</td>" content += "</tr>\n" content += "</table></body></html>" with open("diem_minh_hoa.html", "w", encoding="utf-8") as output: output.write(content) ``` `str(value)` đổi số hoặc chuỗi thành văn bản để ghép. `escape` đổi các kí tự như `<`, `>` và `&` thành cách ghi an toàn trong HTML; nhờ đó tên “Nhóm <A>” hiện đúng như chữ, không bị hiểu thành một thẻ A. Điều kiện độ dài yêu cầu mỗi hàng đúng bốn giá trị. Nếu hàng thiếu hoặc thừa giá trị, chương trình báo lỗi trước khi mở tệp để ghi. Không tự thêm ô thiếu hoặc bỏ dữ liệu thừa.

Chạy và đối chiếu sản phẩm

1. Lưu mã Python từ tệp kèm theo vào một thư mục thực hành riêng. Chạy bằng Python3; chỉ dùng dữ liệu giả định trong mẫu. 2. Chương trình tạo `diem_minh_hoa.html` trong thư mục làm việc hiện tại. Mã dùng chế độ w nên có thể ghi đè tệp cùng tên; kiểm thư mục trước khi chạy. 3. Mở tệp bằng trình duyệt. Mẫu có hai hàng dữ liệu, mỗi hàng bốn ô; tên có `<A>` và `&` phải hiện nguyên nghĩa. Có hai hàng tiêu đề, nên toàn bảng có bốn tr. 4. Thêm một bản ghi đủ bốn giá trị, chạy lại rồi tải lại tệp HTML. Số hàng dữ liệu tăng một; không sửa phần hai hàng tiêu đề để thêm bản ghi. Danh sách dữ liệu rỗng vẫn tạo phần tên bảng và hai hàng tiêu đề, nhưng không có hàng điểm. Đó là trường hợp biên cần phân biệt với một bản ghi thiếu giá trị.

Bài luyện

Với hai bản ghi trong chương trình mẫu, bảng sinh ra có tổng cộng bao nhiêu tr?
Chọn một đáp án

Bài luyện

Vì sao chương trình dùng escape cho tên “Nhóm <A>”?
Chọn một đáp án

Bài luyện

Nếu một hàng chỉ có ba giá trị, chương trình mẫu làm gì?
Chọn một đáp án

Đang học