当前位置: 首页 > news >正文

测试文件和数据库文件

接口测试

 flaks项目入口文件manage.py路由配置

import requests#首先面向对象作封装,避免相同代码反复编写
class HttpApiTest:def test_get(self,url,data={}): 
#用来测试get方法的接口
#self通过共享self类中间的变量
#url用来请求接口
#data可传可不传res =requests.get(url,params=data)#params请求的参数return res.text#将结果属性text返回#执行的操作一定要写道main入口里,声明写在外头
if __name__=="__main__":httpapi = HttpApiTest()res = httpapi.test_get("http://127.0.0.1:5000",data={"id":"123"})print(res)

通过访问接口并且传递id参数测试接口是否正常工作

from flask import request@app.route('/',methods=['GET'])
def index():#首页res = {"msg":"hello"} #字典return jsonify(res) #字典序列化为json数据类型#通过url接收请求参数id=request.args.get("id",None)print("请求的参数id是{}".format(id))

项目入口文件通过request.args.get查找客户端传递过来的名为”id“的参数,如果未查询到该参数,则默认返回None,如果查询到则返回键值对的参数,例如id:123

test.py文件相当于客户端,客户端发送请求到manage.py定义的接口,确认接口是否正常工作,主要是测试以下内容

  1. 可访问性:确认客户端能否成功访问接口(如 manage.py 定义的路由),检查服务器是否正常运行。

  2. 参数传递:验证客户端是否能够通过接口传递参数,确保这些参数能够被正确接收和处理。

  3. 响应正确性:检查接口返回的响应是否符合预期,包括状态码、响应体内容和格式等。

  4. 边界情况:测试接口在不同输入(如有效、无效或缺失的参数)情况下的表现,确保其稳定性和错误处理能力。

  5. 性能:在一定负载下测试接口的响应时间和处理能力,确保其在高并发情况下依然正常工作。

接口是否正常工作有两个检验方法:

1.运行test.py测试脚本,会输出项目入口文件manage.py中路由配置直接编写的信息
项目入口文件路由配置:

测试文件运行输出:


可以看到,运行测试脚本文件之后输出的信息是项目入口文件路由配置中直接书写的信息


 

2.保存manage.py项目入口文件的更改,启动flask应用的命令行会自动打印输出测试脚本传递过来的参数

可以看到启动项目的命令行中已经输出了测试文件中传递过来的参数,但是可能因为Flask 默认的日志处理机制覆盖了标准输出,所以能看到id=123而不是”请求的id参数是123“这样子了

总之,路由处理函数中既可以发送数据到客户端,也可以接收客户端传来的请求参数。这种方式使得 Flask 应用能够与客户端进行交互。

一.新建数据库,要能存储图片表情之类的数据

要想连接mysql,点击”+“,创建数据源

配置MySQ连接信息并下载需驱动
设置用户为root,密码自己设置

二.数据库配置----数据库文件+入口文件注入数据库文件进行配置

数据库文件database.py,所有数据库相关的链接,配置,实例,都写到数据库文件中

from flask_sqlalchemy import SQLAlchemy
import pymysql
pymysql.install_as_MySQLdb()
db=SQLAlchemy()
#db使用方法
#在入口文件注入操作#导入数据库实例
from database import db#配置mysql数据库
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://root:password@localhost:3306/social'
#等号前:数据库链接
#等号后:数据库类型,用户名,密码,路径(链接地址),端口号(默认3306),具体数据库名称#自动提交sql请求
app.config["SQLALCHEMY_COMMIT_ON_TEARDOWN"]=True#初始化操作
db.init_app(app)
#以上都是在flask实例对象中配置的关于mysql数据库的信息,db 是一个 SQLAlchemy 的实例,调用 init_app(app) 方法后,db 会获取 Flask 应用的配置信息。完成初始化之后就可以在应用中使用db对象来进行数据库的操作。

 

  • SQLAlchemy 是一个在python中使用的ORM工具,允许开发者以对象的方式定义和操作数据库模型 ,虽然最终执行的操作是基于 SQL 语句的,但开发者主要与 Python 对象交互。
  • ORM(对象关系映射):SQLAlchemy 将数据库表映射为 Python 类,将表的行映射为类的实例。通过操作这些对象,开发者可以进行增、删、改、查等操作,而不需要直接写 SQL 语句。

  • 当你使用 SQLAlchemy 进行操作时,SQLAlchemy 会根据你的对象操作生成相应的 SQL 语句。

  • pymysql 作为驱动,负责将 SQLAlchemy 生成的 SQL 语句发送到 MySQL 数据库,并处理数据库返回的结果。

    SQLAlchemy 提供 ORM 功能和接口,pymysql 处理实际的数据库通信,而 MySQL 则是存储和管理数据的数据库系统

 

  • 在MySQL数据库可视化工具中新建一个空白数据库
  • 在python中使用SQLAlchemy定义类,这些类能映射到想要在数据库中创建的表(一个类对应一个表)
  • 一个类中的多个实例对应一个表中多行数据

原本还疑惑怎么这么麻烦呢? 要创建SQLAlchemy实例对象db,接着在入口文件中用flask实例对象app对数据库连接信息进行配置,还有sql自动提交进行配置,导入db,db调用配置好的app实例,然后db就能对数据库进行操作。


为啥不直接sqlalchemy实例对象db直接进行数据库信息的配置,在入口文件导入db,同样db就对数据库进行操作了。


这就是规矩!!!flask实例对象用于配置数据库连接信息,sqlalchemy实例对象通过flask应用的配置来获取这些信息,sqlalchemy实例对象db调用flask实例对象进行初始化,这样db就能访问flask应用的配置了

  3306端口号是在datagrip数据库可视化工具中点击“+”创建数据源,连接MySQL数据库,然后进行MySQL信息配置中设置的。配置mysql数据库时,通过端口号访问到MySQL数据库管理系统,然后再通过具体数据库名称social对具体数据库进行数据操纵

flask实例对象功能

  1. 路由管理:定义应用的 URL 路由和处理请求的视图函数。

  2. 中间件:添加请求和响应的处理逻辑,例如日志记录、认证等。

  3. 蓝图:组织大型应用的模块化结构,便于管理和扩展。

  4. 配置管理:设置其他应用配置(如调试模式、静态文件目录等)。

  5. 扩展管理:集成各种 Flask 扩展,添加功能模块,如用户认证、表单处理等。

这些功能使得 Flask 成为一个灵活且强大的 web 框架。

在social数据库中创建表(详见mysql图形化界面-datagrip) 

三.数据库中创建表

点击”+“创建每列的值,完之后点击箭头提交,表就建好了

用来测试接口数据库能不能连上

四.入口文件路由配置中查询数据库:

  #查询数据库userlist = db.session.execute("select * from user").fetchall()#session sql语句,execute执行,fetchall获取所有。查询所有用户print(userlist)

浏览器访问​​​​​​​127.0.0.1:5000  触发查询操作

正常应该返回数据库里边信息,例如[(1,'123@123.net','123'),(2,'456@456.net','456')]

哈哈哈,不正常就该像我这样。不干了,干饭!

相关文章:

测试文件和数据库文件

接口测试 flaks项目入口文件manage.py路由配置 import requests#首先面向对象作封装,避免相同代码反复编写 class HttpApiTest:def test_get(self,url,data{}): #用来测试get方法的接口 #self通过共享self类中间的变量 #url用来请求接口 #data可传可不传res reques…...

redis集群模式连接

目录 一:背景 二:实现过程 三:总结 一:背景 redis集群通过将数据分散存储在多个主节点上,每个主节点可以有多个从节点进行数据的复制,以此来实现数据的高可用性和负载均衡。在集群模式下,客户…...

Linux高级I/O:多路转接模型

目录 一.常见的IO模型介绍二.多路转接I/O1.select1.1.函数解析1.2. select特点和缺点1.3.基于 select 的多客户端网络服务器 2.poll2.1.poll函数解析2.2.poll特点和缺点2.3.基于poll的tcp服务器 3.epoll3.1.系列函数解析3.2.epoll原理解析2.3.基于 select 的多客户端网络服务器…...

MongoDB Limit 与 Skip 方法

MongoDB Limit 与 Skip 方法 MongoDB 是一个流行的 NoSQL 数据库,它提供了灵活的数据存储和强大的查询功能。在处理大量数据时,我们常常需要限制返回的结果数量或者跳过一部分结果,这时就可以使用 MongoDB 的 limit 和 skip 方法。 Limit 方…...

【2025】中医药健康管理小程序(安卓原生开发+用户+管理员)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...

VulnHub-Bilu_b0x靶机笔记

Bilu_b0x 靶机 概述 Vulnhub 的一个靶机,包含了 sql 注入,文件包含,代码审计,内核提权。整体也是比较简单的内容,和大家一起学习 Billu_b0x.zip 靶机地址: https://pan.baidu.com/s/1VWazR7tpm2xJZIGUS…...

Python | Leetcode Python题解之第421题数组中两个数的最大异或值

题目: 题解: class Trie:def __init__(self):# 左子树指向表示 0 的子节点self.left None# 右子树指向表示 1 的子节点self.right Noneclass Solution:def findMaximumXOR(self, nums: List[int]) -> int:# 字典树的根节点root Trie()# 最高位的二…...

如何将普通Tokenizer变成Fast Tokenizer

现在的huggingface库里面Tokenizer有两种,一种就是普通的,另一种是fast的。fast和普通的区别就是fast使用rust语言编写,在处理大量文本的时候会更快。我自己测试的时候单一一句的话fast要比普通的慢一些,当量叠上来,到…...

联合复现!考虑最优弃能率的风光火储联合系统分层优化经济调度!

前言 目前,尽管不断地追逐可再生能源全额消纳方式,大幅减小弃风弃光电量,但是若考虑风电、光伏发电的随机属性,全额消纳可能造成电网峰谷差、调峰难度及调峰调频等辅助服务费用的剧增,引起电网潜在运行风险。因此&…...

Vue开发前端图片上传给java后端

前端效果图 图片上传演示 1 前端代码 <template><div><!-- 页面标题 --><h1 class"page-title">图片上传演示</h1><div class"upload-container"><!-- 使用 van-uploader 组件进行文件上传&#xff0c;v-model 绑…...

react hooks--useCallback

概述 useCallback缓存的是一个函数&#xff0c;主要用于性能优化!!! 基本用法 如何进行性能的优化呢&#xff1f; useCallback会返回一个函数的 memoized&#xff08;记忆的&#xff09; 值&#xff1b;在依赖不变的情况下&#xff0c;多次定义的时候&#xff0c;返回的值是…...

828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台

828华为云征文&#xff5c;华为云Flexus X实例docker部署最新Appsmith社区版&#xff0c;搭建自己的低代码平台 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Ng…...

webservice cxf框架 jaxrs jaxws spring整合 接口测试方法 wsdl报文详解 springboot整合 拦截器 复杂参数类型

webservice cxf框架 jaxrs jaxws spring整合 【java进阶教程之webservice深入浅出【黑马程序员】】 webservice接口测试方法 【SoapUI让你轻松玩转WebService接口测试【特斯汀学院】】 webservice wsdl报文详解 【webservice - 尚硅谷周阳新视频】 webservice springbo…...

2024AI做PPT软件如何重塑演示文稿的创作

现在AI技术的发展已经可以帮我们写作、绘画&#xff0c;最近我发现了不少ai做ppt的工具&#xff01;不体验不知道&#xff0c;原来合理使用AI工具可以有效的帮我们进行一些办公文件的编写&#xff0c;提高了不少工作效率。如果你也有这方面的需求就接着往下看吧。 1.笔灵AIPPT…...

谷神后端list转map

list转map /*** list2map* list转map&#xff1a;支持全量映射、单字段映射。* * param $list:list:列表。* param $key:string:键。* param $field:string:值字段域。** return map**/ #function list2map($list, $key, $field)#if ($vs.util.isList($list) and $vs.util.is…...

Java集合(Map篇)

一.Map a.使用Map i.键值&#xff08;key-value&#xff09;映射表的数据结构&#xff0c;能高效通过key快速查找value&#xff08;元素&#xff09;。 ii.Map是一个接口&#xff0c;最常用的实现类是HashMap。 iii.重复放入k-v不会有问题&#xff0c;但是一个…...

VUE3配置路由(超级详细)

第一步创建vue3的项目...

【笔记】机器学习算法在异常网络流量监测中的应用

先从一些相对简单的综述类看起&#xff0c;顺便学学怎么写摘要相关工作的&#xff0c;边译边学 机器学习算法在异常网络流量监测中的应用 原文&#xff1a;Detecting Network Anomalies in NetFlow Traffic with Machine Learning Algorithms Authors: Quc Vo, Philippe Ea, Os…...

江协科技STM32学习- P15 TIM输出比较

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…...

使用python-pptx批量删除备注:清除PPT文档中的所有备注信息

哈喽,大家好,我是木头左! 在制作和分享PPT时,经常需要添加一些注释或备注来帮助观众更好地理解内容。然而,有时候需要将这些备注从PPT中移除,以保持演示的简洁性。幸运的是,可以使用python-pptx库来实现这一目标。本文将详细介绍如何使用python-pptx批量删除PPT中的备注…...

RTX NVIDIA 3090卡配置对应pytorch,CUDA版本,NVIDIA驱动过程及问题整理

买了两块3090卡闲置很长时间了&#xff0c;之前tf 1.12.0版本用习惯了不想转工具。这段时间闲下来转了之后有些环境不适配&#xff0c;在雷神帮助下安装完毕&#xff0c;虽然出了点怪东西&#xff0c;整体还好。 原环境CUDA为11.4 其他配置如下 之前conda install的pytorch实为…...

【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL21

根据状态转移表实现时序电路 描述 某同步时序电路转换表如下&#xff0c;请使用D触发器和必要的逻辑门实现此同步时序电路&#xff0c;用Verilog语言描述。 电路的接口如下图所示。 输入描述&#xff1a; input A , input clk , …...

【深度】为GPT-5而生的「草莓」模型!从快思考—慢思考到Self-play RL的强化学习框架

原创 超 超的闲思世界 2024年09月11日 19:17 北京 9月11日消息&#xff0c;据外媒The Information昨晚报道&#xff0c;OpenAI的新模型「草莓」&#xff08;Strawberry&#xff09;&#xff0c;将在未来两周内作为ChatGPT服务的一部分发布。 「草莓」项目是OpenAI盛传已久的…...

【编程底层原理】Java常用读写锁的使用和原理

一、引言 在Java的并发世界中&#xff0c;合理地管理对共享资源的访问是至关重要的。读写锁&#xff08;ReadWriteLock&#xff09;正是一种能让多个线程同时读取共享资源&#xff0c;而写入资源时需要独占访问的同步工具。本文将带你了解读写锁的使用方法、原理以及它如何提高…...

自恢复保险丝SMD1206B005TF在电路中起什么作用

自恢复保险丝SMD1206B005TF在电路中起到过流保护的作用。 自恢复保险丝&#xff0c;也称为正温度系数&#xff08;PTC&#xff09;热敏电阻&#xff0c;是一种能够在电流超过预设值时自动断开电路&#xff0c;并在故障排除后自动恢复的元件。这种保险丝的核心材料是高分子聚合…...

2024年躺平,花大半年的时间,就弄了这一件事儿:《C++面试真题宝典》

今年&#xff0c;是我的第3个躺平年&#xff0c;躺得我四肢都快蜕化了... 为了让一切都变得舒服&#xff0c;我决定主动地去做些什。 在我生命的一个不起眼却意义非凡的角落&#xff0c;我与C结下了不解之缘。这份热爱&#xff0c;如同一位老友&#xff0c;陪伴我度过了无数个…...

PHP基础语法讲解

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; PHP&#xff08;Hypertext Preprocessor&#xff09;是一种常用于网页开发的服务器端脚本语言&#xff0c;易于学习并且与 HTML 紧密结合。以下是 PHP 的基础语法详细讲解。 1. PHP 基础结构 1.1 PHP 脚本结…...

【论文速看】DL最新进展20240923-长尾综述、人脸防伪、图像分割

目录 【长尾学习】【人脸防伪】【图像分割】 【长尾学习】 [2024综述] A Systematic Review on Long-Tailed Learning 论文链接&#xff1a;https://arxiv.org/pdf/2408.00483 长尾数据是一种特殊类型的多类不平衡数据&#xff0c;其中包含大量少数/尾部类别&#xff0c;这些类…...

device靶机详解

靶机下载地址 https://www.vulnhub.com/entry/unknowndevice64-1,293/ 靶机配置 主机发现 arp-scan -l 端口扫描 nmap -sV -A -T4 192.168.229.159 nmap -sS -Pn -A -p- -n 192.168.229.159 这段代码使用nmap工具对目标主机进行了端口扫描和服务探测。 -sS&#xff1a;使用…...

十四、SOA(在企业中的应用场景)

在企业中&#xff0c;**SOA&#xff08;面向服务架构&#xff09;**被广泛应用于多个场景&#xff0c;帮助企业提高灵活性、效率和业务响应能力。SOA通过分解企业系统中的功能模块&#xff0c;以服务的形式进行封装和集成&#xff0c;支持跨平台、跨系统的协同工作。以下是SOA在…...