python学习之-员信息增删改查

python学习之-成员信息增删改查

主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证,

#!/usr/bin/env python# coding=utf8#author:[email protected]

import os, sys, time,jsonimport re

member_dict = \    {}member_name_list = []member_list = []def handler_member_storage(name,passwd,mobile,email):

member_detailed = {}    member_detailed[‘name‘] = name    member_detailed[‘passwd‘] = passwd    member_detailed[‘mobile‘] = mobile    member_detailed[‘email‘] = email    member_list.append(member_detailed)    member_name_list.append(name)    member_dict[‘namelist‘] = member_name_list    member_dict[‘namedetail‘] = member_list    #with open(‘member_info.json‘,‘w‘) as f:    #   json.dump(member_dict,f)    return member_dict

def handel_query_user(x):    """    判断x如果是str,查询name字段,如果是int,查询手机号字段    :param x:    :return:    """    #print "字符串",isinstance(x,str)    #print "数字",isinstance(x,int)    if isinstance(x,str):        if x in load_member_data()[‘namelist‘]:            print "精确匹配查询用户[%s]信息....."%(x)            print "==================================================="            user_index = load_member_data()[‘namelist‘].index(x)            user_detail = load_member_data()[‘namedetail‘][user_index]            for k,v in user_detail.items():                print k,v            print "----------------------------------------------------"        else:            print "\033[33;1m用户名或密码不在本数据库,你是不是记错了?您再想想!!\033[0m"

if isinstance(x,int):        if check_mobileORmail_member(str(x)) != "mobile_true":            print "这是手机号吗,打打试试...."        else:            print "精确匹配查询用户手机[%s]信息......"%(x)            print "===================================================="            user_detail = load_member_data()[‘namedetail‘]            for user_dict in user_detail:                if x == int(user_dict[‘mobile‘]):                    for k,v in user_dict.items():                        print k,v                    print "------------------------------------------------"

def load_member_data():    with open("member_info.json",‘r‘) as f:        try:            member_info_dict = json.load(f)            return member_info_dict        except ValueError:            #print "\033[33;1m没有数据可加载\033[0m"            return False

def check_login(user,passwd):    """    验证登录用户名和密码是否正确    :param user:    :param passwd:    :return:    """    with open("member_info.json",‘r‘) as f:        member_info_dict = json.load(f)        #print member_info_dict        if user in member_info_dict[‘namelist‘]:            user_index = member_info_dict[‘namelist‘].index(user)            user_detail = member_info_dict[‘namedetail‘][user_index]            #print user_index,user_detail            if passwd == user_detail[‘passwd‘] and user == user_detail[‘name‘]:                print "\033[32;1m输入用户[%s]密码[%s]正确\033[0m"%(user,passwd)                return True            else:                print "\033[31;1m 您输入的密码不正确\033[0m"        else:            print "\033[31;1m你查询的用户不存在\033[0m"

def check_mobileORmail_member(x):    p=re.compile(r‘^[\w\d]+[\d\w\_\.][email protected]([\d\w]+)\.([\d\w]+)(?:\.[\d\w]+)?$|^(?:\+86)?(\d{3})\d{8}$|^(?:\+86)?(0\d{2,3})\d{7,8}$‘)    m = p.match(x)    if m == None:        print "\033[33;1mmail or mobile number is wrong!!\033[0m"        return False    else:        if m.group(1)!=None:            if m.group(1) == ‘vip‘:                print ‘It is %s mail,the address is %s‘ %(m.group(2),m.group())                return "mail_true"            else:                print ‘It is %s mail,the address is %s‘ %(m.group(1),m.group())                return "mail_true"        else:            if m.group(3)!=None:                print ‘It is mobilephone number,the number is %s‘ %m.group()                return "mobile_true"            else:                print ‘It is telephone number,the number is %s‘ %m.group()                return True

class Modify_User_Info:    """    修改用户的相关信息    """    def update_passwd(self,user,newpwd):        if user in load_member_data()[‘namelist‘]:            user_index = load_member_data()[‘namelist‘].index(user)            user_detail = load_member_data()[‘namedetail‘][user_index]            user_detail[‘passwd‘] = newpwd            newpwd_dict = load_member_data()            newpwd_dict[‘namedetail‘][user_index] = user_detail            return newpwd_dict        else:            print "你有没有搞错!你输入的用户不在数据库"

def update_mobile(self,user,newmobile):        if user in load_member_data()[‘namelist‘]:            user_index = load_member_data()[‘namelist‘].index(user)            user_detail = load_member_data()[‘namedetail‘][user_index]            user_detail[‘mobile‘] = newmobile            newpwd_dict = load_member_data()            newpwd_dict[‘namedetail‘][user_index] = user_detail            return newpwd_dict        else:            print "你有没有搞错!你输入的用户不在数据库"

def update_email(self,user,newmail):        if user in load_member_data()[‘namelist‘]:            user_index = load_member_data()[‘namelist‘].index(user)            user_detail = load_member_data()[‘namedetail‘][user_index]            user_detail[‘email‘] = newmail            newpwd_dict = load_member_data()            newpwd_dict[‘namedetail‘][user_index] = user_detail            return newpwd_dict        else:            print "你有没有搞错!你输入的用户不在数据库"

def del_user_info(user):    if user in load_member_data()[‘namelist‘]:        user_index = load_member_data()[‘namelist‘].index(user)        user_detail = load_member_data()[‘namedetail‘][user_index]        new_del_dict = load_member_data()        new_del_dict[‘namedetail‘].remove(user_detail)        new_del_dict[‘namelist‘].remove(user)        return new_del_dict

else:        print "你要删除的用户[%s]不在数据库里"%user

if __name__ == "__main__":    Operation_type = {        ‘1‘:‘Add user information‘,        ‘1.1‘:‘name,passwd,mobile,email‘,        ‘2‘:‘Query the user information‘,        ‘3‘:‘Modify the user information‘,        ‘4‘:‘Delete user information‘,        ‘5‘:‘logout‘    }

while True:        print """\033[32;1m********************************************************************************Welcome to login user information center, you can make the following operation:        1,%s        2,%s        3,%s        4,%s        5,%s        What you need to operate?********************************************************************************\033[0m        """%(Operation_type[‘1‘],Operation_type[‘2‘],Operation_type[‘3‘],Operation_type[‘4‘],Operation_type[‘5‘])        option = raw_input("Choice is?>>")

if option == ‘1‘:            print "\033[32;1m you have choice is [%s]\033[0m"%Operation_type[‘1‘]            print "You need to complete these input according to [%s] the guidelines"%Operation_type[‘1.1‘]            while True:                name = raw_input("name:")                passwd = raw_input("passwd:")                mobile = raw_input("mobile:")                email = raw_input("email:")                if len(name) == 0 or len(passwd) == 0 or len(mobile) == 0 or len(email) == 0:                    print "\033[33;1mThe user information you entered any item can‘t be empty or incorrect.Please fill in again!!\033[0m"                    continue                if check_mobileORmail_member(mobile) != "mobile_true" or check_mobileORmail_member(email) != "mail_true":                    continue

#print "#########3",name,passwd,mobile,email

print """\033[32;1m 您输入的信息如下:                        name:%s                        passwd:%s                        mobile:%s                        email:%s                    \033[0m"""%(name,passwd,mobile,email)                s1 = raw_input("y 保存/w 重新填写>>")                if s1 == "y":

old_user_dict = load_member_data()                    new_user_dict = handler_member_storage(name,passwd,mobile,email)                    #print "############33",old_user_dict,‘\n‘,new_user_dict                    #合并旧的和新的用户数据                    if old_user_dict == False:                        print "没有旧数据可加载,直接写入新数据"                        with open(‘member_info.json‘,‘w‘) as f:                            json.dump(new_user_dict,f)                        s11 = raw_input("t 继续添加/b 返回上一级/q退出操作?>>")                        if s11 == "t":                            continue                        elif s11 == "b":                            break                        elif s11 == "q":                            sys.exit(0)                    else:                        for user in new_user_dict[‘namelist‘]:                            old_user_dict[‘namelist‘].append(user)                        for user_detail in new_user_dict[‘namedetail‘]:                            old_user_dict[‘namedetail‘].append(user_detail)                        #print old_user_dict,                        with open(‘member_info.json‘,‘w‘) as f:                            json.dump(old_user_dict,f)                        print "保存成功"                        s12 = raw_input("t 继续添加/b 返回上一级/q退出操作?>>")                        if s12 == "t":                            continue                        elif s12 == "b":                            break                        elif s12 == "q":                            sys.exit(0)                elif s1 == "w":                    continue                else:                    pass

elif option == ‘2‘:            print "\033[32;1m you have choice is [%s]\033[0m"%Operation_type[‘2‘]            print "\033[33;1m友情提示:输入正确的用户名和密码才能查询用户信息\033[0m"            luser = raw_input("用户名:").strip()            lpasswd = raw_input("用户密码:").strip()            if check_login(luser,lpasswd) == True:                print "用户验证通过"                print "请输入需要查询的用户名或手机号[目前只支持精确查询]"                while True:                    query_info = raw_input("查询:>>").strip()                    if check_mobileORmail_member(query_info) == "mobile_true":                        handel_query_user(int(query_info))                    else:                        handel_query_user(query_info)                    s2 = raw_input("b 返回上一级/t 继续查询")                    if s2 == "b":                        break                    elif s2 == "t":                        continue

else:                print "用户名或密码不正确,不能查询其它人信息"

elif option == ‘3‘:            print "\033[32;1m you have choice is [%s]\033[0m"%Operation_type[‘3‘]            print "友情提示:目前支持修改用户的密码,手机号,邮箱地址"            modify = Modify_User_Info()            modify_option = raw_input("p 修改密码/m 修改手机号/e 修改邮箱地址")            if modify_option == "p":                user_name = raw_input("用户名:").strip()                user_pwd = raw_input("新密码:").strip()                print "开始修改用户[%s]新的密码为[%s]....."%(user_name,user_pwd)                update_dict = modify.update_passwd(user_name,user_pwd)                with open(‘member_info.json‘,‘w‘) as f:                    json.dump(update_dict,f)                print "密码修改成功!"            elif modify_option == "m":                user_name = raw_input("用户名:").strip()                user_mobile = raw_input("新手机号:").strip()                print "开始修改用户[%s]新的手机号为[%s]....."%(user_name,user_mobile)                update_dict = modify.update_mobile(user_name,user_mobile)                with open(‘member_info.json‘,‘w‘) as f:                    json.dump(update_dict,f)                print "手机号修改成功!"            elif modify_option == "e":                user_name = raw_input("用户名:").strip()                user_mail = raw_input("新邮箱:").strip()                print "开始修改用户[%s]新的邮箱为[%s]....."%(user_name,user_mail)                update_dict = modify.update_email(user_name,user_mail)                with open(‘member_info.json‘,‘w‘) as f:                    json.dump(update_dict,f)                print "邮箱修改成功!"

elif option == ‘4‘:            print "\033[32;1m you have choice is [%s]\033[0m"%Operation_type[‘4‘]            print "友情提示:请输入用户名"            user_name = raw_input("用户名:")            new_del_dict = del_user_info(user_name)            with open(‘member_info.json‘,‘w‘) as f:                json.dump(new_del_dict,f)            print "用户[%s]删除成功!!"%(user_name)        elif option == ‘5‘:            print "\033[32;1m you have choice is [%s]\033[0m"%Operation_type[‘5‘]            sys.exit(0)        else:            print "\033[31;1m The choice of the invalid \033[0m"

#print check_mobileORmail_member(‘123456‘)    #print check_login(‘testwqk‘,‘testwqk‘)    #print handel_query_user(18600404875)
时间: 2024-07-28 23:43:37

python学习之-员信息增删改查的相关文章

python学习之成员信息增删改查

主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证, #!/usr/bin/env python# coding=utf8#author:[email protected] import os, sys, time,jsonimport re member_dict = \ {}member_name_list = []member_list = []def handler_member_storage(name,pa

python练习——moudule02——员工信息增删改查

#作业名称:员工信息的增删改查 #作业需求: 1.可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 select * from staff_table where dept = "IT" select * from staff_table where enroll_date like "2013" 查到的信息,打印后,最后面还要显示查到的条数 2.可创建新员工纪录,以phon

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

Android学习---SQLite数据库的增删改查和事务(transaction)调用

上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代码实现增删查改: 1.创建DB工具类 MyDBHelper.java(创建数据库的操作) package com.amos.android_db; import android.content.Context; import android.database.sqlite.SQLiteDatabas

实现学校信息增删改查-第一节添加学校名称

SSM框架实现学校信息增删改查-第一节添加学校名称 大家好!第一次写文 语句可能有些生涩,看到我不足的地方可以给我留言~ 好了,开始第一节,一个简单的添加学校名称功能~ 可以先看一下前端html代码,运行程序看一些界面效果 超级简易的一个添加页面,首先我们要知道添加是根据学校id添加信息的,请看代码哦 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

项目:员工信息增删改查程序

现要求写一个简单的员工信息增删改查程序,需求如下: 当然此表你在文件存储时可以这样表示 1,Alex Li,22,13651054608,IT,2013-04-01 2,Jack Wang,28,13451024608,HR,2015-01-07 3,Rain Wang,21,13451054608,IT,2017-04-01 4,Mack Qiao,44,15653354208,Sales,2016-02-01 5,Rachel Chen,23,13351024606,IT,2013-03-1

Java学生信息增删改查(并没用数据库)

一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. 1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileNotFoundException; 4 import java.io.FileReader; 5 import java.io.IOException; 6 import

TP5学习基础一:增删改查小demo

①TP5--增删改查简单的demo 我先吐槽一下:因为工作需要研究tp5,去官网看了一下哎呦,资源挺多挺全啊!然后下载唯一免费的官方教程,我曹pdf打开533页.讲的很细但是开发能等看完才做吗?看到精简版快速入门的还软妹币20试读3章.寻思找个demo案例吧,要不加群拿源码,要不视频教程收费.特喵的框架是开源的但是教程是收费的.寻思去论坛看看问题,不是我喷好多技术小白的问题,我想看看怎么获取传参传值,泥煤那个系统变量是什么鬼?挣扎了3个小时我放弃了官网.在度娘上找到一个demo,吭哧吭哧啃完.一

Python基础-----实现文件的增删改查

实现文件的增删改查 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import os 4 def file_handler(backend_data,res = None,type = 'fetch'): #文件处理函数 5 if type == 'fetch': #查询操作 6 with open('haproxy.conf','r') as read_f: 7 tag = False #初始状态标识 8 ret = [] #用于放置查询