import pymysql,hmac from flask import Flask, request, render_template
web=Flask(name)
#定义一个检查数据库函数,如果不存在用户表单就创建它
def check_sql(): conn = pymysql.connect('localhost','root','','webdata') webdata = conn.cursor() try: webdata.execute(r"CREATE TABLE IF NOT EXISTS userdata(id INT PRIMARY KEY AUTO_INCREMENT, user VARCHAR(30), password VARCHAR(100))") finally: webdata.close() conn.commit() conn.close()
#定义一个md5密码函数,转换用户密码
def to_md5(username,password): return hmac.new(username.encode('utf-8'),password.encode('utf-8'),'MD5').hexdigest()
#定义一个检查登录函数
def check_login(username,password): conn = pymysql.connect('localhost','root','','webdata') webdata = conn.cursor() webdata.execute(r'select * from userdata where user=%s',username) data = webdata.fetchall() try: if data != (): if data[0][2] == to_md5(username,password): return 'ok' else: return 'error' else: return 'unreg' finally: webdata.close() conn.commit() conn.close()
#定义一个检查注册函数
def check_reg(username,password): conn = pymysql.connect('localhost','root','','webdata') webdata = conn.cursor() webdata.execute(r'select * from userdata where user=%s',username) data = webdata.fetchall() try: if data != (): return 'failed' else: password=to_md5(username,password) webdata.execute(r'insert into userdata values(0,%s,%s)',(username,password)) print('新用户%s注册...'%username) return 'sucess' finally: webdata.close() conn.commit() conn.close()
#主页 @web.route('/',methods=['GET','POST'])
def home(): return render_template('home.html')
#注册页 @web.route('/reg',methods=['GET'])
def reg_form(): return render_template('reg.html')
@web.route('/reg',methods=['POST'])
def reg(): username = request.form['username'] password = request.form['password'] if username == '' or password == '': return render_template('reg.html',message='账户名或密码不能为空!') else: if check_reg(username,password) == 'sucess': return render_template('login.html',message='注册成功,请登录!') else: return render_template('reg.html',message='用户名已存在!')
#登录页 @web.route('/login',methods=['GET'])
def login_form(): return render_template('login.html')
@web.route('/login',methods=['POST'])
def login(): username = request.form['username'] password = request.form['password'] if username == '' or password == '': return render_template('login.html',message='账户名或密码不能为空!') else: if check_login(username,password) == 'error': return render_template('login.html',message='密码有误,请重新输入!') elif check_login(username,password) == 'ok': return render_template('login_ok.html',username=username) else: return render_template('login.html',message='未注册账号,请注册!')
@web.route('/login_ok',methods=['GET'])
def login_ok(): return render_template('login_ok.html')
# if name == 'main': check_sql() web.run()
Sign in to make a reply
南柯一梦兯
import pymysql,hmac from flask import Flask, request, render_template
web=Flask(name)
#定义一个检查数据库函数,如果不存在用户表单就创建它
def check_sql(): conn = pymysql.connect('localhost','root','','webdata') webdata = conn.cursor() try: webdata.execute(r"CREATE TABLE IF NOT EXISTS userdata(id INT PRIMARY KEY AUTO_INCREMENT, user VARCHAR(30), password VARCHAR(100))") finally: webdata.close() conn.commit() conn.close()
#定义一个md5密码函数,转换用户密码
def to_md5(username,password): return hmac.new(username.encode('utf-8'),password.encode('utf-8'),'MD5').hexdigest()
#定义一个检查登录函数
def check_login(username,password): conn = pymysql.connect('localhost','root','','webdata') webdata = conn.cursor() webdata.execute(r'select * from userdata where user=%s',username) data = webdata.fetchall() try: if data != (): if data[0][2] == to_md5(username,password): return 'ok' else: return 'error' else: return 'unreg' finally: webdata.close() conn.commit() conn.close()
#定义一个检查注册函数
def check_reg(username,password): conn = pymysql.connect('localhost','root','','webdata') webdata = conn.cursor() webdata.execute(r'select * from userdata where user=%s',username) data = webdata.fetchall() try: if data != (): return 'failed' else: password=to_md5(username,password) webdata.execute(r'insert into userdata values(0,%s,%s)',(username,password)) print('新用户%s注册...'%username) return 'sucess' finally: webdata.close() conn.commit() conn.close()
#主页 @web.route('/',methods=['GET','POST'])
def home(): return render_template('home.html')
#注册页 @web.route('/reg',methods=['GET'])
def reg_form(): return render_template('reg.html')
@web.route('/reg',methods=['POST'])
def reg(): username = request.form['username'] password = request.form['password'] if username == '' or password == '': return render_template('reg.html',message='账户名或密码不能为空!') else: if check_reg(username,password) == 'sucess': return render_template('login.html',message='注册成功,请登录!') else: return render_template('reg.html',message='用户名已存在!')
#登录页 @web.route('/login',methods=['GET'])
def login_form(): return render_template('login.html')
@web.route('/login',methods=['POST'])
def login(): username = request.form['username'] password = request.form['password'] if username == '' or password == '': return render_template('login.html',message='账户名或密码不能为空!') else: if check_login(username,password) == 'error': return render_template('login.html',message='密码有误,请重新输入!') elif check_login(username,password) == 'ok': return render_template('login_ok.html',username=username) else: return render_template('login.html',message='未注册账号,请注册!')
@web.route('/login_ok',methods=['GET'])
def login_ok(): return render_template('login_ok.html')
# if name == 'main': check_sql() web.run()