Curious George sees the world
 
Flet – Password generator – simple version

Flet – Password generator – simple version

經過前面所學習過 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() 把最後結果呈現出來。

執行結果:

Flet 簡版密碼產生器的執行結果

Source Code :https://github.com/lcc728/flet/blob/main/ex_pwd_generator_simple.py

影片加上了複製的功能:

發表迴響