python数据库做成邮箱的注册系统!
#! /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数据库做成邮箱的注册系统!的更多相关文章
- Spring Boot+Jpa(MYSQL)做一个登陆注册系统(前后端数据库一站式编程)
Spring Boot最好的学习方法就是实战训练,今天我们用很短的时间启动我们第一个Spring Boot应用,并且连接我们的MySQL数据库. 我将假设读者为几乎零基础,在实战讲解中会渗透Sprin ...
- Django用户登录与注册系统
一.创建项目 1.1.创建项目和app python manage.py startproject mysite_login python manage.py startapp login 1.2.设 ...
- Django实战(一)-----用户登录与注册系统5(图片验证码)
为了防止机器人频繁登录网站或者破坏分子恶意登录,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是一种区分用户是计算机还是人的公共全自动程序. 可以防止恶意破解密码.刷票.论坛 ...
- Python数据库备份脚本
Python数据库备份脚本 #!/usr/bin/env python # author: liudong # -*- coding: utf-8 -*- # filename: db_bak.py ...
- Angular实现注册系统
Angular是Google开发的前端技术框架,下载地址:https://code.angularjs.org/1.5.0/angular.js 通过对angular的简单理解后发现,angular通 ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)
一.我的需求 我希望做成具有以下功能的软件:1. 间隔一段时间登录我的邮箱查看是否有未读邮件 如果不断的运行查看是否有新邮件确实没多大必要. 另外如果这个客户端登录我的邮箱,那么我可能就不能用浏览器登 ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(中)
这篇博客,主要讲解用Python实现邮箱服务的几个需要学习的模块:E-mail Compotion and Decoding(邮件生成和解析).SMTP.POP.IMAP 如上篇博客所讲,我学习过程参 ...
- 页面注册系统--使用forms表单结合ajax
页面注册系统--使用forms表单结合ajax 在Django中通过forms构建一个表单 1.urls.py 配置路由 from django.conf.urls import url from d ...
- python数据库操作 - MySQL入门【转】
python数据库操作 - MySQL入门 python学院 2017-02-05 16:22 PyMySQL是Python中操作MySQL的模块,和之前使用的MySQLdb模块基本功能一致,PyMy ...
随机推荐
- (转)background-position—CSS设置背景图片的位置
background-position :在 CSS 中通过 background-position 属性可以调整背景图片的位置.因为在默认情况下背景图片都是从设置了 background-posit ...
- 学习WCF(1)
1. 什么是WCF WCF是创建面向服务应用程序的一个框架,用WCF, 你可以发送异步消息. 一个服务的终结点可以是服务宿主在IIS上面,也可以是一个服务宿主在应用程序上面.一个终结点也可以是客户端的 ...
- 前端CSS兼容的一些思路
半夜睡不着觉,起来写第一博. 近段时间,公司要给一个网站产品增加一个换色功能,安排我负责该事项. 之前参与过一些定制项目,是基于该产品的二次开发,说实话里面的前端结构很混乱.所以第一步就是将html前 ...
- Probably at least one of the constraints in the following list is one you don't want.
这个提示并不是出错,不理会它我的程序也没出现什么问题 但是处于强迫症,还是努力寻找解决的方法... 最终发现问题如下: 在xib各种绘制和添加约束的UITableViewCell之后,在某一特定情况想 ...
- 数据库(批处理, 事务,CachedRawSetImpl类
链接对象son产生的Statement SQL对象对数据库提交的任何一条语句都会被立刻执行 不方便我们进行一些连招操作 我们可以关闭它的自动提交,然后操作完再开,这过程称作事务 con.setAuto ...
- 使用Scanner来解析文件
前面的流是全部流进来再处理,空间换取时间 我们用Scanner来解析文件,先处理再输入数据,时间换取空间 两种方法 Scanner scanner1=new Scanner(file1); for(; ...
- Oracle数据库之PL/SQL程序设计简介
PL/SQL程序设计简介 一.什么是PL/SQL? PL/SQL是 Procedure Language & Structured Query Language 的缩写. ORACLE的SQL ...
- Mysql中的DQL查询语句
----------------1.查询所有列 --查询 学生 表所有记录(行) select *from 学生 --带条件的查询 select *from 学生 where 年龄>19 --- ...
- IE的有条件注释详解
IE的有条件注释是一种专有的(因此是非标准的).对常规(X)HTML注释的Miscrosoft扩展.顾名思义,有条件注释使你能够根据条件(比如浏览器版本)显示代码块.尽管是非标准的,但是有条件注释对于 ...
- 最简单的ASP动态页面生成伪静态方法
目前网站制作中很多网站都采用生成静态页的方法,原因是这样访问速度会得到提高(服务器端CPU利用率很低),另外也容易被搜索引擎收录,但是这带来的一个问题就是需要足够大的空间存放这些静态页面,如果你的空间 ...