經過前面所學習過 Flet 的元件,我們已經具備了使用 Slider、Text 和 Button 等元件的能力,現在可以嘗試開發一個簡單的密碼產生器。
以這一個密碼產生器: https://www.george.tw/2021/12/08/python-random-password-generator/ 為基礎,設計一個 Flet 的版本
# Flet Password generator (Simple version)
# 2024-08-19
# https://github.com/lcc728/flet/blob/main/ex_pwd_generator_simple.py
import flet as ft
import random
import string
def main(page: ft.Page):
page.title = "密碼產生器"
chars = string.ascii_letters + string.digits + string.punctuation
def generate_password(e):
length = int(slider.value)
pwd = ''.join(random.sample(chars,length))
password.value = pwd
page.update()
slider = ft.Slider(min=6, max=30, divisions=24, label="{value}位", value=12)
password = ft.Text(value="", size= 30, color="red")
generate_button = ft.ElevatedButton("產生密碼", on_click=generate_password)
page.add(
ft.Text("選擇密碼的長度:"),
slider,
generate_button,
ft.Text("你要的密码是:"),
password
)
ft.app(target=main)
在這個程式中,我們用了這些元件:
- Slider :
- min= 6 密碼最小長度為 6
- max= 30 最大長度為 30
- divisions=24 將 Slider 分割為24等份
- label=”{value}位” 顯示選擇的位數
- value=12 預設長度為 12
- 3個 Text, 用來顯示提示文字及 App 所產生的密碼
- ElevatedButton, 當按下按鈕時,呼叫 generate_password
chars = string.ascii_letters + string.digits + string.punctuation 密碼的字串為大小寫字母、數字和符號
在 generate_password 的 function 後,先獲取 slider 的值,再利用 random.sample 在chars 中隨機取出指定長度的字串,最後把值放進 password 這個 text 元件中.透過 update() 把最後結果呈現出來。
執行結果:
Source Code :https://github.com/lcc728/flet/blob/main/ex_pwd_generator_simple.py
影片加上了複製的功能: