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数据库查询数据相关推荐

  1. python 操作mysql数据库查询数据

    在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1. ...

  2. python自动化测试之mysql5.0版本数据库查询数据时出现乱码问题分析

    1.确保数据库编码是utf8编码.若不是,请将my.ini的client,mysql,mysqld三个字段下面添加default-character-set = utf8,这样可以永久改变在新建数据库 ...

  3. python如何编写数据库_如何在几分钟内用Python编写一个简单的玩具数据库

    python如何编写数据库 MySQL, PostgreSQL, Oracle, Redis, and many more, you just name it - databases are a re ...

  4. Python应用02--批量往Mysql数据库插入数据

    一.问题 有时候接口调试,需要往数据库导入测试数据,通常我们会手动写一些插入语句或者在controller里写一个批量插入的方法,但是总不得劲,比较繁琐.如今已经迈入人工智能的天下,还在用这样老土的方 ...

  5. ajax连接mysql数据库查询数据_ajax动态查询数据库数据并显示在前台的方法

    今天做了一个ajax动态查询数据库的小Demo,又重新学习了一下ajax的一些知识.在此和大家分享一下...... 啥都别说了,先上代码 Controller层 查询总用户数 @RequestMapp ...

  6. python编写一个简单的程序、验证数据是否符合正态分布_Python检验数据是否正态分布...

    判断数据是否符合正态分布,比如使用3-sigma判断数据异常前,首先需要确定的是数据是否符合正态分布.今天一起梳理下检测正态分布的方法. Shapiro-Wilk test Shapiro-Wilk ...

  7. 微信小程序php连接MySQL数据库查询数据

    刚开始学习小程序,做毕业设计,不过一直都被一个问题困扰,就是连接数据库实现数据的同步. 通过其他几篇文章总结出来的成果,记录分享一下,欢迎批评指正! 1.定义好数据库连接 文件名connect.php ...

  8. SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问

    2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问 一.大致介绍 1. ...

  9. 使用python编写一个完整的接口自动化用例

    使用python编写一个完整的接口自动化用例 以聚合数据的 查询天气接口为例: import requestsclass HttpRequests: def __init__(self,url, pa ...

最新文章

  1. Tutorial——使用Maven开发Cloud Driver
  2. 我在硅谷工作的第四年:技术是怎么把信息变现的
  3. R语言ggplot2可视化柱状图添加数值说明并控制文本、数值字体大小、轴标签字体大小实战
  4. Silverlight中调用WebService-发送邮件测试实例
  5. libc glibc glib 的关系
  6. 如何提高PHP代码的质量?第三部分 端到端/集成测试
  7. 手机电脑壁纸!让你的桌面变得超酷
  8. jQuery 表格排序插件 Tablesorter 使用
  9. Android MMKV框架引入使用
  10. php网页读取sql数据库数据模板,discuz模板中直接读取数据库中的插件数据
  11. 二十三种设计模式之工厂模式(含Java工厂模式的实现)
  12. 变量的三重属性_内存寻梦环游记:一个变量的三重死亡
  13. OpenHarmony命令行工具hdc_std使用总结
  14. 天眼查、企查查APP的Authorized值和sign值破解思路记载
  15. RingAllreduce和NCCL
  16. oracle 定义小数,Oracle中NUMBER类型如果不指定长度和小数点精度默认是多长
  17. ELK:Logstash 字段名称大小写切换
  18. 手机副业哪个好?利用手机赚钱并不难
  19. 什么是搜索引擎蜘蛛机器人?是如何工作的
  20. Unity 游戏的String interning优化

热门文章

  1. IE下不显示自定义错误页面
  2. vba九九乘法表代码_用五种方法利用EXCEL制作九九乘法表
  3. 危害人类健康的饮食“凶徒” 都是人造的
  4. Android使用Google Map服务 - 根据GPS信息在地图上定位
  5. 【电口模块专题】你不知道的电口模块冷知识
  6. “共享汽车”探索城市交通建设新模式
  7. jude 5.5.2 UML
  8. Mysql多表查询,获取部门最高工资的sql语句方案
  9. 欧姆定理验证,电阻的电压/电流/功率,电阻串联,电阻并联,电阻分压
  10. Android简单学习使用PictureSelector框架图片选取裁剪