python資料庫做成郵箱的註冊系統!

來源:互聯網
上載者:User
#! /usr/bin/env python2.7# -*- coding:utf-8 -*-#File:w7.py#Date:2013-7-18#Author:wangyuimport reimport sqlite3"""當你感到有些日子先當難過的時候,那你一定經曆一些不一樣的東西,這些東西會讓你變的更加強大,謝謝世界給我的苦難和思考""""""開始學習Regex""""""郵箱註冊系統"""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,所以還需要改進一下!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.