python实现用户登陆(sqlite数据库存储用户信息)
2023-09-14 08:56:58 时间
python实现用户登陆(sqlite数据库存储用户信息)
目录
创建数据库 数据库管理 简单登陆
有些地方还未完善。
创建数据库
import sqlite3 #建一个数据库 def create_sql(): sql = sqlite3.connect("user_data.db") sql.execute("""create table if not exists %s( %s integer primary key autoincrement, %s varchar(128), %s varchar(128), %s varchar(128), %s char(128))""" % ('user', 'id', 'name', 'passworld', 'number', 'status' )) sql.close() create_sql() #user_data.db为数据库文件名 #create table if not exists为建立一个数据库指令,如果文件存在就打开,不存在就创建一个 #%s对应后面的四个参数 # 'user':表名 # 'id':相当于一个索引,autoincrement指定为自动增量 # 'name',用户名 # 'passworld'用户密码 # 'number':座位号 # 'status:状态 # sql.close()是关闭数据库,每次对数据库进行操作后,都要记得进行关闭操作 #数据库的格式 # file:user_data.db # table:user # id name passworld number status
数据库管理
import sqlite3 # 数据库增加数据 def add_data(): input_name = input("请输入您的用户名:") input_passworld = input("请输入您的密码:") number=input('请输入学号') status=None sql = sqlite3.connect("user_data.db") sql.execute("insert into user(name,passworld,number,status) values(?,?,?,?)", (input_name,input_passworld,number,status)) sql.commit() print("添加成功") sql.close() # 这里增加了读取四个个参数values(?,?,?,?)字段里的四个?号,对应了参数input_name,input_passworld,number,status def showalldata(): sql = sqlite3.connect("user_data.db") data = sql.execute("select * from user").fetchall() sql.close() return data # "select * from user"为查询user对应的表的所有资料的指令 def drop(): print('指定id删除') sql = sqlite3.connect("user_data.db") data = sql.execute("select * from user").fetchall() print('所有数据:'+str(data)) while 1: id=input('请输入你要删除的数据的id:') sql.execute("DELETE FROM user WHERE id = %s" % id) sql.commit() print('删除完成') data=sql.execute("select * from user") print(data.fetchall()) sql.close() break print(""" 1:增加数据 2:查询数据 3.删除数据 q:退出 """) while 1: option =None cho =input('选择您想要的进行的操作:') if cho == '1': add_data() elif cho == '2': data=showalldata() print(data) elif cho == '3': drop() elif cho == 'q': break else: "输入错误"
简单登陆
import sqlite3, getpass #保证每一个用户名和学号不同 #输入用户名正确后,输入密码。用户名正确的情况下,密码连续输错三次,用户将被锁定,禁止登录系统 #输入用户名后,如果用户名被锁定及无效用户名,程序会退出,请确保输入正确。 def showdate(username): sql = sqlite3.connect('user_data.db') data = sql.execute("select * from user where name='%s'" % username).fetchone() sql.close() return data # ("select * from user where username='%s'"% name)这条指令用来查询表user的name字段的对应的数据 # 最后返回用户名对应的资料 def val(): while 1: name = input("用户名:") # 输入用户名 data = showdate(name) # 获取用户名对应的数据库资料 if data: # passworld = getpass.getpass("密码") # 输入密码 passworld=input('密码:') if data[2] == passworld: print("登录成功") break else: print("密码错误") else: print("用户名不存在") # getpass模块可以使输入的字符不可见,在python的shell中可能无效,在终端中和用户登录效果相同,不出现输入字符 val() print("进入用户操作")
相关文章
- 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求
- 第二百九十七节,python操作redis缓存-List类型,可以理解为列表
- Python MySQLdb模块连接操作mysql数据库实例_python
- Python操作Mysql实例代码教程在线版(查询手册)_python
- python 读写数据
- Python操作SQLite数据库的方法详解
- 【Python五篇慢慢弹(3)】函数修行知python
- Python操作SQLite数据库的方法详解
- 新浪微博OAuth详解以Python为例
- Python语言学习:Python语言学习之python包/库package的简介(模块的封装/模块路径搜索/模块导入方法/自定义导入模块实现华氏-摄氏温度转换案例应用)、使用方法、管理工具之详细攻略
- Python之ffmpeg-python:ffmpeg-python库的简介、安装、使用方法之详细攻略
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)
- Python每日一练——第21天:元组、字典练习
- 【python代码】:能在手机上敲 Python 代码几款App
- 〖Python自动化办公篇⑳〗 - python实现邮件自动化 - 发送html邮件和带附件的邮件
- 〖Python 数据库开发实战 - Python与MySQL交互篇⑩〗- 创建新闻管理系统的具体python文件
- Python:mysql-connector-python模块对MySQL数据库进行增删改查
- [转]Python测试框架对比----unittest, pytest, nose, robot framework对比
- python基础===八大排序算法的 Python 实现
- Python的矩阵传播机制&矩阵运算
- Python 操作SQLite数据库
- python中‘/’和‘//’区别
- 【python 问题解决】 ---- sqlite 查询数据返回的是元组,转换为字典
- Python基于OpenCV&YOLO台球击球路线规划系统(源码&部署教程)