python实现用户登陆(sqlite数据库存储用户信息)

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("进入用户操作")

  

原文地址:https://www.cnblogs.com/-wenli/p/10290132.html

时间: 2024-12-19 23:49:24

python实现用户登陆(sqlite数据库存储用户信息)的相关文章

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

除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1.SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. 2.SQLit

使用Sqlite数据库存储数据

1.Sql基本命令 1.1.创建表 表是有行和列组成的,列称为字段,行称为记录. 使用CREATE命令来创建表: 1 CREATE TABLE tab_student (studentId INTEGER PRIMARY KEY AUTOINCREMENT, 2 studentName VARCHAR(20), 3 studentAge INTEGER); 1.2.插入记录(行) 使用INSERT命令可以一次插入一条记录,INSERT命令的一般格式为: INSERT INTO tab_stude

SQLite数据库存储

SQLite数据库存储 应用运行需要保存一系列有一定结构的数据, 比如说公司员工信息 文件类型: .db 数据保存的路径: /data/data/projectPackage/databases/xxx.db 默认情况下其它应用不能访问, 当前应用可以通过ContentProvider提供其它应用操作 应用卸载时会删除此数据 SQLite (http://www.sqlite.org/),是一款轻型的关系型数据库服务器, 移动设备的数据库存储都使用SQLite, 它的特点: 安装文件小: 最小只

从零开始学android<数据存储(4)Sqlite数据库存储.三十八.>

从前几章我们分别学习了属性文件存储输数据,内储存存储数据,和外部储存存储数据,今天我们来学习一下android 轻量级数据库Sqlite数据库的数据存储 首先必须了解SQLiteOpenHelper SQLiteDatabase类本身只是一个数据库的操作类,但是如果要想进行数据库的操作,还需要一个android.database.sqlite.SQLiteOpenHelper类帮助下才可以取得进行,但是,SQLiteOpenHelper类是一个抽象类,所以要使用的时候需要定义其子类,并且在子类中

详解Android中的SQLite数据库存储

前言 在Android中存储数据的方式有很多种,其中使用SQLite数据库是存储结构化数据的最佳选择.幸运的是,Android中默认提供了对SQLite的支持,这就使得在Android中使用SQLite数据库变得格外方便. 支持的数据类型 SQLite是一款轻量级的数据库,其支持的数据类型也很简单,主要有以下几种: text:字符类型 real:浮点类型 integer:整数类型 blob:二进制数据类型 创建数据库 SQLite数据库的使用始于SQLiteOpenHelper这个抽象类.我们需

数据存储——SQLite数据库存储——API

一.特点 1.存储具有一定结构的数据 2.文件类型.db 3.存储目录:date/date/包名/datebases/数据库文件 4.应用卸载之后,数据同时被删除 5.数据不被其他应用直接操作 二.SQLite数据库 三.API 1.SQLiteOpenHelper   工具类 (1)是一个抽象类,需要继承并实现了抽象方法之后才能使用 (2)抽象方法: ①void   onCreate(SQLiteDatabase db) 1)创建和初始化数据库的回调方法 2)当连接数据库,未找到数据库文件时调

数据存储——SQLite数据库存储

一.特点 1.存储具有一定结构的数据 2.文件类型  .db 二.SQLite数据库 1.特点 1-轻型的关系型数据库 2-支持多种编程语言 3-适合在移动设备中使用 4-安装文件小 5-支持多个操作系统 6-运行速度快(数据量小) 7-数据库本身是单个文件 2.数据类型 1-整数:INT  .INTEGER: 2-浮点数:FLOAT   .DOUBLE  : 3-字符串文本 ①CHAR,定长的字符串: ②WARCHAR,变长的字符串: ③TEXT,大文本: 4-时间日期:DATE.DATETI

安卓数据存储(3):SQLite数据库存储

SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级:使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小. 2.独立性:SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”. 3.隔离性:SQLite 数据库中所有的信息(比如表.视图.触发器等)都包含在一个文件夹内,方便管理和维护. 4.跨平台:SQLit

QT 创建本地数据库(SQLite数据库)存储数据

注意:QT自带SQLITE数据库,不需要再安装 1.创建一个包含创建.查询.修改和删除数据库的数据库类(DataBase) DataBase.h头文件 #pragma once #include <QObject> #include <QtSql/QSqlDatabase> #include <QtSql/QSqlQuery> #include <QtSql/QSqlDriver> #include <QtSql/QSqlError> #incl