from flask import Flask,request
from flask_mongoengine import MongoEngine
from mongoengine import *
app=Flask(__name__,static_url_path='',static_folder='static')
app.config['MONGODB_SETTINGS']={'db':'jikexueyuan'}
db=MongoEngine(app)
#定义teacher对象
class Teacher(Document):
name = StringField(required=True)
password = StringField(required=True)
classname = StringField(required=True)
phonenum = StringField(required=True)
@app.route('/')
def hello_world():
return 'Hello World!'
#配置URL
@app.route('/user2_register',method=['POST'])
def user2_register():
if 'username' in request.form:
username = request.form['username']
else:
return{'status':'failed','data':'username required'}
if 'password' in request.form:
password = request.form['password']
else:
return {'status':'failed','data':'password required'}
#密码要求8~16位
if len(password)<8 or len(password)>16:
return {'status':'failed','data':'password too short or too long'}
#密码中不能有空格
if ' ' in password:
return {'status':'failed','data':'invalid type'}
#用户名不能重复申请
if Teacher.objects(username=username).count()>0:
return{'status':'failed','data':'duplicated username'}
if 'classname' in request.form:
classname = request.form['classname']
else:
return{'status':'failed','data':'classname required'}
if 'phonenum' in request.form:
phonenum = request.form['phonenum']
else:
return{'status':'failed','data':'classname required'}
# 若符合要求则将变量存为一个Teacher对象
Teacher(username=username,password=password,
classname=classname,phonenum=phonenum)
return{'status':'success'}
#定义判断用户名与密码是否对应的函数
def auth(username,password):
users=Teacher.objects(username=username)
if users.count()==0:
return False
if users[0].password !=password:
return False
return True
@app.route('/user2_login',methods=['POST'])
def user2_login():
if 'phonenum' in request.form:
phonenum = request.form['phonenum']
else:
return{'status':'failed','data':'phonenum required'}
if 'password' in request.form:
password = request.form['password']
else:
return{'status':'failed','data':'password required'}
#用户名或密码错误
if not auth(username,password):
return{'status':'failed','date':'invalid username or password'}
return {'status':'success'}
以上代码用以实现教师用户的登录,注册功能,以及配置相关URL。
本文章系web开发小白所写,如有错漏,敬请指摘。