python编写一个接口,链接mysql数据库查询数据
1、首先,使用python查询mysql数据库代码如下:
import MySQLdbdef getcontent():db = MySQLdb.connect('localhost', 'root', '1qaz!QAZ', 'zlnewschema', charset='utf8')cursor = db.cursor()sql = 'select * from user;'cursor.execute(sql)usercontent = cursor.fetchall()print(usercontent)for row in usercontent:fname = row[0]femail = row[1]fpw = row[2]ftime = row[3]print('name=%s,email=%s,password=%s,createtime=%s' %(fname, femail, fpw,ftime))db.close()if __name__ == '__main__':getcontent()
改为接口,用的Flask框架(可以对比看看需要改哪些地方):
Post请求(get直接换成get就行了):
import MySQLdb
import json
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
from flask import Flask,request
# from flask_cors import *
app = Flask(__name__)@app.route('/index1', methods=['POST'])
def getcontent():db = MySQLdb.connect('localhost', 'root', '1qaz!QAZ', 'zlnewschema', charset='utf8')cursor = db.cursor()sql = 'select * from user;'cursor.execute(sql)usercontent = cursor.fetchall()print(usercontent)userjson = []for row in usercontent:fname = row[0]femail = row[1]fpw = row[2]ftime = row[3]# print('name=%s,email=%s,password=%s,createtime=%s' %(fname, femail, fpw,ftime))user = 'name=%s,email=%s,password=%s,createtime=%s' %(fname, femail, fpw,ftime)userjson.append(user)db.close()return json.dumps(userjson, ensure_ascii=False, indent=4)if __name__ == '__main__':# getcontent()app.run(host='0.0.0.0', port=5590)
上面实现了一个简单的接口
但是上面返回的是所有的数据,怎么根据条件去筛选数据呢?比如我就想要 name = 张亮 的那条数据,操作如下。
具体代码如下:
import MySQLdb
import json
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
from flask import Flask,request
# from flask_cors import *
app = Flask(__name__)@app.route('/index1', methods=['POST'])
def zlindex():inputData = request.json.get('username')userdata = getcontent(inputData)return userdatadef getcontent(inputData):db = MySQLdb.connect('localhost', 'root', '1qaz!QAZ', 'zlnewschema', charset='utf8')cursor = db.cursor()sql = "select * from user where username = '%s';" %(inputData)cursor.execute(sql)usercontent = cursor.fetchall()print(usercontent)userjson = []for row in usercontent:fname = row[0]femail = row[1]fpw = row[2]ftime = row[3]# print('name=%s,email=%s,password=%s,createtime=%s' %(fname, femail, fpw,ftime))user = 'name=%s,email=%s,password=%s,createtime=%s' %(fname, femail, fpw,ftime)userjson.append(user)db.close()return json.dumps(userjson, ensure_ascii=False, indent=4)if __name__ == '__main__':# getcontent()app.run(host='0.0.0.0', port=5590)
postman搜索如下:
这时候,发现返回的只是一个字符串,然而想要一个标准化的json格式的话,就需要修改一下for循环的赋值方法:
import MySQLdb
import json
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
from flask import Flask,request
# from flask_cors import *
app = Flask(__name__)@app.route('/index1', methods=['POST'])
# def zlindex():
# inputData = request.json.get('username')
# userdata = getcontent(inputData)
# return userdatadef getcontent():db = MySQLdb.connect('localhost', 'root', '1qaz!QAZ', 'zlnewschema', charset='utf8')cursor = db.cursor()sql = "select * from user"# sql = "select * from user where username = '%s';" %(inputData)cursor.execute(sql)usercontent = cursor.fetchall()print(usercontent)userjson = []for row in usercontent:# fname = row[0]# femail = row[1]# fpw = row[2]# ftime = row[3]# print('name=%s,email=%s,password=%s,createtime=%s' %(fname, femail, fpw,ftime))user = {'name': row[0], 'email': row[1], 'password': row[2], 'createtime': row[3].strftime("%Y-%m-%d %H:%M:%S")}# print(user)userjson.append(user)# print(userjson)db.close()return json.dumps(userjson, ensure_ascii=False, indent=4) # 返回一个字典格式if __name__ == '__main__':# getcontent()app.run(host='0.0.0.0', port=5590)
过程中发现,接口请求会报服务端500,服务端报错为:TypeError: Object of type 'datetime' is not JSON serializable
最后找到的原因,是提取的值里有日期格式,作为一个字符串str输出无问题,但是json格式不能识别,只要赋值时转换下格式就行:'createtime': row[3].strftime("%Y-%m-%d %H:%M:%S")}
查询结果如下:
Postman使用方法详解:https://blog.csdn.net/fxbin123/article/details/80428216
Flask中文文档:http://docs.jinkan.org/docs/flask/
相关参考链接:https://www.cnblogs.com/testcoffee/p/6295970.html
https://www.jianshu.com/p/657c9be12e00
https://www.cnblogs.com/crss/p/8529002.html
————————————————
版权声明:本文为CSDN博主「Steven灬」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40547993/article/details/89632691
python编写一个接口,链接mysql数据库查询数据相关推荐
- python 操作mysql数据库查询数据
在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1. ...
- python自动化测试之mysql5.0版本数据库查询数据时出现乱码问题分析
1.确保数据库编码是utf8编码.若不是,请将my.ini的client,mysql,mysqld三个字段下面添加default-character-set = utf8,这样可以永久改变在新建数据库 ...
- python如何编写数据库_如何在几分钟内用Python编写一个简单的玩具数据库
python如何编写数据库 MySQL, PostgreSQL, Oracle, Redis, and many more, you just name it - databases are a re ...
- Python应用02--批量往Mysql数据库插入数据
一.问题 有时候接口调试,需要往数据库导入测试数据,通常我们会手动写一些插入语句或者在controller里写一个批量插入的方法,但是总不得劲,比较繁琐.如今已经迈入人工智能的天下,还在用这样老土的方 ...
- ajax连接mysql数据库查询数据_ajax动态查询数据库数据并显示在前台的方法
今天做了一个ajax动态查询数据库的小Demo,又重新学习了一下ajax的一些知识.在此和大家分享一下...... 啥都别说了,先上代码 Controller层 查询总用户数 @RequestMapp ...
- python编写一个简单的程序、验证数据是否符合正态分布_Python检验数据是否正态分布...
判断数据是否符合正态分布,比如使用3-sigma判断数据异常前,首先需要确定的是数据是否符合正态分布.今天一起梳理下检测正态分布的方法. Shapiro-Wilk test Shapiro-Wilk ...
- 微信小程序php连接MySQL数据库查询数据
刚开始学习小程序,做毕业设计,不过一直都被一个问题困扰,就是连接数据库实现数据的同步. 通过其他几篇文章总结出来的成果,记录分享一下,欢迎批评指正! 1.定义好数据库连接 文件名connect.php ...
- SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问 一.大致介绍 1. ...
- 使用python编写一个完整的接口自动化用例
使用python编写一个完整的接口自动化用例 以聚合数据的 查询天气接口为例: import requestsclass HttpRequests: def __init__(self,url, pa ...
最新文章
- Tutorial——使用Maven开发Cloud Driver
- 我在硅谷工作的第四年:技术是怎么把信息变现的
- R语言ggplot2可视化柱状图添加数值说明并控制文本、数值字体大小、轴标签字体大小实战
- Silverlight中调用WebService-发送邮件测试实例
- libc glibc glib 的关系
- 如何提高PHP代码的质量?第三部分 端到端/集成测试
- 手机电脑壁纸!让你的桌面变得超酷
- jQuery 表格排序插件 Tablesorter 使用
- Android MMKV框架引入使用
- php网页读取sql数据库数据模板,discuz模板中直接读取数据库中的插件数据
- 二十三种设计模式之工厂模式(含Java工厂模式的实现)
- 变量的三重属性_内存寻梦环游记:一个变量的三重死亡
- OpenHarmony命令行工具hdc_std使用总结
- 天眼查、企查查APP的Authorized值和sign值破解思路记载
- RingAllreduce和NCCL
- oracle 定义小数,Oracle中NUMBER类型如果不指定长度和小数点精度默认是多长
- ELK:Logstash 字段名称大小写切换
- 手机副业哪个好?利用手机赚钱并不难
- 什么是搜索引擎蜘蛛机器人?是如何工作的
- Unity 游戏的String interning优化
热门文章
- IE下不显示自定义错误页面
- vba九九乘法表代码_用五种方法利用EXCEL制作九九乘法表
- 危害人类健康的饮食“凶徒” 都是人造的
- Android使用Google Map服务 - 根据GPS信息在地图上定位
- 【电口模块专题】你不知道的电口模块冷知识
- “共享汽车”探索城市交通建设新模式
- jude 5.5.2 UML
- Mysql多表查询,获取部门最高工资的sql语句方案
- 欧姆定理验证,电阻的电压/电流/功率,电阻串联,电阻并联,电阻分压
- Android简单学习使用PictureSelector框架图片选取裁剪