Cách xây dựng một trang đăng nhập đơn giản bằng Python
Có hơn một tỷ trang web trên internet. Để đảm bảo tài khoản của người dùng được an toàn, nhiều ứng dụng web—từ ngân hàng trực tuyến đến phương tiện truyền thông xã hội—yêu cầu trang đăng nhập.
Tìm hiểu cách tạo trang đăng nhập đơn giản bằng mô-đun Tkinter và tự làm quen với các khái niệm cơ bản về xây dựng ứng dụng GUI bằng Python.
Mục Lục
Mô-đun Tkinter
Bạn có thể sử dụng Tkinter để tạo trang đăng nhập chấp nhận và xác thực tên người dùng và mật khẩu. Tkinter cung cấp nhiều tiện ích con như nút, nhãn và hộp văn bản giúp dễ dàng phát triển ứng dụng. Một số ứng dụng bạn có thể phát triển bằng Tkinter bao gồm Ứng dụng Công việc, Trình phát nhạc, Ứng dụng hẹn giờ Pomodoro và trò chơi Word Jumble.
Để cài đặt Tkinter, hãy mở terminal và chạy:
pip install tkinter
Cách xây dựng trang đăng nhập bằng Python
Bạn có thể tìm thấy mã nguồn để tạo trang đăng nhập bằng Python trong kho lưu trữ GitHub này.
Nhập các thư viện cần thiết và khởi tạo cửa sổ gốc. Đặt tiêu đề và kích thước của cửa sổ. Sử dụng cấu hình() chức năng, đặt màu nền.
import tkinter
from tkinter import messagebox
window = tkinter.Tk()
window.title("Login Page using Python")
window.geometry('750x550')
window.configure(bg='#8F00FF')
Xác định một chức năng, đăng nhập() sẽ đưa ra quyết định quan trọng dựa trên thông tin đăng nhập của người dùng. Bản trình diễn đơn giản này mã hóa cứng thông tin đăng nhập hợp lệ; một ứng dụng thực có thể sẽ tìm nạp chúng từ cơ sở dữ liệu.
Lưu trữ thông tin đăng nhập và sử dụng lấy() phương thức của từng tiện ích Nhập để lấy dữ liệu mà người dùng đã nhập. Theo xác thực dữ liệu, hiển thị hộp thông báo có tiêu đề và thông báo thích hợp.
def login():
username = "smartreviewaz"
password = "muo" if username_entry.get()==username and password_entry.get()==password:
messagebox.showinfo(title="Login Successful!", message="You successfully logged in.")
else:
messagebox.showerror(title="Error", message="Invalid login.")
Xác định khung Tkinter để đóng vai trò là cha mẹ và đặt màu nền cho nó.
frame = tkinter.Frame(bg='#8F00FF')
Xác định ba nhãn cho đăng nhập, tên người dùng và mật khẩu. Chuyển qua cửa sổ chính mà bạn muốn đặt nhãn vào, văn bản sẽ hiển thị, màu nền, màu phông chữ và kiểu phông chữ mà nó nên có.
login_label = tkinter.Label(frame, text="Login Page Using Python", bg='#000000', fg="#DC143C", font=("Arial", 30))
username_label = tkinter.Label(frame, text="Username", bg='#8F00FF', fg="#FFFFFF", font=("Arial", 16, 'bold'))
password_label = tkinter.Label(frame, text="Password", bg='#8F00FF', fg="#FFFFFF", font=("Arial", 16, 'bold'))
Xác định hai tiện ích nhập để lấy dữ liệu từ người dùng. Đặt cửa sổ chính mà bạn muốn đặt nó cùng với các kiểu phông chữ. Sử dụng trình diễn thuộc tính dưới dạng dấu hoa thị để che giấu mật khẩu mà người dùng nhập trên màn hình.
username_entry = tkinter.Entry(frame, font=("Arial", 16))
password_entry = tkinter.Entry(frame, show="*", font=("Arial", 16))
Xác định một nút để đăng nhập chấp nhận cửa sổ chính làm khung mà bạn đã xác định trước đó, văn bản sẽ hiển thị, màu nền, màu phông chữ, kiểu phông chữ và lệnh mà nó sẽ thực thi khi nhấp vào.
login_button = tkinter.Button(frame, text="Login", bg="#DC143C", fg="#FFFFFF", font=("Arial", 16), command=login)
Sử dụng trình quản lý lưới để đặt ba nhãn, hai mục nhập và nút đăng nhập ở định dạng bảng có tổ chức. Nhãn đăng nhập sẽ hoạt động như một tiêu đề và chiếm cả hai cột. Tùy chọn dính chỉ định cạnh nào của ô mà tiện ích sẽ dính vào. Khi vượt qua nó như Tin tức (đông bắc-tây-nam), chương trình căn giữa văn bản theo cả chiều ngang và chiều dọc.
Đặt các nhãn ở phía bên trái, cái này bên dưới cái kia và làm theo cách tương tự cho các tiện ích mục nhập ở bên phải. Tương tự như tiêu đề, đặt nút đăng nhập chiếm cả hai cột. Cung cấp phần đệm thích hợp theo hướng y cho tất cả các vật dụng.
login_label.grid(row=0, column=0, columnspan=2, sticky="news", pady=40)
username_label.grid(row=1, column=0)
username_entry.grid(row=1, column=1, pady=20)
password_label.grid(row=2, column=0)
password_entry.grid(row=2, column=1, pady=20)
login_button.grid(row=3, column=0, columnspan=2, pady=30)
Sử dụng đóng gói() để sắp xếp tất cả các tiện ích theo khối và chạy vòng lặp sự kiện Tkinter và lắng nghe các sự kiện cho đến khi bạn đóng cửa sổ.
frame.pack()
window.mainloop()
Đặt tất cả mã lại với nhau và trang đăng nhập của bạn đã sẵn sàng để sử dụng.
Đầu ra mẫu của ứng dụng trang đăng nhập
Khi chạy chương trình và nhập thông tin đăng nhập hợp lệ, chương trình sẽ hiển thị hộp thông báo rằng người dùng có thể đăng nhập thành công.
Khi chạy chương trình với bất kỳ thông tin xác thực nào khác, hộp thông báo sẽ hiển thị lỗi liên quan đến thông tin đăng nhập không hợp lệ.
Tăng cường trang đăng nhập Python
Bạn có thể sử dụng cơ sở dữ liệu chẳng hạn như MySql để tìm nạp các bản ghi và xác thực nó dựa trên thông tin đăng nhập của người dùng. Các mysql.connector thư viện giúp bạn thiết lập kết nối giữa ứng dụng Python Tkinter và cơ sở dữ liệu MySql.
Đối với giao diện người dùng nâng cao, bạn có thể khám phá tùy chỉnh mô-đun. Nó hoàn toàn được xây dựng trên mô-đun Tkinter và giúp bạn tạo các tiện ích con hiện đại có thể tùy chỉnh hoàn toàn không có sẵn như một phần của thư viện Tkinter tiêu chuẩn. Kết hợp hai thư viện này sẽ nâng cao kỹ năng lập trình GUI của bạn và đặt làm bước đệm trong việc tạo các ứng dụng phức tạp hơn.