login.html页面css
<!DOCTYPE html> <html lang="en"> <head> <title></title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="css/style.css" rel="stylesheet"> </head> <body> <form method="get" action='/login'> <label>用户名:<input type="text" name="user" value=""></label><br> <label>密码:<input type="password" name="password" value=""></label><br> <input type="submit" value="登陆"> </form> </body> </html>
regist.html页面html
<!DOCTYPE html> <html lang="en"> <head> <title></title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="css/style.css" rel="stylesheet"> </head> <body> <form method="get" action='/registuser'> <label>用户名:<input type="text" name="user" value=""></label> <label>密码:<input type="password" name="password" value=""></label> <label>昵称:<input type="text" name="nickname" value=""></label> <input type="submit" value="注册"> </form> </body> </html>
pyhton后端python
main.pymysql
#!/usr/bin/python3.5 # -*- coding: UTF-8 -*- # 导入数据库模块 import pymysql # 导入Flask框架,这个框架能够快捷地实现了一个WSGI应用 from flask import Flask # 默认状况下,flask在程序文件夹中的templates子文件夹中寻找模块 from flask import render_template # 导入前台请求的request模块 from flask import request import traceback import datetime #!/usr/bin/python import json # 传递根目录 app = Flask(__name__) # 默认路径访问登陆页面 @app.route('/') def login(): return render_template('login.html') # 默认路径访问注册页面 @app.route('/regist') def regist(): return render_template('regist.html') # 设置响应头 def Response_headers(content): resp = Response(content) resp.headers['Access-Control-Allow-Origin'] = '*' return resp # 获取注册请求及处理 @app.route('/registuser') def getRigistRequest(): # 把用户名和密码注册到数据库中 user_id = request.args.get('user') user_pwd = request.args.get('password') user_nick = request.args.get('nickname') dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 链接数据库,此前在数据库中建立数据库TESTDB db = pymysql.connect("localhost", "user", "password", "DBNAME") # 使用cursor()方法获取操做游标 cursor = db.cursor() # SQL 插入语句 # sql = "INSERT INTO user(user, pwd, nick_name) VALUES (" + request.args.get('user') + ", " + request.args.get('password') + ")" sql = "INSERT INTO user(user, pwd, nick_name, creattime) VALUES ('%s', '%s', '%s', '%s')" % ( user_id, user_pwd, user_nick, dt) try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() # 注册成功以后跳转到登陆页面 return render_template('login.html') except: # 抛出错误信息 traceback.print_exc() # 若是发生错误则回滚 db.rollback() return '注册失败' # 关闭数据库链接 db.close() # 获取登陆参数及处理 @app.route('/login') def getLoginRequest(): # 查询用户名及密码是否匹配及存在 # 链接数据库,此前在数据库中建立数据库TESTDB db = pymysql.connect("localhost", "user", "password", "DBNAME") # 使用cursor()方法获取操做游标 cursor = db.cursor() # SQL 查询语句 user_id = request.args.get('user') user_pwd = request.args.get('password') sql = "select * from user where user=%s and pwd=%s" %(user_id, user_pwd) try: # 执行sql语句 cursor.execute(sql) results = cursor.fetchall() print(len(results)) if len(results) == 1: data = {} data["code"] = '登陆成功' for row in results: data["id"] = row[0] data["pwd"] = row[1] data["name"] = row[2] data["time"] = row[3] return json.dumps(data) else: return '用户名或密码不正确' # 提交到数据库执行 db.commit() except: # 若是发生错误则回滚 traceback.print_exc() db.rollback() # 关闭数据库链接 db.close() # 使用__name__ == '__main__'是 Python 的惯用法,确保直接执行此脚本时才 # 启动服务器,若其余程序调用该脚本可能父级程序会启动不一样的服务器 if __name__ == '__main__': app.run(port=3000)
数据库格式sql