连接MySQL数据库
python和mysql相连 需要安装Mysql-python的一个插件
然后连接
import MySQLdb
from datetime import date
if __name__ == '__main__':
# 连接数据库,返回数据库连接对象
conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='root', db='lzc', port=3306, charset='utf8')
# 返回游标对象
cur = conn.cursor()
# 通过execute()执行sql语句
# ret = cur.execute("""select * from student where sname="jack";""")
ret = cur.execute("""select * from student;""")
print ret
# 从查询结果里取出一条记录
# data = cur.fetchone()
# print data
# print data[0]
# print data[1]
# print data[2]
# print data[3]
# print data[4].year
# print data[4].month
# print data[4].day
# 取出查询结果的所有行
datas = cur.fetchall()
print datas
for data in datas:
print data[1]
# 断开连接
conn.close()
将员工注册信息写入数据库,查询也从数据库查。代码如下
import MySQLdb
def register(cur):
"""
注册用户
:param path: 保存帐号信息的文件路径
:return: 0: 成功 1: 失败
"""
user = raw_input('请输入用户名:')
passwd = raw_input('请输入密码:')
sql = '''insert into account(username, password) values('%s', '%s');'''%(user, passwd)
try:
cur.execute(sql)
except: return 1
return 0
def login(cur):
"""
用户登录系统
:param path: 保存帐号信息的文件路径
:return: 0: 成功 1: 用户名不存在,登录失败 2. 密码错误,登录失败
"""
user = raw_input('请输入用户名:')
passwd = raw_input('请输入密码:')
sql = '''select password from account where username='%s';'''%user
# print sql
ret = cur.execute(sql)
if ret == 1:
if passwd == cur.fetchone()[0]:
return 0
else:
return 2
if ret==0:
return 1
def main():
conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='root', db='lzc', port=3306, charset='utf8')
c = conn.cursor()
while True:
print '1. 注册用户'
print '2. 登录系统'
print '3. 退出系统'
opt = raw_input('请选择[1-->3]:')
if '1' == opt:
ret = register(c)
if not ret:
print '注册用户成功\n'
else:
print '注册失败\n'
elif '2' == opt:
ret = login(c)
if ret == 0:
print '登录成功\n'
elif ret == 1:
print '用户名不存在,登录失败\n'
else:
print '密码错误,登录失败\n'
elif '3' == opt:
break
else:
print "错误选项!\n"
conn.close()
print "Bye."
if __name__ == '__main__':
main()
unittest单元测试框架
import MySQLdb
def register(cur):
"""
注册用户
:param path: 保存帐号信息的文件路径
:return: 0: 成功 1: 失败
"""
user = raw_input('请输入用户名:')
passwd = raw_input('请输入密码:')
sql = '''insert into account(username, password) values('%s', '%s');'''%(user, passwd)
try:
cur.execute(sql)
except: return 1
return 0
def login(cur):
"""
用户登录系统
:param path: 保存帐号信息的文件路径
:return: 0: 成功 1: 用户名不存在,登录失败 2. 密码错误,登录失败
"""
user = raw_input('请输入用户名:')
passwd = raw_input('请输入密码:')
sql = '''select password from account where username='%s';'''%user
# print sql
ret = cur.execute(sql)
if ret == 1:
if passwd == cur.fetchone()[0]:
return 0
else:
return 2
if ret==0:
return 1
def main():
conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='root', db='lzc', port=3306, charset='utf8')
c = conn.cursor()
while True:
print '1. 注册用户'
print '2. 登录系统'
print '3. 退出系统'
opt = raw_input('请选择[1-->3]:')
if '1' == opt:
ret = register(c)
if not ret:
print '注册用户成功\n'
else:
print '注册失败\n'
elif '2' == opt:
ret = login(c)
if ret == 0:
print '登录成功\n'
elif ret == 1:
print '用户名不存在,登录失败\n'
else:
print '密码错误,登录失败\n'
elif '3' == opt:
break
else:
print "错误选项!\n"
conn.close()
print "Bye."
if __name__ == '__main__':
main()
import unittest
from HTMLTestRunnerCN import HTMLTestRunner
from testcases import AddTests
if __name__ == '__main__':
# 从测试用例的类中加载测试用例,返回测试套件(testsuite 测试用例的集合)
testsuite = unittest.defaultTestLoader.loadTestsFromTestCase(AddTests)
# report = open('report.txt', 'w')
# 创建一个TextTestRunner对象
# runner = unittest.TextTestRunner(stream=report, verbosity=2)
report = open('report.html', 'w')
runner = HTMLTestRunner(stream=report, verbosity=2,description='测试描述信息', title='Add测试报告', tester='李志超')
# 执行测试套件
runner.run(testsuite)
report.close()
import unittest
from testclass import Maths
class AddTests(unittest.TestCase):
"""
add函数测试用例
"""
def setUp(self):
# print 'setUp.'
self.m = Maths()
def tearDown(self):
# print "tearDown."
pass
# 每个test开头的方法对应一个测试用例
def test1(self):
m = self.m
ret = m.add(1, 2)
self.assertEqual(ret, 3, msg='返回值不等于预期')
# 每个test开头的方法对应一个测试用例
def test2(self):
m = self.m
ret = m.add('hello', 'world')
self.assertEqual(ret, 'helloworld', msg='返回值不等于预期')
# 每个test开头的方法对应一个测试用例
def test3(self):
m = self.m
ret = m.add([11,22], [33,])
self.assertEqual(ret, [11,22,33,], msg='返回值不等于预期')
class AddTests(unittest.TestCase):
"""
add函数测试用例
"""
# @classmethod
# def setUpClass(cls):
# print "setUpClass..."
#
# @classmethod
# def tearDownClass(cls):
# print "tearDownClass..."
def setUp(self):
# print 'setUp.'
self.m = Maths()
def tearDown(self):
# print "tearDown."
pass
# 每个test开头的方法对应一个测试用例
def test1(self):
m = self.m
ret = m.add(1, 2)
self.assertEqual(ret, 4, msg='返回值不等于预期')
# 每个test开头的方法对应一个测试用例
def test2(self):
m = self.m
ret = m.add('hello', 'world')
self.assertEqual(ret, 'helloworld', msg='返回值不等于预期')
# 每个test开头的方法对应一个测试用例
def test3(self):
m = self.m
ret = m.add([11,22], [33,])
self.assertEqual(ret, [11,22,33,], msg='返回值不等于预期')