🚀 Ứng dụng đầu tiên
Hãy tạo ứng dụng Flet đầu tiên trong 15 phút! 🚀
🎯 Mục tiêu
Phần tiêu đề “🎯 Mục tiêu”Xây dựng ứng dụng “Hello World” với:
- Text hiển thị lời chào
- Button thay đổi nội dung
📝 Bước 1: Tạo dự án trong PyCharm
Phần tiêu đề “📝 Bước 1: Tạo dự án trong PyCharm”1.1 Mở PyCharm và tạo dự án mới
Phần tiêu đề “1.1 Mở PyCharm và tạo dự án mới”- Mở PyCharm
- Chọn File → New Project
- Cấu hình:
- Location: Chọn thư mục, ví dụ
~/Projects/my-flet-app - Python Interpreter: Chọn New environment using Virtualenv
- Base interpreter: Python 3.10 trở lên
- Location: Chọn thư mục, ví dụ
- Click Create
1.2 Cài đặt Flet
Phần tiêu đề “1.2 Cài đặt Flet”Mở Terminal trong PyCharm (View → Tool Windows → Terminal) và chạy:
pip install 'flet[all]'Chờ cài đặt hoàn tất.
1.3 Tạo file main.py
Phần tiêu đề “1.3 Tạo file main.py”- Click chuột phải vào thư mục dự án trong panel Project
- Chọn New → Python File
- Đặt tên:
main - Nhấn Enter
📝 Bước 2: Viết code Hello World
Phần tiêu đề “📝 Bước 2: Viết code Hello World”Trong file main.py, nhập code sau:
import flet as ft
def main(page: ft.Page): page.title = "Ứng dụng đầu tiên" page.vertical_alignment = ft.MainAxisAlignment.CENTER page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
page.add( ft.Text("Xin chào, Flet! 👋", size=30, weight=ft.FontWeight.BOLD) )
ft.run(main)▶️ Bước 3: Chạy ứng dụng
Phần tiêu đề “▶️ Bước 3: Chạy ứng dụng”Cách 1: Chạy từ PyCharm
Phần tiêu đề “Cách 1: Chạy từ PyCharm”- Click chuột phải vào file
main.py - Chọn Run ‘main’
Hoặc nhấn Shift + F10 (Windows/Linux) hoặc Ctrl + R (macOS).
Cách 2: Chạy từ Terminal
Phần tiêu đề “Cách 2: Chạy từ Terminal”flet run main.pyKết quả: Cửa sổ ứng dụng với dòng chữ “Xin chào, Flet! 👋” ở giữa màn hình.
flowchart TD subgraph Window["Ứng dụng đầu tiên"] T["Xin chào, Flet! 👋"] end style Window fill:#f5f5f5 style T fill:#e3f2fd🔧 Bước 4: Thêm tương tác với Declarative UI
Phần tiêu đề “🔧 Bước 4: Thêm tương tác với Declarative UI”Thay thế nội dung main.py với code sử dụng Component và use_state:
import flet as ft
@ft.componentdef Greeting(): # State: lời chào hiện tại message, set_message = ft.use_state("Xin chào! 👋")
def change_greeting(_): set_message("Chào mừng đến với Flet! 🎉")
return ft.Column([ ft.Text(message, size=30, weight=ft.FontWeight.BOLD), ft.ElevatedButton("Nhấn vào đây!", on_click=change_greeting), ], horizontal_alignment=ft.CrossAxisAlignment.CENTER, spacing=20)
def main(page: ft.Page): page.title = "Ứng dụng đầu tiên" page.vertical_alignment = ft.MainAxisAlignment.CENTER page.horizontal_alignment = ft.CrossAxisAlignment.CENTER page.add(Greeting())
ft.run(main)Lưu file (Ctrl+S) và chạy lại. Thử click button!
Kết quả sau khi click:
flowchart TD subgraph Window["Ứng dụng đầu tiên"] T["🎉 Chào mừng đến với Flet! 🎉"] B["[ Nhấn vào đây! ]"] end T --> B style Window fill:#f5f5f5 style T fill:#c8e6c9[!TIP] Declarative UI với
@ft.componentvàft.use_state():
- Không cần gọi
page.update()thủ công- UI tự động cập nhật khi state thay đổi
🌐 Bước 5: Chạy trên Web
Phần tiêu đề “🌐 Bước 5: Chạy trên Web”Trong Terminal của PyCharm:
flet run --web main.pyTrình duyệt tự động mở tại http://localhost:8000 - cùng code, chạy trên web!
🔍 Giải thích code
Phần tiêu đề “🔍 Giải thích code”| Code | Mô tả |
|---|---|
import flet as ft |
Import thư viện Flet |
@ft.component |
Decorator tạo component |
ft.use_state(value) |
Hook quản lý state |
set_message(...) |
Hàm cập nhật state |
ft.run(main) |
Khởi chạy ứng dụng |
🎯 Thử thách
Phần tiêu đề “🎯 Thử thách”Trong PyCharm, thử tự mình:
- Thêm màu cho text:
ft.Text(..., color=ft.Colors.BLUE) - Thêm nhiều button với message khác nhau
- Thêm counter (mỗi lần click tăng số)
Gợi ý counter:
@ft.componentdef Counter(): count, set_count = ft.use_state(0)
return ft.Row([ ft.IconButton(ft.Icons.REMOVE, on_click=lambda _: set_count(count - 1)), ft.Text(str(count), size=30), ft.IconButton(ft.Icons.ADD, on_click=lambda _: set_count(count + 1)), ], alignment=ft.MainAxisAlignment.CENTER)⏭️ Bước tiếp theo
Phần tiêu đề “⏭️ Bước tiếp theo”Tuyệt vời! Tiếp tục với Cấu trúc ứng dụng Flet để hiểu sâu hơn.