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
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
Home page
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ụ
Home page
{{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
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
- 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
Hello {{ Name }}!SAO CHÉP
đầu ra
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
Điều đầu tiên cần nhớ. Nhập hàm render_template[]
from flask import Flask, render_templateSAO 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