首页 > 其他分享 >登录和注册功能的实现

登录和注册功能的实现

时间:2023-08-24 22:13:35浏览次数:45  
标签:功能 登录 cursor values user 注册 sql id conn

本来使用flask框架制作网页并实现登录和注册在几天前就已经实现了,不过当时没有设计到一些数据库之间的关联,而且使用了的是pymysql并且反复的打开数据库的方式。现在这次使用的是数据库池的方式,然后不同的数据库之间也设定了外键。

import pymysql
from dbutils.pooled_db import PooledDB

class MysqlConfig(object):

    DEBUG = True
    SECRET_KEY = "whatisyourname"
    '''SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:121061@localhost:3306/mall"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    SQLALCHEMY_ECHO = True'''

'''如果使用的是SQLALchemy的话,然后是“mysql+pymysql//......”这种的话,
 就需要联系上下文来创建数据库'''

POOL = PooledDB(
        creator=pymysql, #使用连接数据库的模块
        maxconnections=6, # 连接池允许的最大链接数
        mincached=2, # 初始化的时候至少创建两个链接
        blocking=True,# 连接池中如果没有可用的链接,就阻塞等待

        host='127.0.0.1',
        port=3306,
        user='root',
        password='139700',
        database='mall',
        charset='utf8'
    )

然后用数据库池设计了一些方法。比如下面的登录功能。

def cursor_login(sql, keyword):
    conn = POOL.connection()
    cursor = conn.cursor()
    cursor.execute(sql, keyword)
    result = cursor.fetchone()
    cursor.close()
    conn.close()
    return result
    #传出来一个查询结果
    #sql需要自己填写,使用sql语句

和注册功能。

def cursor_insert_justid(sql, values):
    conn = POOL.connection()
    cursor = conn.cursor()
    cursor.execute(sql, values)
    conn.commit()
    last_insert_id = cursor.lastrowid #获取最后输入的行的id
    cursor.close()
    conn.close()
    return last_insert_id

def cursor_insert(sql, values):
    conn = POOL.connection()
    cursor = conn.cursor()
    cursor.execute(sql, values)
    conn.commit()
    cursor.close()
    conn.close()

但是注册功能实现的不是很对。因为正常的写法出了一些问题,所以不得不这么写。
下面是本来的程序。

@register.route('/register', methods=['POST'])
def registerlogic():
    if request.method == 'POST':
        account = request.form['account']
        originpassword = request.form['password']
        password = hash_password(originpassword)
        #这一部分是通过sql语句往user表里面写入用户的账户密码信息
        sql = "insert into user(account, password) values(%s, %s)"
        values = (account, password)
        last_id = cursor_insert_justid(sql, values)
        user = User.query.filter(account=account).first()
        user_id = user.id
        sql = "insert into court(user_id) values(%s)"
        values = (user_id, )
        return render_template('login.html')

这里是想着想插入account和password,然后再获取account所在行的id,然后通过cursor_insert方法传输到court表的user_id中。(user_id设定的是court表中的外键)但是频繁的出问题。最后只好将功能分开写。

标签:功能,登录,cursor,values,user,注册,sql,id,conn
From: https://www.cnblogs.com/mxyj/p/17655252.html

相关文章

  • golang之增加版本信息功能
    在实际开发中,当开发完一个apiserver特性后,会编译apiserver二进制文件并发布到生产环境,很多时候为了定位问题和出于安全目的(不能发错版本),我们需要知道当前apiserver的版本,以及一些编译时候的信息,如编译时Go的版本、Git目录是否clean,以及基于哪个gitcommmit来编译的。......
  • Winter '24发布在即,Salesforce Flow中的最热功能不容错过!
    FlowBuilder作为自动化领域的新秀,它在功能方面已经远远超过WorkflowRules和ProcessBuilder,随着WorkflowRules和ProcessBuilder的退役,目前所有自动化都需要迁移到Flow。Winter'24发布在即,Flow中的亮点功能不容错过!一起来先睹为快吧~01在Record-TriggeredFlow中创建自定......
  • 八月更新 | CI 构建计划触发机制升级、制品扫描 SBOM 分析功能上线!
    点击链接了解详情这个八月,腾讯云CODINGDevOps对持续集成、制品管理、项目协同、平台权限等多个产品模块进行了升级改进,为用户提供更灵活便捷的使用体验。以下是CODING新功能速递,快来看看是否有您期待已久的功能特性:01CI构建计划触发机制升级在原有代码变更及合并请求......
  • WinForm微信扫码登录
    源码还需优化,不喜勿喷。微信官方文档: https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html前期准备:1.微信开放平台开发者资质认证  https://open.weixin.qq.com/  费用300大概1-2天时间 2.创建网站应用,需要已备案域名、......
  • 视频云存储/安防监控视频智能分析网关V3:占道经营功能详解
    违规占道经营者经常会在人流量大、车辆集中的道路两旁摆摊,导致公路交通堵塞,给居民出行的造成不便,而且违规占路密集的地方都是交通事故频频发生的区域。TSINGSEE青犀视频云存储/安防监控视频/AI智能分析网关V3运用视频+AI智能分析技术,实现对城市管理中违规、违法事件实时监控监......
  • 浅谈视频汇聚平台EasyCVR中AI中台的应用功能
    AI中台是将人工智能技术如深度学习、计算机视觉、知识图谱、自然语言理解等模块化,集约硬件的计算能力、算法的训练能力、模型的部署能力、基础业务的展现能力等人工智能能力,结合中台的数据资源,封装成整体中台系统。在EasyCVR视频共享融合云平台中,AI中台是专门提供人工智能视频......
  • java实现大文件上传功能
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求         <formid="postForm"action="${pageContext.request.contextPath}/UploadServlet"method="post"e......
  • SQL Server 2022新功能概览
     开始之前  本篇文章仅仅是针对SQL Server 2022新推出功能的概览,以及我个人作为用户视角对于每个功能的理解,有些功能会结合一些我的经验进行描述,实际上,SQL Server 2022在引擎层面的增强的确算是里程碑级别,涉及到的每一个功能点展开都可以单独开出一篇文章。但本篇文章只......
  • Git SSH密钥登录的坑
    在gitlab上面已经配置了公钥,本地进行gitclone时发生如下错误@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WARNING:UNPROTECTEDPRIVATEKEYFILE!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Permissions0777for......
  • IntersectionObserver 实现图片懒加载、列表无限滚动等功能
    过去,要检测一个元素是否可见或者两个元素是否相交并不容易,比如实现图片懒加载、内容无限滚动等功能时,都需要通过​getBoundingClientRect()​写大量的逻辑计算或者依靠scroll事件监听等性能很差方式来实现。现在,依靠IntersectionObserver(交叉观察器)我们能非常便捷且高效的实现上......