Bài 2: Giới Thiệu Flask Và Jinja2 | Blueluanar's Blog
Có thể bạn quan tâm
Như tiêu đề của khóa học – “Làm website bằng Python và Flask” cho nên không biết về Flask thì không xong. Như vậy, Flask là gì? Trước tiên, Flask là Open Source, nghĩa là bạn có thể thoải mái sử dụng, ứng dụng, hoặc thay đổi nó mà không phải lo lắng suy nghĩ gì về vấn đề bản quyền. Tiếp theo, Flask là một Micro Framework dành cho Python, dựa trên 2 utility libraries là Werkzeug, Jinja 2. Dựa trên 2 libraries chính này mà Flask đã xây dựng nên 1 micro framework với cấu trúc và cách viết cực kỳ đơn giản, dễ tiếp cận, dễ làm quen, dễ đọc, dễ hiểu,… Giới thiệu sơ thôi, giờ vào luôn vấn đề, các bạn thử đọc xem 1 đoạn code đơn giản nhưng kinh điển dưới đây.
Sample code:
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # Import Flask để sử dụng, Flask sẽ được gọi từ site-packages trong thư mục cài python của bạn from flask import Flask # Khởi tạo 1 ứng dụng Flask app = Flask(__name__) # Khai báo 1 đường dẫn (route) và nội dung trả về (html, json, xml,..) @app.route("/") def hello(): return "Hello World!" # Khởi chạy ứng dụng, bắt buộc phải có, nó sẽ chạy đầu tiên khi run application if __name__ == "__main__": app.run() |
Xong, giờ chỉ cần run cái app và truy cập đến cái route đã khai báo thì bạn đã có thể nói lời chào với thế giới bằng Flask. Rất ngắn gọn, đơn giản phải không.
2. Jinja2 là gì?Jinja2 là một templates engine. Nó giống như là Razor view trong ASP.NET MVC hay Twig, Smarty trong PHP. Là một extensions hỗ trợ cho việc show dữ liệu từ app ra html. Jinja2 là 1 extension được kèm theo Flask nên sau khi cài đặt Flask, bạn có thể sử dụng luôn Jinja2 mà không cần phải cài thêm.
Code sample:
?Flask:
| 1 2 3 4 5 6 | # Khai báo 1 đường dẫn @app.route("/") def hello(): # Function này sẽ render page sample.html và kèm theo là 2 dữ liệu foo, bar (2 dữ liệu này sẽ show ra html) return render_template("sample.html", foo=foo_string, bar=bar_array) |
?HTML: sample với Foo là string và Bar là array
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <div> <!-- Sử dụng cặp dấu '{{' và '}}' để truy cập 1 biến đơn --> Foo value: <p> {{ foo_string }} </p> <!-- Sử dụng cặp dấu '{%' và '%}' để viết 1 đoạn code python --> {% for bar in bar_array %} <p> {{ bar }} </p> {% endfor %} </div> |
Các thông số mặc định của Jinja2 khi cài đặt Flask
- Jinja2 được sử dụng trên các page có định dạng: .html , .htm , .xml và .xhtml.
- Flask đưa vào một số function global và helper trong Jinja2 để có thể sử dụng các mã Python trên các template.
Các biến global sau được mặc định có thể sử dụng trong Jinja2
- config Cấu hình hiện tại của app (flask.config)
- request Lấy request hiện tại (flask.request). Biến này sẽ vô hiệu nếu template (html) đã được render mà không có request.
- session Lấy session hiện tại (flask.session). Biến này sẽ vô hiệu nếu template (html) đã được render mà không có request.
- g Lấy các request global mặc định (flask.g). Biến này sẽ vô hiệu nếu template (html) đã được render mà không có request.
- url_for() Convert đường dẫn đến file (css, js, html,…) thành đường dẫn trên host.
- get_flashed_messages() Passing các giá trị được đặt trong hàm flash() ra html.
Ngoài ra còn có các khái niệm khác như: autoescape, template_filter, context_processor,… Mà chúng ta sẽ làm quen trong các bài học tiếp theo.
Bài 2.1: Giới thiệu Python Bài 3: Cài đặt môi trườngTừ khóa » Jinja Là Gì
-
Bạn Chọn Jinja Template Hay Django Template Cho Dự án Web ... - Viblo
-
Sử Dụng Jinja Template Kết Hợp Với Python Tự động Sinh File ... - Viblo
-
Jinja Là Gì? - Ngữ Pháp Tiếng Nhật
-
Sử Dụng Template Và Jinja Trong Python Django | How Kteam
-
Sử Dụng Template Và Jinja Trong Python Django - Arrow Trần
-
"jinja/ Chincha" Có Nghĩa Là Gì? - Câu Hỏi Về Tiếng Hàn Quốc | HiNative
-
Sử Dụng Jinja Template Kết Hợp Với Python Tự động ... - .vn
-
"jinja" Là Gì? Nghĩa Của Từ Jinja Trong Tiếng Việt. Từ điển Anh-Việt
-
Jinja Nghĩa Là Gì Trong Tiếng Việt? - English Sticky
-
Những Ngôi đền Jinja Linh Thiêng Mà Bạn Không Quên Ghé Thăm
-
Ngôi đền Tiếng Nhật Là Gì - .vn
-
Đền Yasukuni – Wikipedia Tiếng Việt
-
PYTHON DỰA TRÊN WERKZEUG VÀ JINJA Tiếng Anh Là Gì - Tr-ex
-
Aiki Jinja Nghĩa Là Gì?