python学习之最简单的用户注册及登录验证小程序
文章都是从我的个人博客上粘贴过来的哦,更多内容请点击 http://www.iwangzheng.com
正如很多同学所知道的,楼主开始学习python了,前进的道路曲曲折折,有荆棘也有陷阱,从最简单的小程序写起,每天练习,将python进行到底。
有一点比较别扭的就是python的换行之后空四个空格,ruby都是两个,并且python在方法和循环语句的第一句都要加冒号
mysql> show create table user;
mysql> alter table user add salt char(10);
import hashlib
In [64]: passwd='' In [67]: md5pass=hashlib.md5(passwd) In [69]: hashlib.md5(passwd).hexdigest()
Out[69]: '96e79218965eb72c92a549dd5a330112' In [70]: hashlib.sha1(passwd).hexdigest()
Out[70]: '3d4f2bf07dc1be38b20cd6e46949a1071f9d0e3d' In [71]: len(hashlib.sha1(passwd).hexdigest())
Out[71]: 40
In [72]: import string In [73]: import random
In [74]: string.letters
Out[74]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' In [75]: string.digits
Out[75]: '' In [76]: string.digits+string.letters
Out[76]: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' In [77]: random.sample(string.letters,5)
Out[77]: ['S', 'E', 'w', 'F', 'L'] In [78]: ''.join(random.sample(string.letters,10))
Out[78]: 'RVviZAqLQK'
dbconfig ={
'host':'localhost',
'user':'root',
'passwd':'',
'charset':'utf8',
'db':'db_02'
}
import MySQLdb
import string
import random
import hashlib
class User(object):
def __init__(self, name, email, passwd,salt):
conn = MySQLdb.connect(**dbconfig)
cursor = conn.cursor()
sql = 'insert into user(name, email, password, salt) values(%s, %s, %s, %s)'
cursor.execute(sql, (name, email, passwd, salt))
#self.name = name
#self.email = email
conn.commit()
cursor.close()
conn.close()
@staticmethod
def regist( name, email, passwd):
salt,passwd = User.salt_passwd(passwd)
User(name, email, passwd, salt)
@staticmethod
def login(name, passwdin):
conn = MySQLdb.connect(**dbconfig)
cursor = conn.cursor()
sql = 'select id,name,email,password,salt from user where name=%s'
if cursor.execute(sql, (name,)):
userid,name, email, passwd, salt =cursor.fetchone()
#print cursor.fetchone()
salt_passwdin = hashlib.sha1(salt+passwdin).hexdigest()
if passwd == salt_passwdin:
return userid
return None
#def get_user(userid)
def get_name(self, userid):
return userid, name, email,
@staticmethod
def salt_passwd(passwd):
salt = ''.join(random.sample(string.letters, 10))
passwd = hashlib.sha1(salt+passwd).hexdigest()
return salt, passwd
testuser = {
'name':'alen',
'passwd':'',
'email':'alen@a.com'
}
#User.regist(**testuser)
print User.login(name='alenaaa', passwdin='')
python学习之最简单的用户注册及登录验证小程序的更多相关文章
- 简单的登录验证小程序_python
一.要求 输入用户名密码,验证成功之后显示欢迎信息,输错三次后锁定. 程序: #!/usr/bin/env python# _*_ coding:utf-8 _*_#Author:chenxz #将黑 ...
- python学习之最简单的获取本机ip信息的小程序
文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉py ...
- python学习—几个简单小程序
1. 输出1到100的偶数 #!/usr/bin/env python # -*- coding:utf-8 -*- #定义初始值 start=1 while True: #判断start的值若其为5 ...
- Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等
http://blog.csdn.net/h7870181/article/details/8653865 以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后 ...
- openfire Android学习(一)----实现用户注册、登录、修改密码和注销等
以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了.后来在网上看到用openfire做服务器,利用强大的Sm ...
- 吴裕雄 python 人工智能——智能医疗系统后台用户注册、登录和初诊简约版代码展示
#用户注册.登录模块 #数据库脚本 CREATE TABLE usertable( userid number(8) primary key not null , username varchar(5 ...
- DJango简单的后台定义登录验证
第一步创建一个新的项目 APPLICATIONNAME : 表示创建子项目 第二步:找到主项目的url 进行 include 分发式url 简单的说,就是将app里边的url放在这里. 这里也可以找到 ...
- python 学习 : 一个简单的秒表
游戏说明:绿色数字(左边表示成功停止在整秒的次数,右边表示停止的总次数) 点击stop,如果小数点后为0,即你停止的时间是整秒数,右上方斜杠左边数字加一 把代码复制到这个网页code run he ...
- Python学习第一天 -- 简单的属性、 语法学习
1,哈哈哈,是时候来一波Python,其实没办法,最近在做后台的时候,需要用到Python来调试接口,下面是它的简单的语法,权当是记录. 2, #!/user/bin/python # coding= ...
随机推荐
- ios上uiwebview的一些实用技巧
前几个星期接到公司一个项目,要用webview在客户端上播视频,作为一个前端实习生,这种需求真是蛋疼……一不知webview是何方神圣,二不知咋调试…… 下面就是蛋疼的开始: 寻找调试工具:好,非w ...
- jquery源码分析
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 前段时间上班无聊之时,研究了 ...
- JS弹出窗口代码大全(详细整理)
1.弹启一个全屏窗口 复制代码代码如下: <html> <body http://www.jb51.net','脚本之家','fullscreen');">; < ...
- 【转】Eclipse下导入外部jar包的3种方式
我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通 ...
- BZOJ1083 繁忙的都市
Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口 ...
- POJ3169 Layout
Description Like everyone else, cows like to stand close to their friends when queuing for feed. FJ ...
- HDU 4901 The Romantic Hero
The Romantic Hero Time Limit: 3000MS Memory Limit: 131072KB 64bit IO Format: %I64d & %I64u D ...
- POJ1258Agri-Net(prime基础)
Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 46811 Accepted: 19335 Descri ...
- 多线程java代码移植到android&下载文本界面的更新
1)效果演示:
- Spring学习8-Spring事务管理(编程式事务管理)
一.Spring事务的相关知识 1.事务是指一系列独立的操作,但在概念上具有原子性. 比如转账:A账号-100, B账号+100,完成.这两个操作独立是没问题的. 但在逻辑上,要么全部完成,要么一 ...