Discuss / Python / 简单的登录注册web

简单的登录注册web

Topic source

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()


  • 1

Reply