python学习之最简单的用户注册及登录验证小程序

时间:2021-10-25 23:13:08

文章都是从我的个人博客上粘贴过来的哦,更多内容请点击 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. 4种解决json日期格式问题的办法

    4种解决json日期格式问题的办法   开发中有时候需要从服务器端返回json格式的数据,在后台代码中如果有DateTime类型的数据使用系统自带的工具类序列化后将得到一个很长的数字表示日期数据,如下 ...

  2. spring task 配置

    Spring对Quartz作了一个封装,同时,Spring自己也提供了一个任务定时器(spring-task),现把它总结一下.    对于Quartz,我们使用的时候主要是注重两个方面,一个是定时任 ...

  3. [转]DAO层,Service层,Controller层、View层

    来自:http://jonsion.javaeye.com/blog/592335 DAO层 DAO 层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DA ...

  4. 龙哥库塔法or欧拉法求解微分方程matlab实现

    举例:分别用欧拉法和龙哥库塔法求解下面的微分方程 我们知道的欧拉法(Euler)"思想是用先前的差商近似代替倒数",直白一些的编程说法即:f(i+1)=f(i)+h*f(x,y)其 ...

  5. QT 初试 MainWindow简易窗体

    1.创建一个空的QT工程文件 2 建立程序文件 MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include<QMainWind ...

  6. struts2&period;1&period;6教程三、在Action获取Scope对象

    引言:在前面的Action操作中,关键就是Action中的exectue方法,但是此方法并没有request.session.application等对象作为参数,自然就不能利用这些对象来操作.下面我 ...

  7. HashMap底层

    写在前面: 频繁用到 hashcode() 和 equals() put(key, value): 先计算 key 的hashcode, 找到对应的bucket,如果这个bucket上面已有key-v ...

  8. error&colon; Microsoft Visual C&plus;&plus; 14&period;0 is required(line&lowbar;profiler模块安装失败的解决办法)

    一.我的安装环境: 1.系统:win10,64位 2.python版本:python3.6.4 二.遇到的问题: 1.cmd黑屏终端下输入命令:pip install line_profiler(安装 ...

  9. java 迭代

    迭代器的作用是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节. java中的很多容器都实现了Iterable接口,容器中的元素都是可以遍历的. 如下例,list容器中存 ...

  10. 【Android】3&period;25 示例25--调启百度地图

    分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.简介 调启百度地图是指:利用SDK接口,可直接在本地打开百度地图客户端或WebApp实现地图功能. 目前支 ...