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 ...
随机推荐
- 腾讯云升级到PHP7
1.删除之前安装的PHP yum remove php* php-common 2.安装yum源 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel ...
- pointer-events属性
pointer-events的风格更像JavaScript,它能够: 1.阻止用户的点击动作产生任何效果.阻止缺省鼠标指针的显示3.阻止CSS里的hover和active状态的变化触发事件4.阻止Ja ...
- JSP学习笔记(1)
JSP本质就是一个servlet,当第一次接受到客户端请求时会被编译成对应的servlet,且对应的每个servlet在容器中只要一个实例. 1.1.JSP注释 <%-- JSP注释部分 --& ...
- Ubuntu11.10打开XDMCP,使用XManager远程管理
ubuntu11.10-desktop-i386.iso缺省安装使用lightdm作为缺省登录器,这里说说开启XDMCP进行远程登录 首先关闭防火墙 sudo ufw disables Ubuntu所 ...
- C++中基类对象的引用
代码: #include <iostream> #include <cstdio> using namespace std; class A{ public: void pri ...
- 洛谷 P1515 旅行
P1515 旅行 题目描述 你要进行一个行程为7000KM的旅行,现在沿途有些汽车旅馆,为了安全起见,每天晚上都不开车,住在汽车旅馆,你手里现在已经有一个旅馆列表,用离起点的距离来标识,如下: 0, ...
- SQL Server 2008 查询所有用户表
SQL Server 2008 查询所有用户表的T-SQL语句是: SELECT * FROM sysobjects WHERE [xtype] = 'U' 或者是: SELECT * FROM sy ...
- IntelliJ IDEA 12 创建Web项目 教程 超详细版
IntelliJ IDEA 12 新版本发布 第一时间去官网看了下 黑色的主题 很给力 大体使用了下 对于一开始就是用eclipse的童鞋们 估计很难从eclipse中走出来 当然 我也很艰难的走 ...
- linux笔记2.24
安装vsftpd mount /dev/cdrom /mnt cp vsftpd-1.1.3-8.i386.rpm /home/soccer/ chmod 777 vsftpd-1.1.3-8.i38 ...
- Thinkphp 数据的修改及删除操作
一.数据修改操作 save() 实现数据修改,返回受影响的记录条数 具体有两种方式实现数据修改,与添加类似(数组.AR方式) 1.数组方式: a) $goods = D(“Goods ...