项目文件目录图:
main.py:
from flask import Flask, request, render_template, jsonify, redirect, url_for
from settings import mongodb
app = Flask(__name__)
@app.route('/reg', methods=["POST", 'GET'])
def reg():
if request.method == 'GET':
return render_template('register.html')
else:
user_info = request.form.to_dict()
res = mongodb.user.insert_one(user_info)
print(res)
# 在数据库中验证是否注册成功
if res.inserted_id:
print(res.inserted_id)
print(type(res.inserted_id))
return redirect(url_for('login'))
else:
return "注册失败"
@app.route('/login', methods=["POST", 'GET'])
def login():
if request.method == 'GET':
return render_template('login.html')
else:
user_info = request.form.to_dict()
user_info_dict = mongodb.user.find_one(user_info)
print(user_info_dict)
if user_info_dict:
user_info_dict['_id'] = str(user_info_dict['_id']) # 数据格式转变,否则报错
return jsonify(user_info_dict)
else:
return '登录失败'
if __name__ == '__main__':
app.run()
settings.py:
from pymongo import MongoClient
cli = MongoClient('192.168.124.104', 27017)
mongodb = cli['test']
print(mongodb)
login.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form action="" , method="post">
username: <input type="text" , name="username">
password: <input type="password" , name="password">
<input type="submit" , value="登录">
</form>
</body>
</html>
reg.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>reg</title>
</head>
<body>
<form action="" , method="post">
username: <input type="text" , name="username">
password: <input type="password" , name="password">
other: <input type="text" , name="other">
<input type="submit" , value="注册">
</form>
</body>
</html>
程序运行:
在mongodb数据库中查看新注册的用户名: