python数据库做成邮箱的注册系统!

来源:互联网 发布:淘宝流量首选晨昊网络 编辑:程序博客网 时间:2024/04/29 04:32
#! /usr/bin/env python2.7# -*- coding:utf-8 -*-#File:w7.py#Date:2013-7-18#Author:wangyuimport reimport sqlite3"""当你感到有些日子先当难过的时候,那你一定经历一些不一样的东西,这些东西会让你变的更加强大,谢谢世界给我的苦难和思考""""""开始学习正则表达式""""""邮箱注册系统"""class e_mail:        def xuanze(self,xuanxian):        if (xuanxian=='z'):            print "欢迎注册"        elif (xuanxian=='d'):            print "欢迎登录"        else:            print "输入错误请重新输入"        return xuanxian    def zhuce(self):        a=True        conn=sqlite3.connect('/home/wy/py/test/test/bin/e_mail')        conn.isolation_level=None#这个就是事物隔离级别,默认是自己需要的commit才能修改数据库,设置为None则自动每次修改都提交,否则为""        c=conn.cursor()        c.execute('''create table if not exists zhuce7(username txt FRIMARY KEY,                                                    password txt,                                                    liuyan NCHAR(256)                                                    )                    ''')         c.execute('''select username,password from zhuce7;''')        while a==True:            username=raw_input("请输入您的注册帐号:")        #    print "nima"            m=re.match(r"^([a-zA-Z0-9]+[-\\|.]?)+[a-zA-Z0-9]@([0-9A-Za-z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$",username);         #   print m            if  m:                d=c.fetchall()                i=0                for (s,b) in d:                    while True:                        if s==username:                            print "您注册的"+str(username)+"帐号已经被注册,请你重新注册"                            username=raw_input("请输入您的注册帐号:")         #                   print "wocao"                         else:                            a=False                            break                break            else:                print "你的邮箱"+str(username)+"格式错误,请重新填写"                username=raw_input("请重新填写您的邮箱")        while True:            password=raw_input("请输入您的密码:")            pwd=re.match(r"^([a-zA-Z0-9])",password)            if (pwd and (len(password)<9)):                print "密码过短,或者不符合格式"            else:                break        while True:            password1=raw_input("请再次输入您的密码:")            if (password!=password1):                print "两次输入不一致,请重新输入"            else:                break        while True:            if (pwd and (len(password)<9)):                print "密码过短,或者不符合格式"            else:                break        while True:            yzm=int(raw_input("请输入您的验证码:123+123=?:"))            if yzm!=246:                 print "验证码错误请重新输入"            else:                break        print "邮箱注册成功,注意保管自己的密码"        c.execute('''insert into zhuce7(username,password)                    values(?,?)''',(username,password)                  )        conn.commit()       # 自动提交插入数据        c.close()    def denglu(self):        username1=raw_input("请输入用户名:")        password1=raw_input("请输入密码:")        conn=sqlite3.connect('/home/wy/py/test/test/bin/e_mail')        conn.isolation_level=None        d=conn.cursor()        d.execute('''select username,password                    from zhuce7;                    ''')        up=d.fetchall()        count =0        a=len(up)        while True:            if (up[count][0]==username1):                print up[count][0]    #   这个循环输出的是一个二元表,所以直接验证二元表里面的数据就好                       if ( password1==up[count][1]):                    print "登录成功"                    #开始留言                    ce=int(raw_input("是否发信:发信请输入:1\n不发请输入:2\n"))                    if ce==1:                        liuyan =str(raw_input("请在此处写下您的发件内容:"))              #          ceshi=liuyan.decode('utf-8').encode('gbk')                        d.execute('''update zhuce7 set liuyan=? where username=?                                ''',(liuyan,username1)                        )                        break                    else:                        return 0                else:                    print "密码不正确,请注意大小写"                    break            count=count+1            a=a-1            if (a==0):                print "帐号没有注册,请重新输入"                break        return 0if __name__=='__main__':    """刚刚在测试的时候发现,python的容错系统是一个有限数组,比如我测试文件输入选项时,提示错误次数超过一定次数,就会终止程序"""    app=e_mail()    print "++++++++++++++感谢您的使用++++++++++++++"    while True:        try:            xuanxian=raw_input("请选择:\n注册输入:z\n登录输入:d\n").strip()[0].lower()        except(EOFError,KeyboardInterrupt):            xuanxian=c        if xuanxian not in 'zd':            print "您输入的键值为[%s]输入不合法,请重新输入"%xuanxian        else:            break    app.xuanze(xuanxian)    if (xuanxian=='z'):        app.zhuce()    elif(xuanxian=='d'):        app.denglu()                 
这个其中有几个bug,我没有处理!原因是我不能很好的使用try,所以还需要改进一下!
原创粉丝点击