Flask trong Python là gì? Lý do nên dùng Flask

Flask là một web framework, nó là một Python module cho phép bạn phát triển các ứng dụng web một cách dễ dàng. Nó có tính mở rộng và là một microframework không bao gồm ORM (Object Relational Manager) hoặc các tính năng tương tự.

Flask có nhiều tính năng thú vị như định tuyến url, hay template engine. Nó là một framework ứng dụng web WGSI.

Web framework là gì?

Các framework ứng dụng web hoặc đơn giản là web framework đại diện cho một tập hợp các thư viện và module cho phép các nhà phát triển ứng dụng web viết ứng dụng mà không cần lo lắng về các chi tiết cấp thấp như giao thức (protocol), quản lý luồng (thread management), v.v.

Flask là gì

Flask là một framework ứng dụng web được viết bằng Python. Nó được phát triển bởi Armin Ronacher, người dẫn đầu một nhóm những người đam mê Python quốc tế có tên là Poocco. Flask dựa trên bộ công cụ Werkzeg WSGI và template engine Jinja2. Cả hai đều là các dự án của Pocco.

WSGI

Giao diện cổng máy chủ web (Web Server Gateway Interface, WSGI) đã được sử dụng như một tiêu chuẩn để phát triển ứng dụng web Python. WSGI là đặc điểm kỹ thuật của giao diện chung giữa máy chủ web và ứng dụng web.

Werkzeug

Werkzeug là một bộ công cụ WSGI thực hiện các yêu cầu, đối tượng phản hồi và các chức năng tiện ích. Điều này cho phép một web framework được xây dựng trên đó. Flask framework sử dụng Werkzeg làm một trong những cơ sở của nó.

jinja2

jinja2 là một template engine phổ biến cho Python. Hệ thống web template kết hợp một template với một nguồn dữ liệu cụ thể để hiển thị một trang web động.

Điều này cho phép bạn chuyển các biến Python vào các HTML template:

<html>
    <head>
        <title>{{ title }}</title>
    </head>
    <body>
        <h1>Hello {{ username }}</h1>
    </body>
</html>

Microframework

Flask thường được coi là một microframework. Nó được thiết kế để giữ cho cốt lõi của ứng dụng đơn giản và có thể mở rộng (scalable).

Thay vì sử dụng một abstraction layer để hỗ trợ cơ sở dữ liệu, Flask hỗ trợ các phần extensions để thêm các khả năng như vậy vào ứng dụng.

Tại sao nên chọn Flask?

Không giống như Django framework, Flask rất “Pythonic” – dễ hiểu, rất tự nhiên. Ví dụ, để tạo ứng dụng “Hello World”, bạn chỉ cần một vài dòng mã.

Đây là một ví dụ code soạn sẵn.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

Nếu bạn muốn dùng Flask trên máy tính local của mình, bạn hoàn toàn có thể thực hiện một cách dễ dàng. Bạn chỉ cần tải chương trình này dưới dạng server.py và chạy nó với python server.py.

$ python server.py
* Serving Flask app “hello
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Sau đó, nó khởi động một máy chủ web chỉ khả dụng trên máy tính của bạn. Trong trình duyệt web, hãy mở localhost trên cổng 5000 (url) và bạn sẽ thấy “Hello World” hiển thị.

Để lưu trữ và sử dụng trực tuyến, bạn có thể sử dụng PythonAnywhere
Một số ví dụ:

flask

Dù Flask là một microframework, nhưng điều đó không có nghĩa là toàn bộ ứng dụng của bạn phải nằm trong một tệp Python duy nhất. Đối với các chương trình lớn, bạn có thể và nên sử dụng nhiều tệp hơn tuỳ thuộc vào độ phức tạp.

Micro có nghĩa là Flask framework đơn giản nhưng có thể mở rộng (extensible). Bạn có thể đưa ra tất cả các quyết định: sử dụng cơ sở dữ liệu nào, bạn có muốn ORM không, v.v., Flask không quyết định thay bạn.

Flask là một trong những web framework phổ biến nhất, có nghĩa là nó luôn được cập nhật và hiện đại. Bạn có thể dễ dàng mở rộng chức năng và mở rộng quy mô cho các ứng dụng phức tạp.

Got It Vietnam via Pythonbasic

Đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
December 05, 2020
Share this post to:
Tags:
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback
Tổng hợp tài liệu học Python theo 6 ngành hot nhất 2020 - Blog | Got It AI
3 years ago

[…] > Tìm hiểu thêm: Flask trong Python là gì? Lý do nên dùng Flask […]

Các bài viết liên quan
Các bước tạo một thư viện Python

Các bước tạo một thư viện Python

Tác giả: Minh (Software Engineer | CAI) Trong Tech Blog số này, Got It sẽ cùng bạn tìm hiểu về 6 bước để tạo và phân phối một thư viện Python. Cụ thể, chúng ta sẽ viết một CLI command tương tự cowsay cùng với một function để các package khác có thể import và […]
Sử dụng pre-commit để thực thi PEP8 chỉ trong 3 bước

Sử dụng pre-commit để thực thi PEP8 chỉ trong 3 bước

Tác giả: Kiên (Software Engineer | CAI) Đảm bảo code tuân thủ đầy đủ các quy tắc được đề xuất trong PEP8 là một điều vô cùng quan trọng, đặc biệt là trong làm việc nhóm, khi mà yếu tố dễ đọc, dễ hiểu, và dễ bảo trì code được đặt lên hàng đầu. Dẫu […]
Hướng dẫn cách triển khai và debug code Python trên Docker

Hướng dẫn cách triển khai và debug code Python trên Docker

Tác giả: Kiên (Software Engineer | CAI) Bạn đã bao giờ mất hàng tiếng đồng hồ, thậm chí vài ngày để cài đặt một số thư viện cần thiết cho việc chạy một project trên máy tính của mình chưa? Nếu có thì đây là bài viết dành cho bạn. Thông thường, khi bạn tham […]
Readable Code

Readable Code

Tác giả: Minh (Software Engineer, CAI) & Hương (TPM, CAI) Mục lục1. Readable code là gì?2. Làm thế nào để viết code dễ đọc?2.1. Style guide2.2. Viết function nhỏ, tập trung vào một tính năng2.3. Đặt tên hợp lý2.3.1. Dùng các tiền tố thích hợp để phân loại function2.3.2. Hạn chế thêm thông tin về […]
Tìm hiểu Tuple trong Python, phân biệt Tuple và List

Tìm hiểu Tuple trong Python, phân biệt Tuple và List

Ở bài viết này, chúng ta sẽ cùng đi tìm hiểu về Tuple trong Python, cách sử dụng chúng như thế nào, và sự khác biệt giữa Tuple và List là gì? Tất cả những nội dung trong bài đọc sẽ đều có ví dụ minh hoạ cụ thể, hi vọng các bạn đọc có […]
Anaconda là gì? Tìm hiểu nền tảng Khoa học dữ liệu phổ biến nhất

Anaconda là gì? Tìm hiểu nền tảng Khoa học dữ liệu phổ biến nhất

Để có thể tạo nên một ứng dụng của riêng mình, điều quan trọng nhất đó là phải thiết lập môi trường làm việc đúng cách. Vì vậy, bạn cần các công cụ để xử lý dữ liệu, xây dựng các mô hình và biểu diễn trên đồ thị. Việc sử dụng nhiều công cụ […]