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实现用户登陆(sqlite数据库存储用户信息)的更多相关文章

  1. 使用Sqlite数据库存储数据

    1.Sql基本命令 1.1.创建表 表是有行和列组成的,列称为字段,行称为记录. 使用CREATE命令来创建表: 1 CREATE TABLE tab_student (studentId INTEG ...

  2. 使用嵌入式关系型SQLite数据库存储数据

    除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1.SQLite3支持 ...

  3. <Android基础> (六) 数据存储 Part 3 SQLite数据库存储

    6.4 SQLite数据库存储 SQLite是一种轻量级的关系型数据库,运算速度快,占用资源少. 6.4.1 创建数据库 Android为了管理数据库,专门提供了SQLiteOpenHelper帮助类 ...

  4. Android学习之基础知识九 — 数据存储(持久化技术)之SQLite数据库存储

    前面一讲介绍了数据持久化技术的前两种:文件存储.SharedPreferences存储.下面介绍第三种技术:SQLite数据库存储 一.SQLite数据库存储 SQLite数据库是一款轻量级的关系型数 ...

  5. 4、Android-数据存储方案(SQLite数据库存储)

    4.4.SQLite数据库存储 这是Android内置的数据库 是一款轻量级的关系型数据库 运算速度非常快.占用资源少.通常只需要几百kb的内存就够了 因而特别适合在移动端设备上使用 SQLite不仅 ...

  6. Android中数据存储(三)——SQLite数据库存储数据

    当一个应用程序在Android中安装后,我们在使用应用的过程中会产生很多的数据,应用都有自己的数据,那么我们应该如何存储数据呢? 数据存储方式 Android 的数据存储有5种方式: 1. Share ...

  7. Android 数据存储之 SQLite数据库存储

    ----------------------------------------SQLite数据库---------------------------------------------- SQLi ...

  8. android开发之使用SQLite数据库存储

    http://blog.csdn.net/jason0539/article/details/16360835 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且 ...

  9. iOS - SQLite 数据库存储

    1.SQLite 数据库 SQLite 是一种轻型的嵌入式数据库,安卓和 iOS 开发使用的都是 SQLite 数据库.它占用资源非常低,在嵌入式设备中,可能需要几百 K 的内存数据就够了.他的处理速 ...

随机推荐

  1. POJ 1035 Spell checker (模拟)

    题目链接 Description You, as a member of a development team for a new spell checking program, are to wri ...

  2. 如何成为软件测试职场“头号玩家”,月入10k+

    最近看了一部电影,叫<头号玩家>,电影挺不错的,延伸到自己的测试职业生涯,其实在我们的测试职场,也是存在头号玩家的,但并不是真的在玩,而是在努力工作. 不管是什么游戏,如果要玩通关升级,那 ...

  3. python - class类 (六) 三大特性 - 多态

    多态的概念: # 多态的概念 # 指出了对象如何通过他们共同的属性和动作来操作及访问而不需考虑他们的具体的类 # 多态表明了动态绑定的存在,允许重载及运行时类型确定和验证. # 示例模拟: #水具有多 ...

  4. oracle_集合函数

    查询10和20号部门的员工 SQL> 1. select * from emp where deptno in (10,20); SQL> 2. select * from emp whe ...

  5. Python3学习笔记12-定义函数及调用

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,能提高应用的模块性,和代码的重复利用率 Python提供了许多内建函数,比如print().也可以自己创建函数,这被叫做用户自定义函数 ...

  6. Oracle 11g安装步骤以及Oracle11g创建表空间和用户,并授权

    Oracle 11g安装步骤详解 一.Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可. 路径名称中,最好不要出现中文,也不要出现空格等不规则字符. 官方下地 ...

  7. python魔法函数(二)之__getitem__、__len__、__iter__

    魔法函数会增强python类的类型,独立存在 __getitem class Company: def __init__(self, employees): self.employees = empl ...

  8. C++ code:for loop designs

    1  用for循环编出系列图形 该图形一共10行,每一行增加一个字符,所以应循环10次,每次输出一行.其循环模式为: :i<=;++i) { 输出第i行 换行 } 我们注意到,每一行长度的变化正 ...

  9. ural1989 单点更新+字符串hash

    正解是双哈希,不过一次哈希也能解决.. 然后某个数字就对应一个字符串,虽然有些不同串对应同一个数字,但是概率非常小,可以忽略不计.从左到右.从右到左进行两次hash,如果是回文串,那么对应的整数必定存 ...

  10. python接口自动化测试十:字典、字符串、json之间的简单处理

    # 字典 t = { #   键:值     '': '',     '': ''     } # 字典 # dict      key: value   key是唯一的,无序的 h = {      ...