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

news2024/12/23 13:51:50

目录

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 Flask

app = 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 Flask

app = 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

if __name__ == "__main__":
    app.run()
  • 重启之后打开:http://127.0.0.1:5000/hello/aaa

 

  • 并在python里打印出了aaa

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

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

 

from flask import Flask,request

app = 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 + "::::" + key

if __name__ == "__main__":
    app.run()
  • 重启之后打开:http://127.0.0.1:5000/hello/args/aaa?key=qqqqqq

 

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

 

from flask import Flask,request

app = 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 + "::::" + value

if __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,request

app = 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,request

app = 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.coloradmin.cn/o/850482.html

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

相关文章

Could not resolve host: mirrorlist.centos.org; Unknown error解决方法

今天服务器安装完CentOS系统后&#xff0c;安装网络的时候&#xff0c;出现无法联网yum yum -y install net-tools 以上代码无法运行并报错&#xff0c;这里我要提醒大家&#xff0c;如果在初始安装的时候选中安装网络工具模块就不用在安装net-tools了&#xff0c;因为我选中…

CycleGAN论文解读及代码实现

paper: https://arxiv.org/pdf/1703.10593.pdf github: https://github.com/aitorzip/PyTorch-CycleGAN 1 cycleGAN 小结 网络&#xff1a; 生成器2个&#xff1a;G_A&#xff0c;G_B 判别器两个&#xff1a; D_A&#xff0c;D_B损失函数8个 6个生成器损失函数 2个判别器损失…

Freemarker:生成HTML文本文件

前置工作参考&#xff1a; Freemarker&#xff1a;基本使用_moreCalm的博客-CSDN博客 1、修改application.yml配置文件 server:port: 8881 #服务端口 spring:application:name: freemarker-demo #指定服务名freemarker:cache: false #关闭模板缓存&#xff0c;方便测试settin…

leetcode904. 水果成篮(java)

水果成篮 leetcode904. 水果成篮题目描述滑动窗口代码演示 回溯算法 leetcode904. 水果成篮 难度 - 中等 leetcode 904 水果成蓝 题目描述 你正在探访一家农场&#xff0c;农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示&#xff0c;其中 fruits[i] 是第 i 棵树…

PPG心率血氧检测健康型沙发方案

《中国心血管健康与疾病报告2021》数据显示&#xff0c;我国心血管病患病人数已达 3.3 亿。目前&#xff0c;心脑血管病 死亡占城乡居民总死亡原因的首位&#xff0c;农村为46.7%&#xff0c;城市为44%。老年人是心脑血管病的主要发病体&#xff0c;老年 人患心脑血管病的几率较…

jmeter测试rpc接口-使用dubbo框架调用【杭州多测师_王sir】

1.基于SOAP架构。基于XML规范。基于WebService协议。特点:接口地址?wsdl结尾2.基于RPC架构&#xff0c;基于dubbo协议&#xff0c;thrift协议。SpringCloud微服务。3.基于RestFul架构&#xff0c;基于json规范。基于http协议(我们常用的都是这种&#xff0c;cms平台也是) Rest…

【数据分享】2000-2022年我国乡镇人口数量数据(免费获取/Shp/Excel格式)

在之前的文章中我们分享了基于LandScan数据集的2000-2022年的1km精度的全球、全国、分省、分市的人口空间分布栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;。以及基于栅格数据处理出的Shp和Excel两种格式的我国省市县三级的2000-2022年度的人口数量数据&#xff…

【密码学】六、公钥密码

公钥密码 1、概述1.1设计要求1.2单向函数和单向陷门函数 2、RSA公钥密码体制2.1加解密2.2安全性分析 3、ElGamal公钥密码体制3.1加解密算法3.2安全性分析 4、椭圆曲线4.1椭圆曲线上的运算4.2ECC 5、SM2公钥密码体制5.1参数选取5.2密钥派生函数5.3加解密过程5.3.1初始化5.3.2加密…

photoshop生成器引入到electron项目(electron与photoshop建立通信)

Photoshop引入了nodejs&#xff0c;在启动的时候&#xff0c;通过pipe调起nodejs运行时核心generator-builtin&#xff0c;通过KLVR机制与ps进行通信和交互&#xff0c;同时会加载用户编写的扩展。 这里记录一下引入时的踩坑过程 generator-core就是它的源码&#xff0c;elect…

【项目部署】JavaScript解析JSON解析报错Unexpected token xxx is not valid JSON

问题背景 这个报错发生在之前部署的一个前后端分离的项目中。后端使用的Spring Boot&#xff0c;前端使用的JavaScript&#xff0c;前后端交互使用Thymeleaf框架。 现象 项目组的另一个小伙伴说&#xff0c;突然有个页面打不开了&#xff0c;整个页面全空白。我F12打开浏览器…

JAVA集合框架 一:Collection(LIst,Set)和Iterator(迭代器)

目录 一、Java 集合框架体系 1.Collection接口&#xff1a;用于存储一个一个的数据&#xff0c;也称单列数据集合&#xff08;single&#xff09;。 2.Map接口&#xff1a;用于存储具有映射关系“key-value对”的集合&#xff08;couple&#xff09; 3.Iterator接口&#…

pycharm的Terminal中如何设置打开anaconda3的虚拟环境

在pycharm的File -> Settings -> Tools -> Terminal下面&#xff0c;如下图所示 修改为红框中内容&#xff0c;然后关闭终端在重新打开终端&#xff0c;即可看到anaconda3的虚拟环境就已经会被更新

开源语言模型的历史和重要性;Edge浏览器将推出Bing AI重写文本功能

&#x1f989; AI新闻 &#x1f680; 微软即将推出桌面版Microsoft Edge浏览器的Bing AI重写文本功能 摘要&#xff1a;微软最近在桌面版Microsoft Edge浏览器中引入了一个新功能&#xff0c;允许用户使用Bing AI重写文本。用户可以选择不同的语气、格式和长度&#xff0c;然…

5、螺旋矩阵

螺旋矩阵是指一个呈螺旋状的矩阵&#xff0c;它的数字由第一行开始到右边不断变大&#xff0c;向下变大&#xff0c;向左变大&#xff0c;向上变大&#xff0c;如此循环。如&#xff1a; 1 2 3 4 10 11 12 5 9 8 7 …

让三驾马车奔腾:华为如何推动空间智能化发展?

上个月&#xff0c;国务院常务会议审议通过了《关于促进家居消费的若干措施》&#xff0c;其中明确提出了“推动单品智能向全屋智能发展创新培育智能消费”“开展数字家庭建设试点”等推动全屋智能拼配发展的建议与方案。 可以说&#xff0c;以整屋为单位的空间智能品类&#x…

神码ai伪原创【php源码】

大家好&#xff0c;小编为大家解答python必备常用英语词汇笔记的问题。很多人还不知道python中常用的英语单词&#xff0c;现在让我们一起来看看吧&#xff01; 火车头采集ai伪原创插件截图&#xff1a; 一.什么是注释 注释是对一段代码的解释&#xff0c;不参与程序运行&…

LeetCode题解:判断是否能拆分数组

⭐简单说两句⭐ 作者&#xff1a;后端小知识 CSDN个人主页&#xff1a;后端小知识 &#x1f50e;GZH&#xff1a;后端小知识 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 上周做了力扣周赛的题&#xff0c;给大家分享一个中等题目&#xff…

适用HarmonyOS 3.1版本及以上的应用及服务开发工具 DevEco Studio 3.1.1 Release 安装

文章目录 安装步骤1.下载安装包2.安装成功后&#xff0c;初次运行studio2.1 配置node与ohpm的环境2.2安装sdk2.3等待安装结束 3.创建项目3.1 点击Create Project3.2 选择一个空项目3.3 项目配置3.4 Finish、等待依赖下载完毕3.5 项目创建完成 tip 提示4.配置运行环境4.1 真机运…

C++-使用clang-format格式化代码

clang-format既是一个库&#xff0c;也是一个单独的工具&#xff0c;它可以自动格式化代码。下面我们介绍如何在QtCreator中使用clang-format。 点击帮助->关于插件&#xff0c;勾选Beautifier 重启后&#xff0c;点击工具->选项->Beautifier->Clang Format&…

[保研/考研机试] KY109 Zero-complexity Transposition 上海交通大学复试上机题 C++实现

描述&#xff1a; You are given a sequence of integer numbers. Zero-complexity transposition of the sequence is the reverse of this sequence. Your task is to write a program that prints zero-complexity transposition of the given sequence. 输入描述&#xf…