
1. Giới Thiệu
Trong lập trình ứng dụng, chức năng đăng ký và đăng nhập là một trong những tính năng quan trọng để quản lý người dùng. Trong bài viết này, chúng ta sẽ xây dựng một hệ thống đăng ký và đăng nhập đơn giản sử dụng Python trên CMD, lưu trữ dữ liệu vào file JSON để đảm bảo tính lâu dài.
2. Cấu Trúc Chương Trình
Chương trình của chúng ta sẽ gồm các chức năng chính:
✅ Đăng ký người dùng mới: Kiểm tra username đã tồn tại chưa, nếu chưa thì lưu thông tin vào file JSON. ✅ Đăng nhập: Xác minh thông tin username và mật khẩu từ dữ liệu đã lưu. ✅ Lưu trữ thông tin vào JSON: Giúp lưu giữ dữ liệu ngay cả khi chương trình kết thúc. ✅ Hiển thị menu trên CMD: Cho phép người dùng thao tác qua giao diện dòng lệnh.
3. Hướng Dẫn Từng Bước
3.1. Lưu Trữ Dữ Liệu Người Dùng Trong File JSON
Để đảm bảo thông tin người dùng được lưu lại sau khi chương trình kết thúc, chúng ta sẽ sử dụng file JSON (user_data.txt
) làm nơi lưu trữ.
import json
def save_user_data(username, password):
try:
with open('user_data.txt', 'r') as file:
user_data = json.load(file)
except FileNotFoundError:
user_data = {}
user_data[username] = password
with open('user_data.txt', 'w') as file:
json.dump(user_data, file, indent=4)
🔹 Giải thích:
- Kiểm tra xem file
user_data.txt
có tồn tại không. - Nếu có, đọc dữ liệu từ file JSON.
- Nếu không, tạo một dictionary mới.
- Thêm username và password vào dictionary và lưu lại vào file JSON.
3.2. Đọc Dữ Liệu Từ JSON
Để kiểm tra người dùng khi đăng nhập, ta cần một hàm đọc dữ liệu từ file.
def load_user_data():
try:
with open('user_data.txt', 'r') as file:
return json.load(file)
except FileNotFoundError:
return {}
🔹 Giải thích:
- Nếu file tồn tại, đọc nội dung và trả về dưới dạng dictionary.
- Nếu không tồn tại, trả về một dictionary rỗng.
3.3. Kiểm Tra Người Dùng Đã Tồn Tại
def check_user_exists(username):
return username in load_user_data()
🔹 Giải thích:
- Tải dữ liệu từ file JSON và kiểm tra xem username có tồn tại không.
3.4. Chức Năng Đăng Ký Người Dùng Mới
def register():
username = input("Nhập tên đăng nhập: ")
password = input("Nhập mật khẩu: ")
if check_user_exists(username):
print("Tên đăng nhập đã tồn tại!")
else:
save_user_data(username, password)
print("Đăng ký thành công!")
🔹 Giải thích:
- Nhập username và password.
- Kiểm tra xem username đã tồn tại chưa.
- Nếu chưa, lưu username và password vào file JSON.
3.5. Chức Năng Đăng Nhập
def login():
username = input("Nhập tên đăng nhập: ")
password = input("Nhập mật khẩu: ")
user_data = load_user_data()
if user_data.get(username) == password:
print("Đăng nhập thành công!")
else:
print("Sai tên đăng nhập hoặc mật khẩu.")
🔹 Giải thích:
- Nhập username và password từ người dùng.
- Kiểm tra trong file JSON.
- Nếu đúng, hiển thị thông báo đăng nhập thành công, nếu sai, báo lỗi.
3.6. Tạo Menu Chọn Chức Năng
def main():
while True:
print("\n1. Đăng ký")
print("2. Đăng nhập")
print("3. Thoát")
choice = input("Lựa chọn: ")
if choice == "1":
register()
elif choice == "2":
login()
elif choice == "3":
print("Tạm biệt!")
break
else:
print("Lựa chọn không hợp lệ!")
if __name__ == "__main__":
main()
🔹 Giải thích:
- Hiển thị menu để người dùng chọn chức năng.
- Dùng vòng lặp
while True
để liên tục nhận lựa chọn từ người dùng. - Nếu chọn “3”, chương trình sẽ thoát.
4. Tổng Kết
✔ Truy cập & lưu dữ liệu lâu dài: Sử dụng JSON giúp lưu trữ tài khoản ngay cả khi chương trình kết thúc. ✔ Giao diện dòng lệnh đơn giản: Giúp dễ dàng thao tác trên CMD. ✔ Chia nhỏ các chức năng: Dễ mở rộng và bảo trì.
📌 Với cách tiếp cận này, bạn có thể nâng cấp hệ thống bằng cách thêm bảo mật nâng cao như băm mật khẩu (hashing) để tăng tính an toàn.
🚀 Hãy thử ngay và nâng cao kỹ năng lập trình Python của bạn!