Flask kết xuất HTML

Bây giờ đẹp như trang web của chúng tôi, có lẽ chúng tôi muốn hiển thị các tệp HTML phù hợp. Để làm điều này, chúng ta cần làm theo một số bước

Bước 1. Nhập hàm render_template từ bình

from flask import Flask, render_template

Bước 2. Tạo một thư mục mới có tên là các mẫu bên trong thư mục CÙNG làm tập lệnh python của chúng tôi

Flask kết xuất HTML

Bước 3. Tạo một tệp html, tôi đã đặt tên là chỉ mục của tôi. html. Đảm bảo đặt nó trong thư mục mẫu



    
        </span>Home page<span>
    
    
        

Home Page!

Bước 4. Kết xuất mẫu từ một hàm trong python

@app.route("/")
def home():
    return render_template("index.html")

Hàm render_template sẽ tìm trong thư mục "mẫu" cho tệp có tên "chỉ mục. html" và hiển thị nó ra màn hình. Bây giờ hãy thử chạy tập lệnh và truy cập "/". Bạn sẽ thấy html đó được hiển thị

HTML động

Flask sử dụng một công cụ tạo khuôn mẫu gọi là jinja. Điều này cho phép bạn viết mã python bên trong các tệp html của mình. Nó cũng cho phép bạn chuyển thông tin từ back-end (tập lệnh python) sang các tệp HTML của bạn

Trong tệp HTML của bạn, bạn có thể sử dụng cú pháp sau để đánh giá các câu lệnh python
{{Biến/Câu lệnh}} Đặt một biến hoặc câu lệnh bên trong {{}} sẽ yêu cầu bình đánh giá câu lệnh bên trong dấu ngoặc và hiển thị văn bản tương đương với câu lệnh đó

Hãy xem một ví dụ




    </span>Home page<span>
    
    
	

{{content}}

Ở đây chúng tôi đang xác định rằng chúng tôi sẽ có một biến được chuyển đến tệp HTML này có tên là nội dung. Vì vậy, từ back-end của chúng tôi, khi chúng tôi kết xuất mẫu, chúng tôi cần chuyển cho nó một giá trị cho nội dung

@app.route("/")
def home():
    return render_template("index.html", content="Testing")

Khi chúng tôi chạy tập lệnh và điều hướng đến trang chủ, chúng tôi nhận được thông tin sau

Flask kết xuất HTML

Mẫu tiếp tục

Có một số thứ khác mà bạn có thể viết trong HTML của mình liên quan đến mã python. Phổ biến nhất là sử dụng vòng lặp for và câu lệnh if

Khi chúng ta sử dụng Flask framework để phát triển một trang web, chúng ta có thể sử dụng hàm render_template() để hiển thị trang web html

render_template() cho phép chúng tôi gọi tệp html đã được viết thông qua Flask. Các tệp html này phải được đặt trong thư mục mẫu được chuẩn bị trước. Dưới đây chúng tôi sẽ thực hiện một ví dụ đơn giản


thư mục mẫu

Nếu bạn muốn tạo một chương trình đơn giản sử dụng render_template() để gọi tệp html, thì đường dẫn tương đối giữa tệp python và tệp html của bạn phải như bên dưới

Flask kết xuất HTML
Flask kết xuất HTML
  • bình render_template. py. Nó là một tệp xử lý các chức năng phụ trợ
  • thư mục mẫu. Nó chứa tệp html idnex.html mà bạn muốn hiển thị

Khi dùng hàm render_template() nó sẽ tự động tìm file html trong thư mục templates


mục lục. html

<body style="background-color: black">
     <p style="color: white">Hello {{ Name }}!p>
body>

SAO CHÉP



đầu ra

Flask kết xuất HTML
Flask kết xuất HTML

Khi tôi viết HTML ở đây, tôi đã sử dụng dấu ngoặc nhọn {{ }} để gán giá trị cho các biến. Đây là cú pháp của Jinja2. Ngữ pháp của Jinja2 nhất quán với ngữ pháp mẫu cốt lõi của Flask, xét cho cùng, các nhà phát triển là cùng một người

Vì vậy, chúng ta có thể thấy ở đây rằng chỉ cần mở trực tiếp tệp HTML sẽ chỉ thấy "{{Tên}}" xấu xí. Rốt cuộc, HTML không hiểu đây là gì;

Điều đáng chú ý là trang web hiện đang hiển thị hoàn hảo theo phong cách tôi đã đặt. nền màu đen và văn bản màu trắng


bình render_template. py

# -*- coding: utf-8 -*-
from flask import Flask, render_template


app = Flask(__name__)


@app.route('/')
def main():
     return render_template('index.html')


if __name__ == '__main__':
     app.run(host='127.0.0.1', port=8000)

SAO CHÉP



đầu ra

Flask kết xuất HTML
Flask kết xuất HTML


Điều đầu tiên cần nhớ. Nhập hàm render_template()

from flask import Flask, render_template

SAO CHÉP



Sau đó, bạn có thể thấy rằng {{ Tên }} chúng tôi đặt đã biến mất. Điều này là do chúng tôi hiện chưa cung cấp cho chúng tôi bất kỳ tham số nào cho mẫu được hiển thị. Nhưng cho đến nay, kết xuất HTML đã rất thành công và bạn có thể thấy rằng nền màu đen và chuỗi màu trắng

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

Khung bình đã được viết theo cách để nó tìm các tệp mẫu HTML trong một thư mục có tên là mẫu . Vì vậy, bạn nên tạo một thư mục trống như vậy và sau đó đặt tất cả các mẫu HTML vào đó.

Làm cách nào để hiển thị tệp HTML bằng Python?

Để hiển thị tệp HTML dưới dạng đầu ra python, chúng tôi sẽ sử dụng thư viện codec . Thư viện này được sử dụng để mở các tệp có mã hóa nhất định. Nó nhận một mã hóa tham số làm cho nó khác với hàm open() tích hợp.

Flask có hỗ trợ HTML động không?

Trong Flask, bạn có thể sử dụng ngôn ngữ tạo khuôn mẫu Jinja để hiển thị các mẫu HTML . Mẫu là một tệp có thể chứa cả nội dung cố định và động.

{{ }} trong Flask là gì?

biến mẫu bình . Chúng là phần giữ chỗ cho các biến được hiển thị . Trong mẫu này có hai biến có thể được chuyển, tiêu đề và tên người dùng.