#! /usr/bin/env python2.7
# -*- coding:utf-8 -*-
#File:w7.py
#Date:2013-7-18
#Author:wangyu
import re
import 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 0 if __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,所以还需要改进一下!

python数据库做成邮箱的注册系统!的更多相关文章

  1. Spring Boot+Jpa(MYSQL)做一个登陆注册系统(前后端数据库一站式编程)

    Spring Boot最好的学习方法就是实战训练,今天我们用很短的时间启动我们第一个Spring Boot应用,并且连接我们的MySQL数据库. 我将假设读者为几乎零基础,在实战讲解中会渗透Sprin ...

  2. Django用户登录与注册系统

    一.创建项目 1.1.创建项目和app python manage.py startproject mysite_login python manage.py startapp login 1.2.设 ...

  3. Django实战(一)-----用户登录与注册系统5(图片验证码)

    为了防止机器人频繁登录网站或者破坏分子恶意登录,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是一种区分用户是计算机还是人的公共全自动程序. 可以防止恶意破解密码.刷票.论坛 ...

  4. Python数据库备份脚本

    Python数据库备份脚本 #!/usr/bin/env python # author: liudong # -*- coding: utf-8 -*- # filename: db_bak.py ...

  5. Angular实现注册系统

    Angular是Google开发的前端技术框架,下载地址:https://code.angularjs.org/1.5.0/angular.js 通过对angular的简单理解后发现,angular通 ...

  6. 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)

    一.我的需求 我希望做成具有以下功能的软件:1. 间隔一段时间登录我的邮箱查看是否有未读邮件 如果不断的运行查看是否有新邮件确实没多大必要. 另外如果这个客户端登录我的邮箱,那么我可能就不能用浏览器登 ...

  7. 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(中)

    这篇博客,主要讲解用Python实现邮箱服务的几个需要学习的模块:E-mail Compotion and Decoding(邮件生成和解析).SMTP.POP.IMAP 如上篇博客所讲,我学习过程参 ...

  8. 页面注册系统--使用forms表单结合ajax

    页面注册系统--使用forms表单结合ajax 在Django中通过forms构建一个表单 1.urls.py 配置路由 from django.conf.urls import url from d ...

  9. python数据库操作 - MySQL入门【转】

    python数据库操作 - MySQL入门 python学院 2017-02-05 16:22 PyMySQL是Python中操作MySQL的模块,和之前使用的MySQLdb模块基本功能一致,PyMy ...

随机推荐

  1. Dev GridControl 按条件合并相同单元格

    Dev 默认的合并方式,只要(垂直方向)相邻两个单元格的值相同都会进行合并,这种方式并不是最优的,所以需要在进行合并的过程中进行判断. 方式如下: 1:先设置需要合并的列为允许合并 OptionsVi ...

  2. Ecstore内置表单验证?

       

  3. CodeIgniter目录结构

    1.1   application 是你自己的项目存放文件的目录(控制器.模型和视图等!) (1)分析application文件夹中的目录 (1.1)         cache文件是放缓存文件 (1 ...

  4. 升级openssl到1.0.1g

    先进行支撑包的安装: # yum install -y zlib   openssl升级步骤: 下载最新版本的openssl源码包 # wget ftp://ftp.openssl.org/sourc ...

  5. hdu 1829 基础并查集,查同性恋

    A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  6. STM8S和STM8L调试串口中断的注意点

    1. STM8L串口中断注意点 在调试PM2.5传感器GP2Y1051的时候,发现在仿真的时候开始能够进行数据的接受,但是如果暂停之后就不能接受数据,其实只是接收了一次完整的数据. 问题程序 解决方法 ...

  7. Android中的动画

    Android中的动画分为: 1.逐帧动画(Frame Animation):  把动画过程的每张静态图片都收集起来,然后由Android来控制依次显示这些静态图片,然后利用人眼”视觉暂留“的原理,给 ...

  8. zabbix log(logrt) key的使用

    今天看了篇帖子是关于如何利用zabbix 自带的key去读log,监控linux异常登陆,一直以来都是自己写脚本去读log的.就想看看这个zabbix log 这个key怎么样..好吧开始: 官方文档 ...

  9. swfupload上传

    swfupload多文件异步上传 多文件选择异步上传的原理 传统上:多个文件逐一选.PHP开始处理,循环上 PHP+Flash上:JS调用flash控,Flash批量选取并保持选取所有文件列 swfu ...

  10. EDIT编辑框

    编辑框 编辑框的主要作用是让用户输入文本,例如要求用户在编辑框中输入密码的文本. .基础知识 编辑框里的文本可以是单行,也可以是多行,后者的风格取值为 ES_MULTILINE.一般对于多行文本编辑框 ...