---
url: /flet/introduction.md
description: Flet 是一个框架，允许使用您最喜欢的语言(如Pyhton)构建交互式多用户 Web、桌面和移动应用程序，而无需具备前端开发经验。
---

#### 什么是Flet

> The fastest way to build Flutter apps in Python.

用Python快速创建Flutter应用

> Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required.

Flet 是一个框架，允许使用您最喜欢的语言构建交互式多用户 Web、桌面和移动应用程序，而无需具备前端开发经验。

**如果您有创建GUI应用的需求，同时你只会Python语言，那么Flet可能就是你的最佳选择之一。**

您可以使用基于Google Flutter的Flet控件为您的程序构建UI。Flet 不只是“包装”Flutter小部件，而是通过组合较小的小部件、隐藏复杂性、实现UI最佳实践、应用合理的默认值来添加自己的“意见” - 所有这些都是为了确保您的应用程序看起来很酷且专业，而无需额外的努力。

#### Flet应用案例

目前您可以使用Python编写Flet应用程序，很快也会增加其他语言。

这是一个示例“Counter”应用：

counter.py

```python
import flet as ft

def main(page: ft.Page):
    page.title = "Flet counter example"
    page.vertical_alignment = ft.MainAxisAlignment.CENTER

    txt_number = ft.TextField(value="0", text_align=ft.TextAlign.RIGHT, width=100)

    def minus_click(e):
        txt_number.value = str(int(txt_number.value) - 1)
        page.update()

    def plus_click(e):
        txt_number.value = str(int(txt_number.value) + 1)
        page.update()

    page.add(
        ft.Row(
            [
                ft.IconButton(ft.icons.REMOVE, on_click=minus_click),
                txt_number,
                ft.IconButton(ft.icons.ADD, on_click=plus_click),
            ],
            alignment=ft.MainAxisAlignment.CENTER,
        )
    )

ft.app(target=main)
```

要运行应用程序需要安装flet模块：

```python
pip install flet
```

运行程序：

```python
python counter.py
```

该应用程序将在本机操作系统窗口中启动 - 这是 Electron 的一个很好的替代品！

macOS
![Flet for macOS](/img/d03c0760-dc50-4693-9237-ebf9d17359ae.png)

Windows
![Flet for Windows](/img/0921fece-6235-4360-9dcf-ebf1713e14b4.png)

现在，如果您想将应用程序作为Web应用程序运行，只需将最后一行替换为：

```python
ft.app(target=main, view=ft.AppView.WEB_BROWSER)
```

再次运行，现在你立即得到一个网络应用程序：

![Flet for Web](/img/30b6b87d-4b18-48bb-84a7-bde42792148e.png)

以上通过一个超级简单的计数案例给您演示了Flet的基本功能。想了解如何构建真正的应用程序吗？请关注后续Flet系列教程。
