python标准数据库接口为_Python接口测试之对MySQL的增、删、改、查操作(五)

本文章主要来说python对mysql数据库的基本操作,前提是已搭建python环境和Mysql数据库的环境,这里不再详细介绍。在python的命令行环境下看是否可以导入MySQLdb,如果可以导入并且无任何的错误提示,表示已经安装成功了,见截图:

已经很成功的安装了python操作mysql的数据库,在这里,我们详细的介绍对python对mysql的增加,删除,修改和查询的基本操作,这里使用的数据库名称是“day2017”,我们对数据库的操作,首先是创建数据库,然后是在数据库中创建表,在这里,表的名称为:userInfo,见创建好的表字段信息:

创建好数据库以及创建好了数据库中的表以后,下来开始操作数据库,操作数据库的第一步当然是连接数据库,然后是创建游标,接下来是对数据库的各种操作,这里我们先来操作Insert数据的操作,见实现的代码:

查看数据库,可以看到,数据已经插入到数据库中,见查询的结果:

在上面的案例中,只是插入了单条数据,实际上,某些时候,会插入多条数据,也就是批量插入,批量插入实现的代码为:

接下来,我们来查看数据库的查询,数据查询分为二种,一种是查询的结果是一条语句,使用的是fetchone()方法,另外一种是查询的数据结果是多条,使用的方法是fetchmany(),我们分别来看这二个方法的使用,我们先来看单条数据的查询,见实现的代码:

多条数据的查询,见实现的代码:

下面我们来看更新语句的测试,见实现的代码:

最后一步,也就是删除数据了,直接看如下的实现代码:

事实上,对于如上操作数据库的方式,有很多的代码是可以重够的,比如连接数据库的方式,另外,我们可以把操作数据库的方式写在一个类里面,在业务调用的时候直接调用我们的数据库方法进行操作,见下面操作mysql数据库的方法,见源码:

#!/usr/bin/env python

#coding:utf-8

import MySQLdb

class MySQLHelper(object):

def __init__(self):

pass

def get_one(self,sql,params):

conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='server',db='day2017')

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

retCount = cur.execute(sql,params)

data = cur.fetchone()

cur.close()

conn.close()

return data

def get_many(self,sql,params):

conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='server',db='day2017')

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

retCount = cur.execute(sql,params)

data = cur.fetchall()

cur.close()

conn.close()

return data

def insert_one(self,sql,params):

conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='server', db='day2017')

cur = conn.cursor()

cur.execute(sql, params)

conn.commit()

cur.close()

return u'插入数据库成功'

def insert_many(self,sql,params):

conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='server', db='day2017')

cur = conn.cursor()

cur.executemany(sql, params)

conn.commit()

cur.close()

return u'批量插入数据库成功'

def update_one(self,sql,params):

conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='server', db='day2017')

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

ret = cur.execute(sql, params)

conn.commit()

cur.close()

conn.close()

return u'更新数据库成功'

def delete_one(self,sql,params):

conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='server', db='day2017')

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

ret = cur.execute(sql, params)

conn.commit()

cur.close()

conn.close()

return u'删除数据库成功'

把连接数据库部分进行重构,放到一个config.py的文件中,这样我们连接数据库的方法就只需要在config.py文件维护了,而不需要在如上代码中每个都得看的修改,这实在是很糟糕,见重构后的config.py文件源码:

#!/usr/bin/env python

#coding:utf-8

conn_dict=dict(host='127.0.0.1', user='root', passwd='server', db='day2017')

见重构后操作mysql的数据库方法,见源码:

#!/usr/bin/env python

#coding:utf-8

import MySQLdb

import config

class MySQLHelper(object):

def __init__(self):

self.conn=config.conn_dict

def get_one(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

retCount = cur.execute(sql,params)

data = cur.fetchone()

cur.close()

conn.close()

return data

def get_many(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

retCount = cur.execute(sql,params)

data = cur.fetchall()

cur.close()

conn.close()

return data

def insert_one(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor()

cur.execute(sql, params)

conn.commit()

cur.close()

return u'插入数据库成功'

def insert_many(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor()

cur.executemany(sql, params)

conn.commit()

cur.close()

return u'批量插入数据库成功'

def update_one(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

ret = cur.execute(sql, params)

conn.commit()

cur.close()

conn.close()

return u'更新数据库成功'

def delete_one(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

ret = cur.execute(sql, params)

conn.commit()

cur.close()

conn.close()

return u'删除数据库成功'

写数据库的操作方法,是为了进行对业务的操作,要不仅仅写这些没什么实际的意义,如我们实现输入用户名和密码,在在数据库中验证,如果用户名和密码都是admin,那么通过,如果有其中一个不是admin,就提示用户,请提示用户用户名或者密码错误,下面来实现这样的一个过程,见实现的源码:

#!/usr/bin/env python

#coding:utf-8

import MySQLdb

import config

class MySQLHelper(object):

def __init__(self):

self.conn=config.conn_dict

def get_one(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

retCount = cur.execute(sql,params)

data = cur.fetchone()

cur.close()

conn.close()

return data

def get_many(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

retCount = cur.execute(sql,params)

data = cur.fetchall()

cur.close()

conn.close()

return data

def insert_one(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor()

cur.execute(sql, params)

conn.commit()

cur.close()

return u'插入数据库成功'

def insert_many(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor()

cur.executemany(sql, params)

conn.commit()

cur.close()

return u'批量插入数据库成功'

def update_one(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

ret = cur.execute(sql, params)

conn.commit()

cur.close()

conn.close()

return u'更新数据库成功'

def delete_one(self,sql,params):

conn = MySQLdb.connect(**self.conn)

cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)

ret = cur.execute(sql, params)

conn.commit()

cur.close()

conn.close()

return u'删除数据库成功'

class CheckUserInfo(object):

def __init__(self):

self.__helper=MySQLHelper()

def checkValid(self,username,password):

sql='select * from userInfo where username=%s and password=%s'

params=(username,password)

return self.__helper.get_one(sql,params)

def info():

username=raw_input(u'请输入你的用户名:\n')

password=raw_input(u'请输入你的密码:\n')

userInfo=CheckUserInfo()

result=userInfo.checkValid(username,password)

if not result:

print u'用户名或者密码错误,请联系管理员'

else:

print u'恭喜您,输入正确!'

if __name__=='__main__':

info()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要创建一个Python Flask的MySQLAPI,你需要安装一些依赖模块。你可以使用pip来安装这些模块。首先,使用pip安装以下依赖模块:python-mpipinstallflask==1.1.2、python-mpipinstallflask_migrate==2.7.0、python-mpipinstallflask_sqlalchemy和python-mpipinstallflask_script。\[1\] 接下来,你需要在app.py文件中逐步添加以下代码。首先导入一些要用到的库,包括pymysql、Flask、SQLAlchemy、make_response、request和Flask-Cors。然后,你可以使用Flask和SQLAlchemy来创建一个Flask应用和一个数据库连接。最后,你可以使用Flask-Cors来处理跨域请求。\[2\] 如果你想一次性安装所有依赖模块,你可以使用以下命令:pip install -r req_new.txt。在req_new.txt文件中列出了所有需要安装的模块,包括Flask、Flask-Caching、Flask-Cors、Flask-Migrate、Flask-RESTful、Flask-Script、Flask-SQLAlchemy、MarkupSafe、PyJWT、PyMySQL、qiniu和redis。\[3\] 这样,你就可以开始编写Python Flask的MySQLAPI了。 #### 引用[.reference_title] - *1* [Python + Flask ORM实现](https://blog.csdn.net/weixin_41754309/article/details/125275931)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Flask+mysql 实现接口开发+测试(图文教程附源码)](https://blog.csdn.net/qq_29720657/article/details/124522898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Flask项目创建及数据库](https://blog.csdn.net/li_xiao_guang/article/details/127155857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值