Cách chuyển dữ liệu từ bình sang html?

Rất phổ biến, chúng tôi muốn gửi dữ liệu từ máy chủ của mình trở lại máy khách. Trước đây, các máy chủ thường chỉ chứa một tập hợp các tệp; . Bởi vì các tệp này là tĩnh và không thay đổi bởi máy chủ, các trang web như vậy thường được gọi là trang web tĩnh

Trong quá trình phát triển web hiện đại hơn, thay vì gửi dữ liệu tĩnh mọi lúc, chúng tôi thường muốn gửi dữ liệu động, dữ liệu này có thể phụ thuộc vào việc người dùng nào đã đăng nhập, tài khoản của người dùng đã hết hạn hay chưa, v.v. Để làm điều này, chúng tôi sẽ sử dụng công cụ tạo khuôn mẫu được tích hợp trong Flask, được gọi là Jinja2

Jinja2

Vì Jinja2 đi kèm với Flask nên chúng tôi không cần phải



    
    Document


   {% block content %}
   {% endblock %}


9 bất cứ điều gì và chúng tôi có thể bắt đầu ngay lập tức. Để đánh giá dữ liệu từ máy chủ của chúng tôi trong các mẫu của chúng tôi, chúng tôi sử dụng ký hiệu


    
    Document


   {% block content %}
   {% endblock %}


0 và để in dữ liệu, chúng tôi sử dụng


    
    Document


   {% block content %}
   {% endblock %}


1. (Không rõ về sự khác biệt giữa đánh giá và in dữ liệu trong một mẫu? Đừng lo lắng, chúng ta sẽ sớm thấy một ví dụ rõ ràng. )

Hãy bắt đầu bằng việc Flask render HTML đầu tiên. Để làm như vậy, chúng tôi phải bao gồm



    
    Document


   {% block content %}
   {% endblock %}


2 khi nhập từ


    
    Document


   {% block content %}
   {% endblock %}


0. Hãy tạo một


    
    Document


   {% block content %}
   {% endblock %}


1 và bao gồm những điều sau đây

Vì vậy, những gì đang xảy ra ở trên? . Các biến này được gọi là



    
    Document


   {% block content %}
   {% endblock %}


3 và


    
    Document


   {% block content %}
   {% endblock %}


4 và giá trị của chúng là biến


    
    Document


   {% block content %}
   {% endblock %}


5 (


    
    Document


   {% block content %}
   {% endblock %}


6) và biến


    
    Document


   {% block content %}
   {% endblock %}


7 (_______08). Thông thường, các khóa và giá trị này sẽ được đặt tên giống nhau, nhưng chúng tôi đang sử dụng các tên khác nhau để thể hiện sự khác biệt trong ví dụ này

Bây giờ để đảm bảo rằng Flask có thể tìm thấy các mẫu của chúng ta, chúng ta cần tạo một thư mục có tên là



    
    Document


   {% block content %}
   {% endblock %}


9 và bên trong hãy tạo tệp


    
    Document


   {% block content %}
   {% endblock %}


2 của chúng ta

Logic trong các mẫu

Bây giờ, hãy thêm phần sau vào tệp



    
    Document


   {% block content %}
   {% endblock %}


2 của chúng tôi



    
    Document


   {% block content %}
   {% endblock %}


2

Chúng ta có thể lặp lại các danh sách bằng cách sử dụng



    
    Document


   {% block content %}
   {% endblock %}


32 với Jinja và sử dụng logic có điều kiện với các câu lệnh


    
    Document


   {% block content %}
   {% endblock %}


33. Điều này có nghĩa là chúng tôi có thể hiển thị cùng một trang HTML và tạo các chế độ xem khác nhau cho những người dùng khác nhau. Các trang của chúng tôi hiện năng động hơn nhiều. Hãy suy nghĩ về một số ứng dụng cho một cái gì đó như thế này. tạo khuôn mẫu cho phép bạn liệt kê tất cả bạn bè của mình trên mạng xã hội, chỉ hiển thị thông tin nếu bạn là quản trị viên, hiển thị nút đăng xuất nếu bạn đã đăng nhập và hơn thế nữa, tất cả chỉ với một số lượng nhỏ các mẫu tồn tại trên máy chủ

Cũng lưu ý rằng chỉ mã Python bên trong



    
    Document


   {% block content %}
   {% endblock %}


1 được in ra trang. Bạn sẽ thường thấy các vòng lặp


    
    Document


   {% block content %}
   {% endblock %}


32 và câu lệnh


    
    Document


   {% block content %}
   {% endblock %}


33 được xác định bên trong


    
    Document


   {% block content %}
   {% endblock %}


0, vì chúng ta muốn đánh giá mã đó, nhưng chỉ khi chúng ta ở bên trong các khối


    
    Document


   {% block content %}
   {% endblock %}


33 hoặc


    
    Document


   {% block content %}
   {% endblock %}


32 thì chúng ta mới muốn hiển thị nội dung nào đó trên trang (sử dụng


    
    Document


   {% block content %}
   {% endblock %}


1)

Kế thừa mẫu

Một trong những tính năng mạnh mẽ hơn của Jinja là khả năng sử dụng kế thừa mẫu, có nghĩa là một mẫu có thể kế thừa từ mẫu khác. Hãy xem một ví dụ. Trước tiên, hãy tạo một tệp có tên



    
    Document


   {% block content %}
   {% endblock %}


91



    
    Document


   {% block content %}
   {% endblock %}


Trong một mẫu khác (trong cùng thư mục), hãy tạo một tệp có tên



    
    Document


   {% block content %}
   {% endblock %}


92



    
    Document


   {% block content %}
   {% endblock %}


3

Chúng tôi có thể kế thừa từ các mẫu khác bằng cách sử dụng từ khóa



    
    Document


   {% block content %}
   {% endblock %}


93. Điều này làm giảm đáng kể sự trùng lặp mã của chúng tôi, đặc biệt đối với những thứ như đầu trang và chân trang. Để xem hoạt động kế thừa này, hãy thêm một tuyến đường khác vào


    
    Document


   {% block content %}
   {% endblock %}


1 của bạn



    
    Document


   {% block content %}
   {% endblock %}


9

Trình trợ giúp URL

Một trình trợ giúp tuyệt vời khác mà Jinja có là trình trợ giúp



    
    Document


   {% block content %}
   {% endblock %}


95 giúp loại bỏ nhu cầu mã hóa cứng một URL. Điều này rất hữu ích khi bạn có URL được tạo động hoặc không phải lúc nào cũng biết đường dẫn chính xác. Hãy tưởng tượng chúng ta đang làm việc trong tệp


    
    Document


   {% block content %}
   {% endblock %}


2 của mình và chúng ta muốn có một thẻ neo để liên kết đến tuyến đường


    
    Document


   {% block content %}
   {% endblock %}


97. Chúng tôi cũng biết rằng trong


    
    Document


   {% block content %}
   {% endblock %}


1 của chúng tôi, chức năng được sử dụng để gửi phản hồi đến máy chủ của chúng tôi được gọi là


    
    Document


   {% block content %}
   {% endblock %}


99. Đây là những gì chúng ta có thể đặt làm giá trị cho


    
    Document


   {% block content %}
   {% endblock %}


10 của mình



    
    Document


   {% block content %}
   {% endblock %}


1

Lấy dữ liệu từ chuỗi truy vấn

Khi người dùng gửi biểu mẫu qua yêu cầu GET, dữ liệu biểu mẫu đó có thể được lấy từ chuỗi truy vấn. Flask làm cho quá trình này dễ dàng hơn một chút với phương thức có tên là



    
    Document


   {% block content %}
   {% endblock %}


11. Hãy xem nó hoạt động. Để bắt đầu, hãy bắt đầu với một biểu mẫu đơn giản trong trang có tên là


    
    Document


   {% block content %}
   {% endblock %}


12



    
    Document


   {% block content %}
   {% endblock %}


5

Để nắm bắt dữ liệu này, chúng tôi có thể sử dụng



    
    Document


   {% block content %}
   {% endblock %}


11 mà chúng tôi cần nhập từ


    
    Document


   {% block content %}
   {% endblock %}


0 và truy cập thuộc tính


    
    Document


   {% block content %}
   {% endblock %}


15 bên trong yêu cầu