Tạo nút đăng ký cho 1 Website
Em đang theo học về Python 3 và đang làm dự án cuối khóa. Hiện bài tập của e đang làm có vấn đề cần giải quyết:
1: Em đã tạo được 1 nút "đăng ký". Và em đang muốn báo cho người dùng biết username của họ đang trùng với 1 username khác thì sẽ báo cho họ biết để họ tạo username khác! Đây là đoạn code sign_up cho người dùng ạ! Em mong các cao nhân chỉ giáo ạ! Em cảm ơn
1 CÂU TRẢ LỜI
Đoạn code sign up của em đang gặp một vấn đề là nó đang không validate giữ liệu mà user truyền lên.
Nhìn chung em nên có một tư tưởng là hầu hết các dữ liệu users gửi lên đều cần phải validate trước khi lưu vào trong database, và như thắc mắc của em, validate việc email
hay username
có bị trùng hay không là một trong những việc cần thiết. (Ngoài ra em cũng nên validate xem email
có đúng format hay không, password
có đủ dài, đủ mạnh hay không, và nên có một trường là password_confirmation
và so sánh với password
xem có trùng hay không để kiểm tra chắc chắn rằng người dùng nhập đúng password theo ý họ ...)
Về việc validate username
hay email
thì sau bước lấy dữ liệu từ form, em hãy truy vấn trong bảng User
xem có record nào có username
hay email
như vậy hay không. Nếu có trả ra kết quả (tức là đã bị trùng) thì em không được phép lưu lại vào trong database nữa, thay vào đó em đưa người dùng trở lại trang sign up bằng return redirect(url_for("customer_sign_up"))
. Thế nên đoạn xử lý này thì cần được viết vào khoảng dòng 165 theo như trên hình của em.
Còn việc làm thế nào để trang sign up hiển thị được ra lỗi thì em cần có thêm một biến là errors
để lưu nội dung lỗi, chẳng hạn ở đây thì:
errors = [
"email" => "This email has been used",
];
Sau đó em lưu biến errors
này vào trong session
, ở trang sign up thì em check xem trong session có data về errors
hay không, nếu có tức là đang có lỗi, và em hiện ra thông báo lỗi ở trong đó
P/S: Ngoài ra có vẻ như em còn đang gặp một vấn đề là em lưu nguyên password của người dùng vào trong database mà không qua mã hoá, không biết có phải không nhỉ