一、connect database
from flask import Flask, render_template, flash, request, url_for, redirect
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, EqualTo
from pymongo import MongoClient
# mongodb
from pymongo import MongoClient
myclient = MongoClient("mongodb://127.0.0.1:27017")
mydb = myclient["supermarket"]
mycol = mydb["members"]
myusers = mydb["users"]
print("Connection Successful")
二、login function, use for ... in to access data from database
# create form class
class Login2(FlaskForm):
username = StringField('username', validators=[DataRequired()])
password = PasswordField('password', validators=[DataRequired()])
submit = SubmitField('Submit')
@app.route('/login', methods=['GET', 'POST'])
def login():
login_form = Login2()
if request.method == 'POST':
vals = request.form
username = vals.get('username')
password = vals.get('password')
#get all users list
showUsers = []
if login_form.validate_on_submit():
#getUsers is a cursor instance
getUsers = myusers.find({"username":username})
getAllUsers = myusers.find()
#.conut(), you can know whether there is a user
returnCount = getUsers.count()
if returnCount != 0:
for val in getUsers:
#use for ... in ... to access data from cursor object
for users in getAllUsers:
# put all users obj in the showUsers list
showUsers.append(users)
return render_template('index.html', username=val['username'], users = showUsers)
else:
return render_template('register.html',form=login_form, status = "No User")
else:
return render_template('register.html', flag = 'login', form=login_form)