Bình kết xuất html không có mẫu

Với một số kinh nghiệm trong việc phát triển các ứng dụng Python bằng Flask, tôi nhận ra rằng thị trường cần tạo điều kiện thuận lợi cho quy trình phát triển bằng các mẫu có các công cụ này. Về bản chất, Flask sử dụng Jinja2 để hiển thị các mẫu, tuy nhiên tôi không thích cách điều này xảy ra trong quá trình viết mã, nhưng tôi cảm thấy rất khó chịu với số lượng tệp html được tạo và số lượng dòng cần thiết để phát triển từng tệp trong quá trình phát triển của . Trong công việc của mình, tôi đã có cơ hội làm việc với PugJS trong một dự án sử dụng nó làm công cụ mẫu cho một dự án cũng sử dụng Gulp để tạo tệp, về cơ bản các tệp được tạo bằng. pug với các thành phần của trang web, được định cấu hình Gulp là người chịu trách nhiệm đọc tất cả các tệp này và tạo tệp html với tất cả những thứ này được biên dịch, cuối cùng, tất cả là tệp html được sử dụng để hiển thị màn hình

Sử dụng các tế bào thần kinh của mình, tôi nghĩ rằng đây sẽ là một cơ hội tuyệt vời để tung ra một sản phẩm mới cho Python, bởi vì tôi rất gắn bó với sự phát triển của ngôn ngữ này và tôi nghĩ rằng nó sẽ là một cơ sở bổ sung cho cộng đồng phát triển nguồn mở. Rồi Sucuri ra đời

cài đặt

Cài đặt và cập nhật bằng pip

pip cài đặt sucuri

Tạo mẫu Sucuri
  • Ví dụ về mã
html
body
h1 Title
a(href='#') This is my link

Như có thể thấy trong ví dụ mã ở trên, việc phát triển sucuri yêu cầu tiêu chuẩn hóa bảng biểu. Chúng tôi không xác định số lượng khoảng trắng, nhưng cần giữ nguyên số lượng khoảng trắng ở bên trái trong toàn bộ mã, vì số lượng này sẽ cho biết liệu một TAG nhất định của HTML có được chứa trong một TAG khác hay không. Với điều này, trong ví dụ trên, chúng ta sẽ có mã HTML sau



Title


This is my link

Sử dụng

Để sử dụng sucuri, bạn cần nhập gói sucuri vào tệp Python của mình, ví dụ dưới đây là một ứng dụng sử dụng sucuri để kết xuất trong Flask

from sucuri import rendering
from flask import Flask, render_template_string
app = Flask(__name__)@app.route("/")
def index():
template = rendering.template('template.suc')
return render_template_string(template)

Như có thể thấy trong ví dụ trên, mẫu trong ví dụ được tải từ một tệp có tên là mẫu. suc nằm trong thư mục gốc của dự án, tuy nhiên nó có thể nằm trong bất kỳ thư mục dự án nào, chẳng hạn như mẫu/mẫu. suc nếu bạn bao gồm một thư mục để nhóm các mẫu

Chữ

Trong sucuri, các văn bản được mô tả theo hai cách. Nó có thể được viết sau khi khai báo thẻ, chẳng hạn như

h1 Title

Kết quả

Title

Hoặc bạn có thể nhập nhiều hơn một dòng bằng cách sử dụng. trên các dòng không giống với thẻ, xem ví dụ

h3 Hello!
| Text
| with
| more than
| one line

Kết quả

Hello!
Text
with
more than
one line

Kết xuất dữ liệu

Chúng ta đã biết (đã thấy trong văn bản ở trên) rằng chúng ta chỉ có thể sử dụng hàm template(‘template_name’) với một thao tác đơn giản. suc, tuy nhiên, có thể chuyển thông tin qua JSON đến mẫu và sucuri sẽ tự động hiển thị dữ liệu ở vị trí thích hợp, xem ví dụ bên dưới

  • tập tin sucuri
html
body
h1 Hello {a}
| Title
| More
a(href='#') This is my link
h3 {b}
  • Ví dụ Python với dữ liệu
________số 8
  • Kết quả


Hello 1
Title
More


This is my link

Hello!



Mẫu tiêm

Tái sử dụng mã có thể được thực hiện thông qua các mẫu được chèn. Cơ sở này làm cho việc sử dụng lại mã rất hiệu quả và cho phép tạo các thành phần mã. Trong sucuri, việc xác định tiêm xảy ra thông qua một bao gồm ở đầu. suc và việc sử dụng nó được thực hiện bằng ký hiệu + trước tên của tệp được nhập. Xem ví dụ bên dưới sử dụng tính năng này

Tôi có thể sử dụng HTML trong Flask không?

Flask sử dụng công cụ mẫu Jinja để tạo động các trang HTML sử dụng các khái niệm Python quen thuộc như biến, vòng lặp, danh sách, v.v.

Render_template() là gì?

render_template là một hàm Flask từ bình. gói tạo mẫu . render_template được sử dụng để tạo đầu ra từ tệp mẫu dựa trên công cụ Jinja2 được tìm thấy trong thư mục mẫu của ứng dụng. Lưu ý rằng render_template thường được nhập trực tiếp từ gói bình thay vì từ bình.

Render_template trong Flask hoạt động như thế nào?

Mẫu được hiển thị với dữ liệu cụ thể để tạo tài liệu cuối cùng . Flask sử dụng thư viện mẫu Jinja để hiển thị các mẫu. Trong ứng dụng của bạn, bạn sẽ sử dụng các mẫu để hiển thị HTML sẽ hiển thị trong trình duyệt của người dùng. Trong Flask, Jinja được cấu hình để tự động thoát bất kỳ dữ liệu nào được hiển thị trong các mẫu HTML.

Bạn có thể sử dụng HTML và CSS với Flask không?

Flask cho phép chúng tôi tích hợp các tệp HTML và CSS làm mẫu cho trang web của bạn .