python实现注册登陆功能

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