Простая руководство для создания генератора пароля с GUI, используя TKinter
Проект на Github: https://github.com/zsoltszakal/python-random-password-tkinter
Шаг 1: Протопировать пользовательский интерфейс
Я использовал www.figma.com к
Шаг 2: Создать пользовательский интерфейс с Tkinter
########## User Interface ########## window = Tk() window.title("Password Generator") window.config(padx=50, pady=50, bg="#383e56") label_title = Label(text="Password Generator", bg="#383e56", fg="#c5d7bd", font=("Arial", 35, "bold")) label_title.grid(row=0, column=0, columnspan=3, pady=30) label_before_input = Label(text="I want a password with", bg="#383e56", fg="#c5d7bd", font=("Arial", 15, "bold")) label_before_input.grid(row=1, column=0) char_input = Entry(bg="#fb743e") char_input.grid(row=1, column=1) label_after_input = Label(text="characters.", bg="#383e56", fg="#c5d7bd", font=("Arial", 15, "bold")) label_after_input.grid(row=1, column=2) generate_password_button = Button(text="Generate Password & Copy to Clipboard", bg="#fb743e", height=4, width=55, command=password_generator) generate_password_button.grid(row=2, column=0, columnspan=3, padx=50, pady=50) password_field = Entry(bg="#383e56", font=("Arial", 15, "bold")) password_field.grid(row=3, column=0, columnspan=3, , width=40) window.mainloop()
Шаг 3 – Создайте генератор пароля
from tkinter import * import string import random ########## Password Generator ########## password_chars = string.ascii_letters + string.digits + string.punctuation def password_generator(): length = 10 password = "".join([random.choice(password_chars) for _ in range(length)])
Шаг 4 – Добавить команду генератора паролей Кнопка
########## User Interface - add command=password_generator ########## generate_password_button = Button(text="Generate Password & Copy to Clipboard", bg="#fb743e", height=4, width=55, command=password_generator)
Шаг 5 – Используйте ввод пользователя, чтобы определить длину пароля
########## Password Generator - Get the value for lenght from char_input entry ########## password_chars = string.ascii_letters + string.digits + string.punctuation def password_generator(): length **= int(char_input.get())** password = "".join([random.choice(password_chars) for _ in range(length)]) ########## User Interface - add .focues to export value for entry ########## char_input = Entry(text="Hello", bg="#fb743e") char_input.grid(row=1, column=1) char_input.insert(0, "12") char_input.focus()
Шаг 6 – Показать пароль в GUI
########## Password Generator ########## ### add .insert to show password ### add .delete to remove the last password password_chars = string.ascii_letters + string.digits + string.punctuation def password_generator(): password_field.delete(0, END) length = int(char_input.get()) password = "".join([random.choice(password_chars) for _ in range(length)]) password_field.insert(0, password)
Шаг 7 – Скопировать в буфер обмена
import pyperclip ########## Password Generator ########## ### import pyperclip and then add pyperclip.copy to copy password to clipboard password_chars = string.ascii_letters + string.digits + string.punctuation def password_generator(): password_field.delete(0, END) length = int(char_input.get()) password = "".join([random.choice(password_chars) for _ in range(length)]) password_field.insert(0, password) pyperclip.copy(password)
Полный код:
from tkinter import * import string import random import pyperclip ########## Password Generator ########## password_chars = string.ascii_letters + string.digits + string.punctuation def password_generator(): password_field.delete(0, END) length = int(char_input.get()) password = "".join([random.choice(password_chars) for _ in range(length)]) password_field.insert(0, password) pyperclip.copy(password) ########## User Interface ########## window = Tk() window.title("Password Generator") window.config(padx=50, pady=50, bg="#383e56") label_title = Label(text="Password Generator", bg="#383e56", fg="#c5d7bd", font=("Arial", 35, "bold")) label_title.grid(row=0, column=0, columnspan=3, pady=30) label_before_input = Label(text="I want a password with", bg="#383e56", fg="#c5d7bd", font=("Arial", 15, "bold")) label_before_input.grid(row=1, column=0) char_input = Entry(bg="#fb743e") char_input.grid(row=1, column=1) char_input.insert(0, "12") char_input.focus() label_after_input = Label(text="characters.", bg="#383e56", fg="#c5d7bd", font=("Arial", 15, "bold")) label_after_input.grid(row=1, column=2) generate_password_button = Button(text="Generate Password & Copy to Clipboard", bg="#fb743e", height=4, width=55, command=password_generator) generate_password_button.grid(row=2, column=0, columnspan=3, padx=50, pady=50) password_field = Entry(bg="#383e56", font=("Arial", 15, "bold"), width=40) password_field.grid(row=3, column=0, columnspan=3) window.mainloop()
И генератор пароля сейчас готов:
Проект на Github: https://github.com/zsoltszakal/python-random-password-tkinter
Оригинал: “https://dev.to/zsoltszakal/pythonprojects-1-50-password-generator-with-gui-276p”