用户注册登录(解决数据持久化)对接mysql数据库

鸿蒙——关系型数据库 本文介绍了基于鸿蒙系统内置数据库RelationalStore实现用户管理系统的技术方案。系统包含登录、注册、用户管理三大功能模块,采用关系型数据库存储用户数据(用户名、密码、手机号等)。关键技术点包括:1)在EntryAbility生命周期初始化数据库,配置安全级别和存储路径;2)通过SQL语句创建用户表结构;3)预置测试数据验证功能;4)封装工具类统一管理数据库实例,提供增删改查接口。系统设计遵循鸿蒙沙箱机制,使用轻量级本地数据库文件(.db),既保证数据持久化又避免安装外部数据库。方案特别强调数据库实 阅读详情

1、个人版本

def database_connect():
    import pymysql
    db = pymysql.connect('127.0.0.1','root','123','student_info_library')
    cursor = db.cursor()
    sql = 'select * from student_table;'
    cursor.execute(sql)
    user_list_tuple = cursor.fetchall()
    i = 0
    while i < len(user_list_tuple):
        user_list.append(user_list_tuple[i])

        i += 1

    cursor.close()
    db.close()
    print('提取的用户名信息:', user_list)
    print('数据提取成功,断开数据库连接')









def menu():
    print('请输入相应数字进入相应功能:\n1、注册\n2、登录\n3、退出')


def register():
    user_reg = input('请输入要注册的用户名:')
    password_reg = input('请输入要注册的密码:')
    user_tuple = (user_reg,password_reg)
    has_reg = 0 #列表中不存在注册的用户
    i = 0
    while i < len(user_list):
        if user_reg == user_list[i][0]:
            has_reg = 1
        i += 1
    if has_reg == 0:
        new_user_list.append(user_tuple)
        print('注册成功')
    else:
        print('此用户名已注册,请换其他用户名重新注册')
    #print(user_list)
    print(new_user_list)#新注册用户

def login():
    user_login = input('请输入已注册的用户名:')
    password_login = input('请输入已注册用户名的密码:')
    is_true = 0 #表示登录不成功
    i = 0
    while i < len(user_list):
        if user_login in user_list[i] and password_login in user_list[i]:
            is_true = 1#修改状态,表示登录成功
        i += 1
    if is_true == 1:
        print('登录成功')
    else:
        print('用户名或密码有误')
    #user_login_tuple = (user_login,password_login)
    # if user_login_tuple in user_list:
    #     print('登录成功')
    # else:
    #     print('用户名或密码有误')


def exit():
    import sys
    if len(new_user_list) > 0:

        save_data()
    print('谢谢使用')
    sys.exit()

def save_data():
    import pymysql
    db = pymysql.connect('127.0.0.1','root','123','student_info_library')
    cursor = db.cursor()
    sql = 'insert into student_table (username,password) values (%s,%s);'
    i = 0
    while i < len(new_user_list):
        user_info = new_user_list[i]
        cursor.execute(sql,user_info)

        i += 1

    db.commit()

    cursor.close()
    db.close()
    print(new_user_list)
    print('新数据添加完成!断开数据库连接')




user_list = []
#存储新的用户信息
new_user_list = []
database_connect()
while True:
    menu()
    num = input('请输入功能选项:')
    if num == '1':
        register()
    elif num == '2':
        login()
    elif num == '3':

        exit()
    else:
        print('输入有误,请重新输入')

2、专业版本

"""
1.什么时候取数据?
    程序最开始的地方,将所有数据,从数据库中提取出来,存储到列表中
2.什么时候存储数据?
    退出时候,存储数据


"""
import sys
import pymysql
#存储所有用户信息的列表
user_list = []
#存储新用户信息的列表
new_user_list = []

#定义从数据库中加载数据的函数(查询操作)
def loadData():
    #1.链接数据库
    db = pymysql.connect('localhost','root','123','db2')
    #2.创建游标
    cursor = db.cursor()
    #3.sql
    sql = 'select * from user'
    #4.执行sql
    cursor.execute(sql)
    #将查询到的所有数据存储在all_users中
    all_users = cursor.fetchall()
    print(all_users)
    #5.将数据加入到列表
    i = 0
    while i < len(all_users):
        #将所有用户信息,循环存储到列表中
        user_list.append(all_users[i])
        i += 1
    print(user_list)
    #6.关闭游标,数据库
    cursor.close()
    db.close()

#展示主菜单的函数
def showMenu():
    print('1、注册\n2、登录\n3、退出')
#注册功能的函数
def register():
    user_register = input('请输入要注册的用户名')
    password_register = input('请输入要注册的密码')
    # 小元组,类似列表,但是不能修改
    user_tuple = (user_register, password_register)
    #记录是否已经被注册
    has_register = 0
    #遍历现有存储用户信息的列表
    i = 0#0表示没有被注册,如果状态改为1,表示已经被注册
    while i < len(user_list):
        #通过索引值获取到用户对应的元组数据  (用户名,密码)
        user_t = user_list[i]
        #判断输入的用户名,在列表中已经存在
        if user_register in user_t:
            #修改状态,表示已经被注册
            has_register = 1
        i += 1
    if has_register == 0:
        # 将小元组看成一个元素,存储到列表中
        new_user_list.append(user_tuple)
        print('注册成功')
    else:
        print('当前用户名已存在')
    print(user_list)
#登录功能的函数
def login():
    user_login = input('请输入之前注册的用户名')
    password_login = input('请输入之前注册的密码')
    #定义一个变量用来表示是否应该登录成功
    is_true = 0#0表示登录不成功
    i = 0
    while i < len(user_list):
        if user_login in user_list[i] and password_login in user_list[i]:
            #修改状态,表示登录成功
            is_true = 1
        i += 1
    if is_true == 1:
        print('登录成功')
    else:
        print('用户名或密码有误')
    # 将输入的用户名跟密码存储到元素中
    # user_login_tuple = (user_login, password_login)
    # 判断操作
    # if user_login_tuple in user_list:
    #     print('登录成功')
    # else:
    #     print('用户名或者密码有误')
#将新注册用户信息,存储到数据库
def saveData():
    # 1.链接数据库
    db = pymysql.connect('localhost', 'root', '123', 'db2')
    # 2.创建游标
    cursor = db.cursor()
    # 3.sql
    sql = 'insert into user (name,password) values (%s,%s)'
    # 4.执行sql
    i = 0
    while i < len(new_user_list):
        user = new_user_list[i]
        cursor.execute(sql, user)
        i += 1
    #commit
    db.commit()
    #关闭游标、数据库
    cursor.close()
    db.close()

#退出功能的函数
def sys_exit():
    #如果新用户列表有数据,才执行写入数据库操作,否则不执行
    if len(new_user_list) > 0:
        saveData()
    print('谢谢使用')
    sys.exit()
#调用从数据库中加载数据的函数
loadData()
while True:
    #调用展示主菜单功能
    showMenu()
    choice = input('请选择1-3:')
    if choice == '1':
        #调用注册函数
        register()
    elif choice == '2':
        #调用登录函数
        login()
    elif choice == '3':
        #调用退出函数
        sys_exit()
    else:
        print('输入有误,请重新输入')
实现用户注册和登录功能的Java项目 我们将使用MySQL数据库,您可以根据自己的需要选择其他数据库。我们将创建一个名为UserDAO的接口,并使用JPA提供的CrudRepository接口来处理基本的CRUD操作。在这个Main类中,我们通过Spring的ApplicationContext获取了UserService的实例,并使用实例来测试注册和登录功能。在这个服务类中,我们使用了UserDAO来检查用户名是否已存在,并在数据库中保存新用户的注册信息。我们将创建一个名为User的实体类来表示用户信息,并使用JPA注解来映射到数据库表。 阅读详情

相关推荐

PHP和MySQL构建简易用户注册验证系统

数据库是存储、管理和检索信息的系统。在Web开发中,数据库是不可或缺的组成部分,它允许开发者高效地处理大量结构化数据。一个设计良好的数据库不仅能够提升数据访问效率,还能确保数据的完整性和一致性。数据库使用特定的数据模型来组织数据,常见的数据模型包括关系模型、文档模型等。数据库的重要性在于它能够为Web应用程序提供持久化存储解决方案,保证用户信息、交易记录等数据在应用重启后仍然能够被访问和使用。此外,通过数据库的查询优化,可以大幅提升应用程序的性能和用户体验。

weixin_42591908的博客 1072

【数据库篇】——4.用户登录注册系统设计和分析思路

                                                              学习下一节:util包中创建数据库连接的工具类DBUtil.java1.功能需求分析  本系统的功能就两个:用户登录和注册。a.用户登录需要我们根据用户的输入的信息到数据查询用户的账号密码是否能够匹配的上。b.用户注册需要我们将用户的信息加入到数据库中。2.架构设计:MVC的...

小火龙的博客 1万+

用户注册及验证代码(连接数据库)

原创,里面会有界面图片,因为不包含图片,所以可能图片无法显示,但代码是绝对没有问题的。。

10.注册和登录功能实现(3)—— 注册数据写入数据库

现在数据获取到了,提示也有了,我们需要把注册的数据写入到数据库,这一步很简单,直接使用之前提到过的方法,但是我们不能直接把明文密码写入到数据库中,那样做是十分不安全的,我们需要将其加密之后再写进去,具体是用到werkzeug.security中的generate_password_hash这个函数,将字符串变成hash值。我们可以在Use...

weixin_34062469的博客 4473

java源代码,实现登录等功能

java实现简单的登录注册功能,数据存储在一维数组中,实现登录,注册,修改密码,修改信息等功能,可以在讲课中当例子使用。

网站登录持久化Cookie方案

持久化登录 cookies 也就是当用户在登录框里点击“记住我的”的按钮后把 cookies 保存到用户的浏览器上

java web 数据库登录,简单粗暴JavaWeb-第四篇:通过数据库实现用户注册、登录

现在我们通过jdbc进行数据库操作,将第三步的登录功能升级为登录、注册两个功能,并且基于mysql数据库,经过这一步,最最基本的工程就有雏形了,后面就可以根据需求进行优化,譬如使用mybatis(方便好多)等。1、修改登录注册界面首先,改进首页index.jsp,增加注册功能,代码如下:首页界面如图2、引入jdbc包及实现查询和插入方法引入jdbc包,在pom.xml文件中添加相关依赖mysqlm...

weixin_39866974的博客 856

科研党必备:5分钟搞定MATLAB闪退问题(含R2020a-R2023b各版本适配)

本文针对科研人员常见的MATLAB闪退问题,提供了从R2020a到R2023b各版本的适配解决方案。通过分析六大诱因和版本定制化修复方法,帮助用户快速诊断和解决闪退问题,包括内存优化、高级调试和预防性维护等实用技巧,确保科研计算的连续性和稳定性。

t1u2v的博客 1966

注册-登录等功能的综合运用(有数据库的)

如图所示布局连接数据库的字符串: private const string CONNSTRING = @"Data Source=./SQLEXPRESS;AttachDBFilename=|DataDirectory|users.mdf;Integrated Security=True;User Instance=True"; 增加写死的用户按钮代码: using (SqlConnection conn = new SqlConnection(CONNSTRING))

老白干的zone 868

Kaggle | 总奖池超200万美金的数学竞赛AIMO2冠军方案

••••结论1:通过结合高质量大规模数据集、工具集成推理和生成式选择方法,可以构建在挑战性数学问题上达到最先进水平的语言模型。本文的方法在 AIMO-2 竞赛中的胜利以及在多个数学基准上的 SOTA 结果验证了这一策略的有效性。结论2:发布 OpenMathReasoning 数据集、OpenMath-Nemotron 模型和代码是社区的宝贵财富。

hxshine的博客 1196

工作:三菱PLC与伺服之CC-Link IE Field Network通讯应用

CC-LINK-IE

好记性不如烂笔头 2万+

使用cookie或者localstorage做数据持久化及登录功能(40分钟视频在文末)

使用cookie或者localstorage做数据持久化(40分钟视频在文末)

qq_30351747的博客 3033

Yocto下载加速秘籍:用清华镜像+PREMIRRORS配置让构建速度翻倍

本文详细解析了如何通过配置Yocto的PREMIRRORS优先级策略,并利用清华大学等国内镜像源,显著加速构建过程中的源码下载。文章提供了具体的配置示例和验证方法,帮助开发者解决网络瓶颈,实现构建速度翻倍,提升开发效率。

game4的博客 276

Java SpringBoot+Vue3+MyBatis 开发景区民宿预约系统系统源码|前后端分离+MySQL数据库

直接拿走,意外获得200多套代码,需要的滴我Java SpringBoot+Vue3+MyBatis 开发景区民宿预约系统系统源码|前后端分离+MySQL数据库(可提供说明文档(通过*AIGC*)

yydYYDD的博客 359

CloudCompare&PCL 体元累加法(树冠体积计算)

文章目录

dayuhaitang1的博客 1553

Openclaw 附录B 常用Skills清单

核心作用支持URL、网页、PDF、图片、音频和YouTube视频的摘要与字幕提取,由OpenClaw创始人@steipete开发的官方内置Skill。安装⚠️说明:原推荐的summarize未在ClawHub验证到,YouTube字幕提取功能已内置于summarize中。使用场景“提取这个2小时Next.js教程视频的核心代码逻辑,按章节整理成学习笔记”推荐指数:⭐⭐⭐⭐。

Maynor的博客 857

用户注册登录数据持久化实战:从本地存储到 MySQL 数据库对接

用 Python 把用户注册登录数据从内存列表迁移到 MySQL,本文给出建表 SQL、pymysql 连接配置与注册登录可复制代码,并演示写入查询验证。配合 TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的模型接口,可快速排查 401、连接失败与字段报错,完成数据持久化闭环。

weixin_35749786的博客 5

Clawdbot安装教程:从零开始到接入飞书

这几天,Clawdbot把整个科技圈都刷屏了。就是这个胖逼小龙虾🦞。不过现在改名叫Moltbot了。原因很简单:被Anthropic告了。Anthropic觉得Clawdbot这名字太像Claude Code的延伸产品,要求改名。真的,Anthropic你这家伙…更离谱的是,因为Clawdbot太火,Mac Mini都被抢断货了。无数人为了用它,疯狂买Mac Mini。我刚打开美团外卖,发现居然没货了???

Maynor的博客 2179

P2. 配置MySQL和用户注册登录模块

实现 King of Bots 的第二部分,注册和登录模块的实现,具体配置了MySQL,介绍了SpringBoot 如何通过 MyBatis-Plus 调用数据库数据,SpringBoot 写后端逻辑的基本流程,前端和后端通过 ajax 交互的方法,用户密码的加密,登录状态的持久化等。

m0_67850950的博客 585

【2026年阿里巴巴集团暑期实习- 4月25日-算法岗-第二题- 矩阵计数】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 给定两个非负整数序列a和b,构造n×m矩阵C,其中C[i][j]=a[i]×b[j]。统计矩阵中元素≥k的数量。解法是先对数组b排序,然后对于每个a[i],若k=0则直接累加m;若a[i]=0且k>0则跳过;否则计算需要的最小b[j]值,在排序后的b中使用二分查找确定满足条件的元素数量。时间复杂度为O((n+m)log m),空间复杂度O(1)。代码实现了排序和二分查找的高效组合。

m0_73659489的博客 65

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JSP+MySQL用户注册系统实现详解

本文介绍了一个基于JSP和MySQL的用户注册系统实现方案。系统采用MVC架构,前端使用JSP页面配合jQuery进行表单验证,包括用户名长度、密码格式及一致性检查等实时验证功能。后端通过JavaBean封装业务逻辑,使用JDBC连接MySQL数据库,并采用PreparedStatement防止SQL注入。文章详细展示了注册页面实现代码、前端验证逻辑以及数据接收处理流程,同时介绍了JavaBean如何实现数据库操作。该系统实现了从用户输入到数据存储的完整注册流程,具有较好的安全性和用户体验。

学无止境 4852

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

解决无法成功无法用户注册类似的插入数据到数据库问题(mybaits+servlet+jsp)

例如:下面使用有三个类:Db,UserDao和ServletResgister用来构写用户注册逻辑:try{//指定配置文件地址//InputStream是一个输出流对象,mybatis提供的Resource类getResourceAsStream()获取文件//调用SqlSessionFactoryBuilder的build方法获取输入流,在 MyBatis 的数据库操作体系中起着关键的初始化和配置作(即解析配置文件)}}}} }}@Override。

xjdkjsnsns的博客 501

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JavaWeb-SpringBoot_使用H2数据库实现用户注册登录

  使用Gradle编译项目  传送门   前端资源同:使用MySQL数据库实现用户管理_demo  传送门   H2:SpringBoot内置持久化数据库 使用H2数据库实现用户注册登录   用户可以在index.html点击“注册”按钮将信息存储到h2数据库中,当点击“登录”按钮时,如果用户输入的是正确的账号密码,跳转到welcome.html页面...

weixin_30596165的博客 587

基于OpenCV的智能停车场车位识别与数据管理系统-支持MySQL持久化与Redis缓存加速

随着城市车辆数量的持续增长,停车资源紧张与车位管理效率低的问题日益凸显。为了实现对停车场车位的实时监测与精细化管理,本文设计并实现了一套基于 OpenCV 的智能停车场车位识别与数据管理系统。

Dev7z的博客 2614

Gin(五):连接MySQL

之前我们完成了注册,接下来要完成登录功能,但是有个问题,我们的数据没有持久化,无法得知有哪些用户注册了,这样就无法在登录时进行校验。 所以接下来我们要将数据持久化,也就是存储到数据库中,这里使用 MySQL

代码猎奇站 5036
上一篇: 导入pymysql模块操作数据库
下一篇: 利用requests、tkinter模块制作翻译小工具
孜孜孜孜不倦
博客等级 码龄7年 1803粉丝 277原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值