接口测试——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…

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

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

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

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

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表格断…

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里面的数组是最…

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 图…

【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…

Llama 2 with langchain项目详解(一)

Llama 2 with langchain项目详解(一) 2023年2月25日,美国Meta公司发布了Llama 1开源大模型。随后,于2023年7月18日,Meta公司发布了Llama 2开源大模型,该系列包括了70亿、130亿和700亿等不同参数规模的模型。相较于Llama 1,Llama 2的训练数据增加了40%,上下文长度提升至…

【ArcGIS Pro二次开发】(57):地图系列

在ArcGIS Pro中&#xff0c;有一个地图系列&#xff0c;可以在一个布局中导出多个地图。 在SDK中为ArcGIS.Desktop.layout.MapSeries类和映射系列导出选项&#xff0c;可以以支持多页导出。 MapSeries类提供了一个静态CreateSpatialMapSeries方法&#xff0c;该方法使用指定的…

SpringBoot核心内容梳理

1.SpringBoot是什么? Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它简化了Spring应用程序的创建和开发过程&#xff0c;使开发人员能够更快速地创建独立的、生产就绪的Spring应用程序。它采用了“约定优于配置”的原则&#xff0c;尽可能地减少开发人员需要进…

【Linux命令详解 | mkdir命令】Linux系统中用于创建新目录的命令

文章标题 简介一&#xff0c; 参数列表2&#xff0c;使用介绍1. 基础用法2. 使用 -p 参数创建多级目录3. 使用 -m 参数设置目录权限4. 使用 -v 参数查看详细信息5. 多个目录的创建6. 创建带有特殊字符的目录7. 重复创建目录8. 创建只读目录 总结 简介 mkdir命令在Linux系统中被…

【C++】透过STL源码深度剖析及模拟实现vector

鉴于读者的响应&#xff0c;打算将文章拆分一下&#xff0c;方便观看&#xff0c;基本接口可看 深入浅出STL之vector类 一、源码引入 以下我所介绍的都是基于【SGI】版本的STL&#xff0c;对源码有兴趣的同学可以去看看 侯捷老师的《STL源码剖析》 然后呢我们就去调出【vector…

【数据结构OJ题】删除有序数组中的重复项

原题链接&#xff1a;https://leetcode.cn/problems/remove-duplicates-from-sorted-array/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 用双指针算法&#xff0c;定义两个变量src和dst&#xff0c;一开始让src和dst指向num[ ]数组的第一个元素&a…

微服务——DSL查询文档+搜索结果处理

DSL Query分类 DSL Query的基本语法 全文检索查询 常用场景 match查询 要填一个存在的字段&#xff0c;已经要检索的内容 匹配度越高排名越前&#xff0c;这里all字段包含三个字段在里面。 multi_match查询 精确查询 不分词的查询 查询语法 term查询 range查询 gte是大于等…