【前端】Flet:一款支持python及多语言开发的UI库

news2025/7/10 9:33:44

文章目录

  • 介绍
    • 开发生态
      • 支持语言
      • 运行体验
    • 组件
    • API
    • 热更新
  • 开发计划 Roadmap
    • 2022 7月-8月
      • 安全
      • 手机端
      • 桌面端
      • Controls(控件)
      • 核心功能
      • 用户指引(User education)
    • 2022 9月到12月
      • 手机端
      • 控件(Controls)
      • 编程语言支持
      • 核心功能

介绍

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

Flet是一款使用python语言, 帮助开发者构建实时应用(web应用、手机应用、桌面应用)的框架。就我目前的体验来看,该框架底层基于flutter,使用声明式UI,开发体验类似于dart写flutter-app。
启动速度方面, 作为桌面端运行时比较快;作为web运行就慢的一p,理论上至少要经历 python->dart->js的转译过程,自然快不起来。

开发生态

支持语言

目前只支持python开发,后续要支持以下语言 js| c#| go,但我觉得会延期的,毕竟今天都11月中旬了。
在这里插入图片描述

运行体验

  • 直接使用 python main.py运行,1秒级启动。
  • pyinstaller打包为多文件,启动需要4秒;打包为单文件,启动需要更久。
  • 打包时长随你的项目体积和引入库数量而增加,初始大概20s完事。
  • 手机端暂时只支持部署到服务端, 然后浏览器访问,慢的一p。
  • 界面效果类似于uwp应用, 比winform界面好看点。
    在这里插入图片描述

组件

flet组件的核心是 控件Controls, 界面由控件按层级或者树状结构组成。

  • 按钮
  • list
  • 容器(类似于一个空盒子)
    。。。。。。挺丰富的,其余在官网https://flet.dev/docs/controls

API

  • 本地储存能力
    clientStorage, sessionStorage ( 类比web就行 )
  • 文件选择器和拖拽上传
  • 数据加密(使用你自定义的key)

热更新

开发时使用 flet -r main.py. 则递归检查main.py同级的文件或文件夹内代码的改变,实时热更新视图。

开发计划 Roadmap

以下为翻译

2022 7月-8月

安全

  • 开放授权协议认证 (OAuth): GitHub, Google, Azure (Microsoft Account).

手机端

  • Flet 小组件 for Flutter
  • Flet Studio苹果应用 in App Store
  • Flet Studio安卓应用 in Google Play

桌面端

  • Windows and macOS “host” client with hot reload, so the app could be run as flet main.py
  • 似乎已经支持了hot-reload

Controls(控件)

  • ✅ Routing and navigation
  • 导航
    • 导航抽屉:NavigationDrawer
    • 导航栏:NavigationBar
  • 响应式布局(Responsive layout)

核心功能

  • PUbSUB:看着似乎是,使用url访问时,可使用此多人实时通信功能。
  • ✅ PubSub

用户指引(User education)

  • 基于python的样例app(Sample apps in Python):
    • Chat (聊天)

2022 9月到12月

手机端

  • White-labeled Flet mobile app
  • 将flet-app打包成单独的apk或者ipa包
  • 将flet嵌入原生app。

控件(Controls)

  • 表格:DataTable
  • 更多的图表(似乎已经有柱状图和折线图了):Charts
  • 自适应的控件,按照平台差异来决定如何展现:Adaptive controls (controls that change their look depending on platform)
  • ✅ Animations

编程语言支持

  • JavaScript/TypeScript
  • Go
  • C# (.NET)

核心功能

  • flet内嵌一个支持orm的数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【设计模式-2】策略模式 - 避免冗余的if-else判断。数据库迁移框架、flink 类型转换框架例子对策略模式的使用

文章目录1. 介绍2. 策略模式结构3. 策略模式使用3.1. 场景一: 表迁移3.2. flink connector类型转换1. 介绍 当if else过多时&#xff0c;可以通过策略模式来进行重构。先定义一个接口&#xff0c;各else处理分支实现这个接口&#xff0c;并定义 < 条件 , 处理类 > 的映射…

NNG 通信模式

NNG 是 nanomsg 的继任版本,纯c语言开发&#xff0c;工作模式分为几种&#xff1a; 1&#xff0c;Pipeline (A One-Way Pipe) 单向通信&#xff0c;类似与生产者消费者模型的消息队列&#xff0c;消息从推方流向拉方。 #include <stdlib.h> #include <stdio.h> #…

[附源码]java毕业设计基于的图书馆管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

RabbitMQ(四):RabbitMQ高级特性

消息队列在使用过程中&#xff0c;面临着很多实际问题需要思考&#xff1a; 消息可靠性问题&#xff1a;如何确保发送的消息至少被消费—次延迟消息问题&#xff1a;如何实现消息的延迟投递消息堆积问题&#xff1a;如何解决数百万消息堆积&#xff0c;无法及时消费的问题高可用…

面试官:MySQL 上亿大表如何优化?

背景 XX 实例&#xff08;一主一从&#xff09;xxx 告警中每天凌晨在报 SLA 报警&#xff0c;该报警的意思是存在一定的主从延迟。&#xff08;若在此时发生主从切换&#xff0c;需要长时间才可以完成切换&#xff0c;要追延迟来保证主从数据的一致性&#xff09; XX 实例的慢…

Oracle LiveLabs实验:Manage Database Instance and Memory for Oracle Database 21c

概述 此实验申请地址在这里。 实验帮助在这里。 此实验预估完成时间100分钟。 该研讨会介绍了 Oracle 数据库实例的基本知识&#xff0c;并指导您管理 Oracle 数据库的初始化参数和内存结构。 管理初始化参数以在 Oracle 数据库上执行关键任务&#xff0c;例如管理数据库实…

【教学类-08-01】20221010《门牌号(6层*3间 黑色版)》(大班主题《我们的城市》)

效果展示 背景需求&#xff1a; 我的小课题《运用Python设计大班层次性纸类学具的案例研究》获得2022年MHQ小课题立项&#xff0c;在前期的《学号名字描字帖》《身份证》《数字分合》《破译电话号码》的基础上&#xff0c;需要设计更多与大班主题活动书上的主题相关的学习材料。…

利用css 动画实现节流

节流指的避免过于频繁的执行一个函数&#xff0c;例如&#xff1a;一个保存按钮&#xff0c;为了避免重复提交或者服务器考虑&#xff0c;往往需要对点击行为做一定的限制&#xff0c;不然会频繁的请求接口&#xff0c;之前基本上是通过js去控制节流问题&#xff0c;其实css也能…

k-form-design 改成自己组件步骤

1&#xff09;修改package.json {"name": "kk-form-design","version": "1.0.2","private": false,"description": "基于vue、ant-design-vue的表单设计器,可视化开发表单","license": &quo…

Linux下的截图工具 —— Flameshot

一、简介 Flameshot是一款功能强大但易于使用的屏幕截图软件&#xff0c;中文名称火焰截图。Flameshot 简单易用并有一个CLI版本&#xff0c;所以你也可以从命令行来进行截图。Flameshot 是一个Linux发行版中完全免费且开源的截图工具。 特性&#xff1a; 外观可定制化。易于…

数据结构-红黑树

红黑树 二分查找 二叉树 二叉平衡树 平衡因子不超1 查找和二叉查找一样的 删除和插入比较复杂 四种失去平衡的方法 LR 两步 RL 两步 不断旋转比较耗时 进一步改进&#xff1a; 红黑树RBT 调整的次数少 平衡性不如二叉平衡树 &#xff0c; 插入删除频繁的使用红黑树&…

redis的主从复制,哨兵和cluster集群

一、redis性能管理 &#xff08;1&#xff09; redis-cli 127.0.0.1:6379> info memory ​ &#xff08;2&#xff09; redis-cli info memory used_memory_rss&#xff1a;是Redis向操作系统申请的内存。used_memory&#xff1a;是Redis中的数据占用的内存。used_memo…

新手零基础自学Python,安装并配置环境+教程

第一步&#xff1a;搭建python运行环境 在 Windows 上安装 Python 和安装普通软件一样简单&#xff0c;下载安装包以后猛击“下一步”即可。 Python 安装包下载地址&#xff1a;https://www.python.org/downloads/ 打开该链接&#xff0c;可以看到有两个版本的 Python&#…

java框架 —— Spring

Spring[TOC](Spring)1、概述1.1、优点1.2、组成2. IOC概述2.1 什么是IOC2.1.1 推导过程2.1.2 IOC本质2.2 HelloSpring2.2.1 导入Jar包2.2.2 编写代码2.2.2 思考2.3 IOC过程2.4 IOC 接口3. Bean 管理3.1 基于xml方式——set方法注入3.2 FactoryBean3.3 bean 作用域3.4 bean 生命…

Java——面向对象进阶(封装、继承、多态)

Java面向对象三大特性——封装、继承、多态一、封装1.封装基本概念2.访问修饰符3.Java中封装的理解4.封装的优点二、继承1.为什么需要继承2.继承层次结构3.super和this关键字4.继承语法与设计一个继承体系三、多态1.多态的概念2.多态的实现条件3.多态的优缺点一、封装 1.封装基…

【微服务架构组件】Nacos

初识nacos 最近在整合nacos做配置的热下发&#xff0c;总结下。 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称&#xff0c;一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 阿里开源产品&#xff1a;什么是 Nacos 如 Na…

[Leetcode]138. 复制带随机指针的链表

目录 1.题目链接 2.1解法①(暴力) 2.1.1解法思路&#xff1a; 2.1.2代码实现&#xff1a; 2.2解法②(进阶) 2.1.1解法思路&#xff1a; 2.2.2代码实现&#xff1a; 1.题目链接 138. 复制带随机指针的链表 - 力扣&#xff08;LeetCode&#xff09; 2.1解法①(暴力) 2.1.…

软考 - 操作系统

操作系统概述 bit和byte区别 bit 位 说白了就是0或者1&#xff1b;计算机内存中的存储都是01这两个东西。 byte(B) 字节 1byte8bit&#xff08;一字节 8比特&#xff09; 1byte就是1B 1byte 存1个英文字母&#xff0c;2个byte存一个汉字。 了解 操作系统的作用&#xff1…

SpringBoot使用EasyExcel类一键导出数据库数据生成Excel,导入Excle生成List<>数据(作者直接给demo项目)

文章目录一、简单一键导出Excel直接给出生成效果Empty&#xff0c;这个很关键controller层EasyExcel类的多种使用方式二、导入Excel生成List<>数据controller层&#xff0c;简单写法监听器写法&#xff08;观察者模式&#xff09;&#xff0c;稍微麻烦其他如果要使类中的…

动态拼接 merge 语句

【问题】 Hello everyone, I have one query, would be great if anyone can help me out on this. In SQL, I have two tables with same column names. Want to query if there is any difference in the column values and if yes will update the values(in the first ta…