Làm cách nào để tạo một hệ thống đăng nhập bằng Python bằng MySQL?

Trong hướng dẫn Python trước đây của chúng tôi, chúng tôi đã giải thích cách phát triển Ứng dụng thời tiết bằng Python bằng Flask. Trong hướng dẫn này, chúng tôi sẽ giải thích cách triển khai Đăng nhập và Đăng ký Người dùng bằng Python, Flask và MySQL

Đăng nhập và đăng ký người dùng là một chức năng quan trọng của mô-đun người dùng trong bất kỳ ứng dụng web nào. Người dùng được phép tạo tài khoản và đăng nhập để truy cập phần người dùng

Trong hướng dẫn này, chúng tôi sẽ triển khai chức năng đăng nhập, đăng xuất và đăng ký của người dùng. Chúng tôi sẽ sử dụng khung công tác

pip install flask-mysqldb
1 với
pip install flask-mysqldb
2 để tạo ứng dụng web với Biểu mẫu đăng nhập và đăng ký và triển khai tính năng sử dụng cơ sở dữ liệu
pip install flask-mysqldb
3

Vì vậy, hãy tiến hành thực hiện Đăng nhập và Đăng ký với Python, Flask và MySQL


Mô-đun bắt buộc

Chúng tôi sẽ sử dụng các mô-đun sau để triển khai chức năng đăng nhập và đăng ký

  • Bình giữ nhiệt. Flask là một khung ứng dụng web WSGI nhẹ được sử dụng để tạo các ứng dụng web bằng Python. Nó có thể được cài đặt bằng lệnh dưới đây
  • pip install Flask
    
  • Flask-MySQLdb. Flask-MySQLdb cung cấp kết nối MySQL cho ứng dụng Flask. Vì chúng tôi sẽ phát triển chức năng sử dụng cơ sở dữ liệu
    pip install flask-mysqldb
    
    3, vì vậy chúng tôi cần cài đặt mô-đun này để kết nối với cơ sở dữ liệu. Nó có thể được cài đặt bằng lệnh dưới đây
  • pip install flask-mysqldb
    

Tạo cơ sở dữ liệu MySQL

Chúng ta cần tạo cơ sở dữ liệu MySQL và sau đó bảng

pip install flask-mysqldb
5 để lưu trữ thông tin người dùng

Chúng tôi sẽ tạo bảng

pip install flask-mysqldb
5 bằng truy vấn bên dưới

________số 8_______

Chúng tôi cũng chèn một số bản ghi người dùng để kiểm tra chức năng đăng nhập

INSERT INTO `user` (`userid`, `name`, `email`, `password`) VALUES
(1, 'Jhon smith', '[email protected]', '123'),
(2, 'Adam William', '[email protected]', '123');

Triển khai đăng nhập và đăng ký người dùng

Chúng tôi sẽ tạo thư mục dự án

pip install flask-mysqldb
7 và cài đặt tất cả các mô-đun cần thiết


Sau đó, chúng tôi sẽ tạo tệp

pip install flask-mysqldb
8 Python và nhập các mô-đun cần thiết, chẳng hạn như
pip install flask-mysqldb
9,
CREATE TABLE `user` (
  `userid` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `user`
  ADD PRIMARY KEY (`userid`);
0 và các hàm trợ giúp

Chúng tôi cũng sẽ tạo thư mục

CREATE TABLE `user` (
  `userid` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `user`
  ADD PRIMARY KEY (`userid`);
1 trong thư mục dự án để giữ các tệp mẫu. ’

Sau đó, chúng tôi sẽ tạo chức năng

CREATE TABLE `user` (
  `userid` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `user`
  ADD PRIMARY KEY (`userid`);
2 trong
pip install flask-mysqldb
8 để triển khai chức năng đăng nhập của người dùng

@app.route('/login', methods =['GET', 'POST'])
def login():
    mesage = ''
    if request.method == 'POST' and 'email' in request.form and 'password' in request.form:
        email = request.form['email']
        password = request.form['password']
        cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
        cursor.execute('SELECT * FROM user WHERE email = % s AND password = % s', (email, password, ))
        user = cursor.fetchone()
        if user:
            session['loggedin'] = True
            session['userid'] = user['userid']
            session['name'] = user['name']
            session['email'] = user['email']
            mesage = 'Logged in successfully !'
            return render_template('user.html', mesage = mesage)
        else:
            mesage = 'Please enter correct email / password !'
    return render_template('login.html', mesage = mesage)

Chúng tôi sẽ tạo tệp mẫu

CREATE TABLE `user` (
  `userid` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `user`
  ADD PRIMARY KEY (`userid`);
4 trong thư mục
CREATE TABLE `user` (
  `userid` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `user`
  ADD PRIMARY KEY (`userid`);
1 và tạo biểu mẫu đăng nhập

Đây là tập tin hoàn chỉnh

CREATE TABLE `user` (
  `userid` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `user`
  ADD PRIMARY KEY (`userid`);
6

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>User Login Form</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
</head>
<body>	
<div class="container">
	<h2>User Login</h2>
	<form action="{{ url_for('login') }}" method="post">
	    {% if mesage is defined and mesage %}
			<div class="alert alert-warning">{{ mesage }}</div>
		{% endif %}
		<div class="form-group">
			<label for="email">Email:</label>
			<input type="email" class="form-control" id="email" name="email" placeholder="Enter email" name="email">
		</div>
		<div class="form-group">
			<label for="pwd">Password:</label>
			<input type="password" class="form-control" id="password" name="password" placeholder="Enter password" name="pswd">
		</div>    
		<button type="submit" class="btn btn-primary">Login</button>
		<p class="bottom">Dont't have an account?  <a class="bottom" href="{{url_for('register')}}"> Register here</a></p>
	</form>
</div>
</body>
</html>

Khi người dùng đăng nhập thành công, nó sẽ chuyển hướng đến

CREATE TABLE `user` (
  `userid` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `user`
  ADD PRIMARY KEY (`userid`);
7 để hiển thị trang đăng nhập. Đây là tập tin hoàn chỉnh của
CREATE TABLE `user` (
  `userid` int(11) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `user`
  ADD PRIMARY KEY (`userid`);
7