文章都是从我的个人博客上粘贴过来的哦,更多内容请点击 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学习之最简单的用户注册及登录验证小程序的更多相关文章

  1. 简单的登录验证小程序_python

    一.要求 输入用户名密码,验证成功之后显示欢迎信息,输错三次后锁定. 程序: #!/usr/bin/env python# _*_ coding:utf-8 _*_#Author:chenxz #将黑 ...

  2. python学习之最简单的获取本机ip信息的小程序

    文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉py ...

  3. python学习—几个简单小程序

    1. 输出1到100的偶数 #!/usr/bin/env python # -*- coding:utf-8 -*- #定义初始值 start=1 while True: #判断start的值若其为5 ...

  4. Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等

    http://blog.csdn.net/h7870181/article/details/8653865 以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后 ...

  5. openfire Android学习(一)----实现用户注册、登录、修改密码和注销等

    以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了.后来在网上看到用openfire做服务器,利用强大的Sm ...

  6. 吴裕雄 python 人工智能——智能医疗系统后台用户注册、登录和初诊简约版代码展示

    #用户注册.登录模块 #数据库脚本 CREATE TABLE usertable( userid number(8) primary key not null , username varchar(5 ...

  7. DJango简单的后台定义登录验证

    第一步创建一个新的项目 APPLICATIONNAME : 表示创建子项目 第二步:找到主项目的url 进行 include 分发式url 简单的说,就是将app里边的url放在这里. 这里也可以找到 ...

  8. python 学习 : 一个简单的秒表

      游戏说明:绿色数字(左边表示成功停止在整秒的次数,右边表示停止的总次数) 点击stop,如果小数点后为0,即你停止的时间是整秒数,右上方斜杠左边数字加一 把代码复制到这个网页code run he ...

  9. Python学习第一天 -- 简单的属性、 语法学习

    1,哈哈哈,是时候来一波Python,其实没办法,最近在做后台的时候,需要用到Python来调试接口,下面是它的简单的语法,权当是记录. 2, #!/user/bin/python # coding= ...

随机推荐

  1. ios上uiwebview的一些实用技巧

    前几个星期接到公司一个项目,要用webview在客户端上播视频,作为一个前端实习生,这种需求真是蛋疼……一不知webview是何方神圣,二不知咋调试…… 下面就是蛋疼的开始:  寻找调试工具:好,非w ...

  2. jquery源码分析

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 前段时间上班无聊之时,研究了 ...

  3. JS弹出窗口代码大全(详细整理)

    1.弹启一个全屏窗口 复制代码代码如下: <html> <body http://www.jb51.net','脚本之家','fullscreen');">; < ...

  4. 【转】Eclipse下导入外部jar包的3种方式

    我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式.   1.最常用的普通 ...

  5. BZOJ1083 繁忙的都市

    Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口 ...

  6. POJ3169 Layout

    Description Like everyone else, cows like to stand close to their friends when queuing for feed. FJ ...

  7. HDU 4901 The Romantic Hero

    The Romantic Hero Time Limit: 3000MS   Memory Limit: 131072KB   64bit IO Format: %I64d & %I64u D ...

  8. POJ1258Agri-Net(prime基础)

    Agri-Net Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 46811   Accepted: 19335 Descri ...

  9. 多线程java代码移植到android&下载文本界面的更新

    1)效果演示:

  10. Spring学习8-Spring事务管理(编程式事务管理)

    一.Spring事务的相关知识   1.事务是指一系列独立的操作,但在概念上具有原子性. 比如转账:A账号-100, B账号+100,完成.这两个操作独立是没问题的. 但在逻辑上,要么全部完成,要么一 ...