Flask学习笔记(九)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


flask框架使用mysql实现用户注册登录系统

通过前端(index.html,regist.html)和后端部分运行程序默认进入登录界面通过输入注册部分的路由进行注册
前端部分:

<!DOCTYPE html>
 <html>
 <head>
     <meta  charset="UTF-8">
     <title>用户登录</title>
 </head>
 <body>
     <h1>登录</h1>
     <form  method="post">
         <input type="text"  name="user" >
         <input  type="password" name="pwd" >
         <input  type="submit" name="登录">{{msg}}
     </form>
 </body>
 </html>

导入扩展:

import pymysql
from flask import Flask
from flask import render_template
from flask import request
import traceback
import win32api,win32con

登录注册部分路由的设置

@app.route('/')//默认登录界面
def login():
    return render_template('login.html')
@app.route('/regist')//访问注册
def regist():
    return render_template('regist.html')
@app.route('/registuser')//获取注册信息储存到数据库里
def getRigistRequest():

连接数据库导入提前创建的数据库demo

db = pymysql.connect(host="localhost", user="root", password="20220821", database="demo",charset="utf8")

使用cursor()方法获取操作游标

cursor = db.cursor()

获取输入内容

username=request.args.get('user')
password=request.args.get('password')
password2=request.args.get('password2')
print(password)
print(password2)

通过对比pw是否等于pw2判断注册密码是否可行并导入数据库

if password==password2:
        sql = "INSERT INTO user(user, password) VALUES ("+username+", "+password+")"
        try:
            # 执行sql语句
            cursor.execute(sql)
            db.commit()
             #注册成功之后跳转到登录页面
            return render_template('login.html')
        except:
            #抛出错误信息
            traceback.print_exc()
            # 如果发生错误则回滚
            db.rollback()
            return '注册失败'
        # 关闭数据库连接
        db.close()

两次密码输入错误后

  else:
        win32api.MessageBox(0,"两次输入密码不一致","提醒",win32con.MB_ICONWARNING)
        return render_template('regist.html')//返回注册页面

登录部分 # 连接数据库,此前在数据库中创建数据库test查询是否存在

@app.route('/login')
def login():
 db = pymysql.connect(host="localhost", user="root", password="20220821", database="flask",charset="utf8")

使用cursor()方法获取操作游标后通过select()查询语句

  cursor = db.cursor()
  sql = "select * from user where user=" + request.args.get('user') + " and password=" + request.args.get(
        'password') + ""
    try:
        cursor.execute(sql)
        results = cursor.fetchall()
        print(len(results))
        if len(results) == 1:
            return '登录成功'
    else:
            return '用户名或密码不正确'
            db.commit()
    except:
        traceback.print_exc()
        db.rollback()
    db.close()
    if __name__ == '__main__':
    app.run(debug=True)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值