前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python–pymssql模块实现数据库增删改查

python–pymssql模块实现数据库增删改查

作者头像
kirin
发布2020-05-09 15:27:06
1.2K0
发布2020-05-09 15:27:06
举报
文章被收录于专栏:Kirin博客Kirin博客
代码语言:javascript
复制
下面是代码,修修改改花了快2小时了,没办法,刚入门,什么也不懂,写的有点慢了,见谅
代码语言:javascript
复制
有兴趣的同学可以参考一下,提供一下思路给你也好,这个写的比较冗长,参考参考就好
代码语言:javascript
复制
#导入模块
代码语言:javascript
复制
import pymssql
代码语言:javascript
复制
#连接导数据
usr=pymssql.connect('KIRIN','sa','123','student',autocommit=True,charset='GBK')
代码语言:javascript
复制
#建立游标
qq=usr.cursor()
qq.execute('''select users from users''')
代码语言:javascript
复制
#获取游标查询到的东西
aa=qq.fetchall()
代码语言:javascript
复制
#建立两个空列表,
user=[]
pwd=[]
代码语言:javascript
复制
#把从游标获取下来带元组的值集合在一个列表里面用于后面的验证
for x in aa:
    for xx in x:
        user.append(xx)
代码语言:javascript
复制
#执行sql查询语句
qq.execute('''select pwd from users''')
bb=qq.fetchall()
for y in bb:
    for yy in y:
        pwd.append(yy)
代码语言:javascript
复制
#开始写验证的头部提示信息,下面都是简单的if或者while 就不写注释了,python代码阅读起来就像读文章一样,因为它真的很简洁
def q():
    while True:
        print('*' * 20)
        print('     1.修改密码')
        print('     2.注册账号')
        print('     3.注销账号')
        print('     4.退出')
        print('     5.登录')
        print('     6.查询用户')
        print('*' * 20)
        a=int(input('输入你的选项'))

        if a==1:
            sql_jiumima = int(input('请输入你的旧密码'))
            while True:
                if sql_jiumima in pwd:
                    sql_xinmima=int(input('输入你的新密码'))


                    print('修改成功')
                    qq.execute('''update users set pwd={} where pwd={}'''.format(sql_xinmima,sql_jiumima))
                    break
                else:
                    print('旧密码错误,请重试')
                    break
        elif a==2:
            sql_zhucezhanghao=int(input('输入注册用户名'))
            while True:

                if sql_zhucezhanghao in user:
                    print('账号已经存在,请重试')
                    break
                else:
                    sql_zhucemima=int(input('输入你的密码'))
                    sql_zhucemima1=int(input('再次确认你的密码'))
                    if sql_zhucemima!=sql_zhucemima1:
                        print('两次密码输入不一致,请重新输入')
                        break
                    else:
                        print('账号注册完成')
                        qq.execute('''insert into users values({},{})'''.format(sql_zhucezhanghao, sql_zhucemima))
                        break
        elif a==3:
            sql_zhuxiao=int(input('输入需要注销的账号'))
            while True:

                if sql_zhuxiao in user:
                    zhuxiao_1=int(input('请再次输入账号确认注销'))
                    if sql_zhuxiao != zhuxiao_1:
                        print('两次输入不一致,请重新输入')
                    else:
                        qq.execute('''delete from users where users={}'''.format(sql_zhuxiao))
                        print('注销成功')
                        break
                else:
                    print('需要注销的账号不存在,请重试')
                    break
        elif a==4:
            break
        elif a==5:
            denglu_zhanghao=int(input('请输入你的账号'))
            ii=0
            while ii<3:
                if denglu_zhanghao in user:
                    denglu_mima=int(input('请输入你的密码'))
                    if denglu_mima in pwd:
                        print('登录成功')
                        break
                    else:
                        ii+=1
                        print('密码错误,请重试,3次错误后将锁定')
                else:
                    print('账号不存在,请重试')
                    break
        if a==6:
            qq.execute('''select users from users''')
            sql_cha=qq.fetchall()
            sql_chaxun1=[]
            for x1 in sql_cha:
                for x2 in x1:
                    print(sql_chaxun1.append(x2))
            for x3 in sql_chaxun1:
                print(x3)

q()

下面附加一段19号为了缩减代码的思路

其中去掉了双重for循环提取账号或密码的环节,替换成了直接查询到账号或者密码用下标的方法去检测输入的账号密码是否在这里变量里面,

大大的减轻了劳动量,也提升了速度,判断精准,一个账号对应一个账号,解决了串号修改密码的bug,

贴上了代码如下

代码语言:javascript
复制
sql.execute('''select users from users where users='123' ''')
aa=[]
qq=sql.fetchall()
sql.execute('''select pwd from users where pwd='123' ''')
qqq=sql.fetchall() print(qq) print(qq[0]) print(han(aa,qq))
qa=int(input('输入账号')) while True: if qa not in qq[0]: print('账号不存在') break  elif qa in qq[0]:
        qaa = int(input('输入密码')) if qaa in qqq[0]: print('登录成功') break  else: print('密码错误')
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档