#! /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. mongodb查询只显示指定字段

    db.COMMODITY_COMMODITY.find( { "areaCode" : "320100" , "backCatalogId" ...

  2. 进阶C#?

    玩了几年的编程了,大四了.本来不想考研,我老师找我谈几次,最近准备考研.从一开始玩java,接触.net中的C#,aps.net,到接触linux,太多太多了. 本来我们专业不是纯计算机的,但是和计算 ...

  3. egrep和grep有什么区别

    grep默认不支持正则表达式,egrep默认支持正则表达式,egrep 等于 grep -E 命令.

  4. swift 重载 泛式 inout的使用

    swift 重载 泛式 inout的使用 函数 func 关键字 -> 表示返回值信息等等 那我们接下来利用函数做几件事情 -a 比较两个数字的大小 -b 比较两个字符串 -c 既能比较字符串, ...

  5. PLSQL developer连接不上64位Oracle的解决方法

    PLSQL developer连接不上64位Oracle的解决方法 64位下装Oracle 11g 64位,PLSQL Developer使用出现问题. 问题描述: 登录对话框中,数据库下拉框为空: ...

  6. shell如何生成rpm包仓库列表文件的对比结果

    基本步骤: 1.切换至仓库目录RPM_LIST_DIR1和RPM_LIST_DIR2 2.ls列出仓库的rpm包文件并分别重定向至输出文件rpm_list_file1和rpm_list_file2 3 ...

  7. nhibernate 3.3 linq扩展

    nhibernate的sqlserver linq 全文检索搞了半天 方法一 ,扩展LinqToHqlGeneriatorsRegistry http://www.cnblogs.com/xiarug ...

  8. T-SQL事务实例

    begin try begin tran ,'); ; --RAISERROR ('Error raised in TRY block.',16,1); commit tran end try beg ...

  9. macbook air 安装win7系统时,到最后一步要进入win7,需要给PC设置一个用户名,键盘没反应

    从 bootcamp安装:1.一定要同时选中第一项 制作usb安装盘和第二项 从网上下载最新的windows支持软件,2.然后再选第三项 安装winDows,3.当进入安装界面时选择你要安装的boot ...

  10. java中值得类型转化

    在Java编程过程,基本数据类型(boolean除外)的可以相互转化.其中: (1)低容量小的类型自动转换为容量大的数据类型:数据类型按容量大小排序为: byte,short,char->int ...