接口测试——python接口开发(二)

目录

1. python接口开发框架Flask简介与安装

2. 使用Flask开发一个Get接口

3. 使用Flask开发一个Post接口

4. Flask结合PyMySQL接口与数据库的交互


1. python接口开发框架Flask简介与安装

 

  • Flask接口测试框架的简介与安装
  • Flask是轻量级的web开发框架
  • 相比于其他框架,Flask更自由,灵活
  • 相比于其他框架,Flask更容易上手

Flask安装网址:Flask 中文网

  • 安装Flask:pip install Flask

 

2. 使用Flask开发一个Get接口

  • 开发get接口
from flask import Flaskapp = Flask(__name__)@app.route("/")
def hello_world():return "hello world qqqqqq"if __name__ == "__main__":app.run()
  • 输入以上代码得出以此后的链接:http://127.0.0.1:5000

 

  • 如果想连续网址后面的参数,那就在写代码时添加/hello后,再打开原有的网址后添加/hello,再重启

 

http://127.0.0.1:5000/hello

 

  • 如果只是在网址后随意输入任意参数结果是无法接收到的

 

  • 以下解决方法:
from flask import Flaskapp = Flask(__name__)@app.route("/")
def hello_world():return "hello world qqqqqq"@app.route("/hello")
def hello_world2():return "hello22222"@app.route("/hello/<username>")
def hello_world3(username):print(username)return "hello22222"  + usernameif __name__ == "__main__":app.run()
  • 重启之后打开:http://127.0.0.1:5000/hello/aaa

 

  • 并在python里打印出了aaa

  • 路径不能一样,否则打印结果一样

  • 以下代码修改路径之后再重启

 

from flask import Flask,requestapp = Flask(__name__)@app.route("/")
def hello_world():return "hello world qqqqqq"@app.route("/hello")
def hello_world2():return "hello22222"@app.route("/hello/<username>")
def hello_world3(username):print(username)return "hello22222"  + username@app.route("/hello/args/<username>")
def hello_world4(username):print(username)key = request.args.get("key")print(key)return "hello22222"  + username + "::::" + keyif __name__ == "__main__":app.run()
  • 重启之后打开:http://127.0.0.1:5000/hello/args/aaa?key=qqqqqq

 

  • 并在python里打印出了aaa和qqqqqq
  • 如果想在网址后方添加value以下代码

 

from flask import Flask,requestapp = Flask(__name__)@app.route("/")
def hello_world():return "hello world qqqqqq"@app.route("/hello")
def hello_world2():return "hello22222"@app.route("/hello/<username>")
def hello_world3(username):print(username)return "hello22222"  + username@app.route("/hello/args/<username>")
def hello_world4(username):print(username)key = request.args.get("key")value = request.args.get("value")print(key)return "hello22222"  + username + "::::" + key + "::::" + valueif __name__ == "__main__":app.run()
  • 重启之后打开http://127.0.0.1:5000/hello/args/aaa?key=qqqqqq&value=vvvvv

 

  • 并在python里打印出了aaa和qqqqqq和vvvvv

 

3. 使用Flask开发一个Post接口

  • 端口号可以在这里修改
  • 开发post接口

 

from flask import Flask,requestapp = Flask(__name__)@app.route("/mypost",methods=["post"])
def my_post():return "post request"if __name__ == "__main__":app.run(port=5555)
  • 如果直接打开这个链接是无法访问的http://127.0.0.1:5555/mypost

 

  • 修改后的代码:
from flask import Flask,requestapp = Flask(__name__)@app.route("/mypost",methods=["post"])
def my_post():return "post request"@app.route("/mypost1",methods=["post"])
def my_post1():# 表单数据类型username =request.form["username"]sex = request.form["sex"]print(username)print(sex)return "post request" + username + "::" + sex@app.route("/mypost1",methods=["post"])
def my_post2():# json数据类型request_data =request.get_json()sex = request.form["sex"]print(request_data)print(request_data["user"])return "post request" + str(request_data)if __name__ == "__main__":app.run(port=5555)

4. Flask结合PyMySQL接口与数据库的交互

Installation — PyMySQL 0.7.2 documentation

 

  • 这时我们需要打开python下方Terminal

  • 输入exit()回车后弹出输入页面

  • 输入:pip install PyMySQL

  • mysql的基本连接信息

import pymysql
from flask import Flask# 这里是mysql的基本连接信息
conn = pymysql.connect(host="192.168.1.116",user="root",password="123",database="nydb1",charset="utf8"
)cursor = conn.cursor()app = Flask(__name__)@app.route("/")
def hello_world():sel = "select * from school"result = cursor.execute(sql)# 得到查询后的真正的结果r = cursor.fetchall()print(r)return str(r)if __name__ == "__main__":app.run()
  • 刷新http://127.0.0.1:5000 后查询到的四条信息v:


 

以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/25256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ Primer(第5版) 全书重点学习笔记

目录 第12章 动态内存 12.1 动态内存与智能指针 12.1.6 weak_ptr 12.2 动态数组 12.2.1 new和数组 12.2.2 allocator类 第12章 动态内存 12.1 动态内存与智能指针 12.1.6 weak_ptr weak_ptr是一种不控制所指向对象生存期的智能指针&#xff0c;它指向由一个shared_pt…

岛屿的最大面积

给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0&#xff08;代表水&#xff09;包围着。 岛屿的面积是岛上值为 1 …

《Zookeeper》从零开始学Zookeeper源码(二)之数据序列化与通信协议

目录 序列化与反序列化通信协议请求头的数据结构响应头的数据结构 序列化与反序列化 zookeeper的客户端与服务端、服务端与服务端之间会进行一系列的网络通信&#xff0c;在进行数据的传输过程中就涉及到序列化与反序列化&#xff0c;zookeeper使用Jute作为它的序列化组件&…

【雕爷学编程】Arduino动手做(187)---1.3寸OLED液晶屏模块3

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

77 | Python数据分析篇——Pandas之DataFrame对象总结

Pandas是Python中最受欢迎和广泛使用的数据处理库之一,它提供了灵活、高效的数据结构和数据分析工具,让数据分析和处理变得更加简单和便捷。Pandas中最重要的两个数据结构是Series和DataFrame,它们分别对应于一维标签数组和二维标签表格,为数据分析和处理提供了强大的功能。…

koa框架介绍以及核心原理实现

介绍 Koa 是一个新的 web 框架&#xff0c;由 Express 幕后的原班人马打造&#xff0c; 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数&#xff0c;Koa 帮你丢弃回调函数&#xff0c;并有力地增强错误处理。 Koa 并没有…

LangChain+ChatGLM整合LLaMa模型(二)

开源大模型语言LLaMa LLaMa模型GitHub地址添加LLaMa模型配置启用LLaMa模型 LangChainChatGLM大模型应用落地实践&#xff08;一&#xff09; LLaMa模型GitHub地址 git lfs clone https://huggingface.co/huggyllama/llama-7b添加LLaMa模型配置 在Langchain-ChatGLM/configs/m…

C++入门之stl六大组件--List源码深度剖析及模拟实现

文章目录 前言 一、List源码阅读 二、List常用接口模拟实现 1.定义一个list节点 2.实现一个迭代器 2.2const迭代器 3.定义一个链表&#xff0c;以及实现链表的常用接口 三、List和Vector 总结 前言 本文中出现的模拟实现经过本地vs测试无误&#xff0c;文件已上传gite…

Word中如何断开表格中线段

Word中如何断开表格中线段_word表格断线怎么弄_仰望星空_LiDAR的博客-CSDN博客有时候为了美观&#xff0c;需要实现如下的效果&#xff0c;即第2条线段被断开成3段步骤如下&#xff1a;选中需要断开的格网&#xff0c;如下&#xff0c;再选择段落、针对下框标即可。_word表格断…

python列表查询方法

列表索引&#xff0c;如a[1,2,3,4,5]&#xff0c;用a[2]来提取第三个元素列表切片&#xff0c;a[:3],a[-2:]&#xff0c;a[0:2]等切片来提取多个元素&#xff1b;列表成员运算符&#xff0c;如2 in a结果为True&#xff1b;列表方法&#xff1a;append()在列表末尾添加一个元素…

两个集合取交集、并集、差集

1. 准备数据&#xff1a; List<String> list1 new ArrayList<String>();list1.add("1");list1.add("2");list1.add("3");list1.add("5");list1.add("6");System.out.println("---- list1 ----");Sys…

ROS激光雷达数据解析和获取

整体思路 catkin_create_pkg lidar_pkg roscpp rospy sensor_msgs lidar_node.cpp #include<ros/ros.h> #include<sensor_msgs/LaserScan.h>void LidarCallback(const sensor_msgs::LaserScan msg) {float fMidDist msg.ranges[180];//解析数据msg里面的数组是最…

大数据-数据内容分类

大数据-数据内容分类 结构化数据 可以使用关系型数据库表示和存储&#xff0c;可以用二维表来逻辑表达实现的数据 结构化数据&#xff1a;二维表&#xff08;关系型&#xff09; 结构化数据&#xff1a;先有结构、再有数据 数据以行为单位&#xff0c;一行数据表示一个实体…

web前端html

文章目录 快捷方式一、html5的声明二、html5基本骨架 2.1 html标签 2.2 head标签 2.3 body和head同级 2.4 body标签 2.5 title标签 2.6 meta标签 三、标题标签介绍与应用 3.1 标题的介绍 3.2 标题标签位置摆放 3.3 标签之段落、换行、水平线 3.3 标签之图片 3.3.1 图…

springboot松散绑定

目录 问题引进 宽松绑定 Value&#xff08;补充&#xff09; 问题引进 在进行属性绑定时&#xff0c;可能会遇到如下情况&#xff0c;为了进行标准命名&#xff0c;开发者会将属性名严格按照驼峰命名法书写&#xff0c;在yml配置文件中将datasource修改为dataSource&…

【Docker】DockerFile

目录 一、镜像原理 二、如何制作镜像 1、容器转镜像 2、DockerFile 三、DockerFile关键字​编辑 四、案例&#xff1a;部署SpringBoot项目 一、镜像原理 docker镜像是由一个特殊的文件系统叠加而成的&#xff0c;他的最低端是bootfs&#xff0c;并使用宿主机的bootfs&…

ruoyi若依 组织架构设计--[ 角色管理 ]

ruoyi若依 组织架构设计--[ 角色管理 ] 角色新增后端代码 角色修改后端代码 角色查询角色删除角色分配数据权限后端代码 角色分配用户 角色新增 后端代码 有一点&#xff0c;我认为新增的时候&#xff0c;也需要修改redis中的权限。 角色修改 后端代码 因为修改了role_menu表了…

Java8 list多属性去重

大家好&#xff0c;我是三叔&#xff0c;很高兴这期又和大家见面了&#xff0c;一个奋斗在互联网的打工人。 在 Java 开发中&#xff0c;我们经常会面临对 List 中的对象属性去重的需求。然而&#xff0c;当需要根据多个属性来进行去重时&#xff0c;情况会稍微复杂一些。本篇…

51单片机程序烧录教程

STC烧录步骤 &#xff08;1&#xff09;STC单片机烧录方式采用串口进行烧录程序&#xff0c;连接的方式如下图&#xff1a; &#xff08;2&#xff09;所以需要先确保USB转串口驱动是识别到&#xff0c;且驱动运行正常&#xff1b;是否可通过电脑的设备管理器查看驱动是否正常…

数据结构——红黑树

文章目录 一.红黑树的定义二.红黑树的插入1.红黑树节点的定义2.红黑树的插入操作3.总结&#xff1a; 三.红黑树与AVL树的比较四.检验手写的红黑树五.源码 一.红黑树的定义 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff…