自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 FastAPI 学习七 ORM操作

当然,api接口在工作中是比较常见的开发内容,有时候,我们会调用其他人编写的api接口,有时候,我们也需要提供api接口给其他人操作。fastapi是一个很优秀的框架,但是缺少一个合适的orm,官方代码里面使用的是sqlalchemy,Tortoise ORM 是受 Django 启发的易于使用的异步 ORM (对象关系映射器)。例如,我们现在要编写一个选课系统的接口,我们可以查询对一个学生进行查询、创建、更新和删除等操作,我们在编写程序的时候就要设计客户端浏览器与我们Web服务端交互的方式和路径。

2026-04-16 11:11:53 417

原创 FastAPI 学习六 jinja2模板

模板在Python的web开发中⼴泛使⽤,它能够有效的将业务逻辑和页⾯逻辑分开,使代码可读性增强、并且更加容易理解和维护。jinja2中的if语句类似与Python的if语句,它也具有单分⽀,多分⽀等多种结构,不同的是,条件语句不需要使⽤冒号结尾,⽽结束控制语句,需要使⽤endif关键字。jinja2是Flask作者开发的⼀个模板系统,起初是仿django模板的⼀个模板引擎,为Flask提供模板⽀持,由于其灵活,快速和安全等优点被⼴泛使⽤。需求:通过接口请求,访问html中的文件。

2026-03-04 10:39:36 530

原创 FastAPI 学习五 响应模型参数(response_model)

前面写的这么多路径函数最终 return 的都是自定义结构的字典,FastAPI 提供了 response_model 参数,声明 return 响应体的模型。适用场景:数据都是同一份(统一的数据模型),加了这些参数之后,我们可以根据不同的接口,返回不同的数据,这样比较灵活。,我们可以很直观的了解到他们的意思,不返回是默认值的字段和不返回是None的字段。response_model 是路径操作的参数,并不是路径函数的参数。参数来定义响应模型,特别是确保私有数据被过滤掉。参数来声明用于响应的模型。

2026-03-03 09:23:05 626

原创 FastAPI 学习四 请求与响应(form表单)

FastAPI 学习三 请求与响应(请求体、form表单)

2026-03-02 10:37:40 366

原创 FastAPI 学习三 请求与响应(请求体)

Optional 是Union的一个简化, 当 数据类型中有可能是None时,比如有可能是str也有可能是None,则Optional[str], 相当于Union[str, None],Schema 成为 OpenAPI 生成模式的一部分,并显示在 API 交互文档中,查看 API 交互文档如下,该接口将接收。对于 API 服务,支持类型检查非常有用,会让服务更加健壮,也会加快开发速度,因为开发者再也不用自己写一行一行的做类型检查。和声明查询参数时一样,当一个模型属性具有默认值时,它不是必需的。

2026-02-28 14:15:50 658

原创 FastAPI 学习二 路径操作

若查询中{username}的值=me,那么会优先走上面的路由(/user/me),还是走(/user/{username})?但是如果配合上动态参数呢,比如我们传入的参数整体的路由正好匹配上了A路由,这时是匹配当前动态参数的B路由呢,还是匹配A路由呢,这样归属完一类之后,再写路由就在某一类下写,就容易区分,而不是都写在一个页面中,如果有上百上千个,这样做明显是不合理的。优先走上面的路由(/user/me),这也是因为路由有优先级,从上向下匹配。若是我们定义有2个相同路由时,路由有优先级,从上向下匹配。

2026-02-27 13:59:51 630

原创 FastAPI 学习一 快速上手

源码: https://github.com/fastapi/fastapi。官方文档: https://fastapi.tiangolo.com。然后访问 http://127.0.0.1:8080/redoc。现在访问 http://127.0.0.1:8080/docs。用浏览器打开 http://127.0.0.1:8080/你还会需要一个 ASGI 服务器,生产环境可以使用。你会看到自动生成的交互式 API 文档。你会看到另一个自动生成的文档。

2026-02-26 15:55:36 408

转载 WEB安全测试要点总结

XML External Entity Injection(简称XXE Injection)是指后台程序在对XML格式的参数或文件进行解析时,由于没有控制外部实体的引入,所造成的安全漏洞。

2026-01-28 11:13:04 55

转载 正则表达式:re库的【match、search、findall】方法使用

正则表达式:re库的【match/search/findall】区别以及使用

2025-04-10 11:04:51 1418

原创 RandomDate(接口参数化-随机生成日期)

jmeter-接口参数化随机选择日期请求

2024-06-07 17:36:55 2493

转载 Hive函数整理(一)

语法:get_json_object(string json_string, string path)语法:regexp_replace(string A, string B, string C)语法:concat_ws(string A, string…语法二:substring(string A, int start, int len)语法:concat(string A, string B, string C, ……语法:replace(string A, string B, string C)

2024-04-19 11:31:31 409

原创 Flask-13 使用restful定义API接口

Flask-RESTful 是一个 Flask 扩展,它添加了快速构建 REST API 的支持。pip 安装pip install flask-restful中文文档:http://www.pythondoc.com/Flask-RESTful/index.html1、创建扩展/组件对象from flask_restful import Api, Resource, fields, marshal_with, reqparse, marshalapp = Flask(__name__)

2022-05-11 23:36:26 1604

原创 Flask-12 编写图形验证码的示例

文章目录1、制作验证码代码示例2、表单类的创建WTF3、视图函数的使用4、模版中的使用5、运行并访问效果展示:目录结构:|— font |—简粗圆.ttf|— templates |—index.html|— app.py|— code_form.py|— make_code.py1、制作验证码代码示例make_code.py"""@filename: make_code.py制作验证码图片内容的文件,使用第三方库pillow制作官方文档学习:https://pillo

2022-05-11 02:32:18 748

转载 Flask-11 消息闪现flash

消息闪现一个好的应用和用户界面都需要良好的反馈。如果用户得不到足够的反馈,那么应用 最终会被用户唾弃。 Flask的闪现系统提供了一个良好的反馈方式。闪现系统的基 本工作方式是:在且只在下一个请求中访问上一个请求结束时记录的消息。一般我们结合布局模板来使用闪现系统。注意,浏览器会限制 cookie 的大小,有时候网络服 务器也会。这样如果消息比会话 cookie大的话,那么会导致消息闪现静默失败。---->> 来自官方文档文档:https://dormousehole.readt

2022-05-11 01:48:09 1423

转载 Flask-10 session和cookie

目录一、cookie1.1 什么是cookie?1.2 如何在flask中使用cookie?1.2.1 设置cookie1.2.2 实例:设置cookie1.2.3 在浏览器中查看cookie的三种方式(以Chrome浏览器为例)1.2.4 设置cookie的有效期1.2.4.1 基于max_age参数设置cookie有效期1.2.4.2 基于expires参数设置cookie有效期1.3、在Flask中查询cookie1.3.1 查询cookie1.3.2 删除cookie二、session2.1 什么是

2022-05-11 00:34:56 493

转载 Flask-9 CSRF保护

目录为什么需要 CSRF?实现AJAX故障排除为什么需要 CSRF?Flask-WTF 表单保护你免受 CSRF 威胁,你不需要有任何担心。尽管如此,如果你有不包含表单的视图,那么它们仍需要保护。例如,由 AJAX 发送的 POST 请求,然而它背后并没有表单。在 Flask-WTF 0.9.0 以前的版本你无法获得 CSRF 令牌。这是为什么我们要实现 CSRF。实现为了能够让所有的视图函数受到 CSRF 保护,你需要开启 CsrfProtect 模块:from flask_wtf.csr

2022-05-10 19:47:25 440

原创 Flask-8 flask-wtf的使用(灵活的表单验证)

文章目录介绍:一、具体实现案例:1、创建表单类2、视图中使用3、模版中的使用4、运行后访问查看提示二、总结:介绍:Flask-WTF 提供了简单地 WTForms 的集成。WTForms是一个灵活的表单验证和渲染库,用于PythonWeb开发。它可以与您选择的任何Web框架和模板引擎一起使用。它支持数据验证、CSRF 保护、国际化 (I18N)等。有各种社区库提供了与流行框架的更紧密集成。为什么要用WTF,WT Forms是用于提供用户界面的灵活的表单呈现和验证库WTForms文档:htt

2022-05-10 18:26:01 2041

原创 Flask-4、使用Migrate对数据库的映射修改

这里写目录标题概要:1、Migrate在app.py文件的使用:2、创建数据库模型类(即MTV中的Model)3、对数据库的连接4、最终的app.py文件5、使用命令操作数据库(数据库迁移同步:)概要:  flask-migrate,一个用来做数据迁移的falsk扩展,一般都是结合flask-sqlalchemy使用  一般我们修改数据库通常不会直接手动修改,这样效率不仅慢,而且也需要对整体结构清晰,正常情况是修改ORM对应的模型,然后再把模型映射到数据库中。  它是基于Alembic进行的一个封

2022-05-10 02:45:40 1087

原创 Python线程—对守护线程的执行理解

在说守护线程之前,先回归下线程的执行 threading模块1. 没有使用join时import threading, timedef run(i): print('Thread %s is start' % i) time.sleep(2) print('thread %s is end.......' % i)for i in range(5): t = threading.Thread(target=run, args=(i,)) t.start()

2022-04-07 01:21:03 1187

原创 Charles-解决unknown的问题

安装的问题就不在解释了。直奔主题无论是抓浏览器还是手机上的HTTPS的包都是一样的,默认情况下,Charles只能抓取http的包,抓取HTTPS时会出现unknown,是因为返回接口需要证书信任第一步: 下载并安装证书下载charles证书:打开charles,Help–>SSL Proxy–>install Charles Root Certificate,注意点:存储证书时一定要选择[受信任的根证书版本机构],否则仅安装但证书未信任是解决不了问题的,仍然会出现unknown的问题

2022-04-05 15:36:01 10667

原创 Flask-7、模型相关之relationship

模型内容 relationship 1对多需求: 用户进行留言,也要可以通过留言找到对应的用户这样用户和留言的关系:1对多1、创建模型,即创建表from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()class UserInfo(db.Model): # 因为I是大写,所以数据库自动生成时,会加"_",数据库名变成:user_info # 自定义表名,如果不写,默认模型名即上面的:user_info # __tablename

2022-03-19 16:31:18 1716

原创 Flask-6、功能函数:密码/会话机制 & 钩子函数 & 分页 & 文件传输 &Redis键值对

初期学习Flask时,可能会用到下面的内容来实现某种功能,一、密码机制1、密码加密:from werkzeug.security import generate_password_hash, check_password_hashuser.password = generate_password_hash(password) # ---> 加密 ,用于注册使用# sha256加密,长度为64位,所以数据库密码长度限制必须大于64位2、密码检查:check_password_hash(

2022-03-07 00:07:58 799

原创 Flask-5、query对数据库中数据的增删改查

文章目录一、模型类的创建:二、模型类.query的查询1、根据主键查询用户使用get(主键值),返回值是一个对象2、取所有3、取第一条,filter括号中可以加条件 (==) 或者is_4、以xx开头或结尾 startswith、endswith5、或条件 or_6、与条件 and_7、非条件 not_8、in条件 in_9、排序 order_by10、limit 限制三、重点总结内容:查询时因为没有表,所以我先创建了表,有表的可直接查询。。。一、模型类的创建:# __init__.pyfrom

2021-10-29 19:00:35 4260

原创 Flask-3、注册蓝图内容

一、蓝图说明:什么是蓝图?  蓝图可以理解为,是一种对项目中的代码进行模块化管理的工具,相当于python中的包为什么要使用蓝图?  如果我们将所有的Flask的请求方法都写在同一个文件下的话,非常的不便于我们的代码的管理和后期的功能代码的添加 (就是在一个py文件中具有多个功能代码,不利于维护和管理。)  如果在其他的模块中去调用视图函数,就会产生循环导入的问题。蓝图的作用是什么?  1.对我们的flask应用程序进行模式化管理  2.提升开发效率,降低开发难度,协同开发蓝图的运行机制是

2021-10-26 15:27:39 1500

原创 hashlib 加密内容

import hashlibmsg = 'hello world'msg_md5 = hashlib.md5(msg.encode('utf-8'))print(msg_md5.hexdigest(), len(msg_md5.hexdigest())) # 长度 32msg_sha1 = hashlib.sha1(msg.encode('utf-8')).hexdigest()print(msg_sha1, len(msg_sha1)) # 长度 40 ,sha后面的数字代表加密的长度

2021-10-24 22:18:14 275

原创 sum() over() 函数用于累加计算

本文主要讲的是计算一个指标时,需要按天累加,也就是累计指标计算,可以使用到该函数1.可以按天进行累加2.如果有相同的日期,可以先按天分组,然后进行累加,筛选项也是一样数据源:1、按照日期对应的V1(数字)进行升序(desc降序),然后进行累加select V0, V1, sum(V1) over(order by V1 desc)from table2、先根据V0进行分组,再按照v1进行升序,然后进行累加(可用做筛选项的累加)select V0, V1, sum(V1) ove

2021-10-20 10:28:40 15955

原创 HTML性能报告的结果显示

页面结构:1、Dashboard(概览)1.Apdex:应用程序性能满意度的标准,范围在 0-1之间,1表示达到所有用户均满意,反之0则表示均不满意,可以在配置文件设置2.Toleration threshold:可接受(容忍或满意)阈值,即用户可接受的响应时间3.F(Frustration threshold):不可接受(失败)阈值,即用户不可接受响应时间4.Lable:请求名称即采样器名称Network(KB/sec):网络情况Received:每秒从服务器端接收到的数据量Sen

2021-07-05 19:02:28 1223 2

原创 Flask-2、部分模板语法(循环、宏、继承)

py目录结构:|-- static |-- css |-- style.css |-- js |--img |-- 图片15.jfif|-- tempalate |-- base.html |-- xx.html|-- app.py模板语法:1、循环变量:name_list = [xx,xx,xx,xx,xx]<ul> {% for name in name_list %} {% if name|length > 2

2021-06-22 19:51:34 1177

原创 Flask-1、基础内容

先创建一个Flask项目目录结构|-- static(存放css、js、img)|-- templates(存放html)|-- app.pyfrom flask import Flaskapp = Flask(__name__)@app.route("/") # 这个是视图函数,里面跟的是路径,只有用户访问路径,就是执行对应的函数def main(): return "hello world" if __name__ == '__main__': app.ru

2021-06-22 19:18:12 656

原创 Git的学习以及配合IDEA

一、Git的前提内容下载git:https://git-scm.com/然后无脑下一步安装就行了。正常安装完成之后,右键会出现如下内容:1、我们尽量使用Git Bash Here (命令行界面)2、然后我们在本地磁盘中新建一个文件,作为git测试3、在命令行界面,进入该文件夹目录二、Git命令内容以下是文章中使用过的命令:命令作用git init初始化gitgit config --global user.name设置用户名git config --

2021-05-25 17:44:28 450 2

原创 使用AES进行加解密

简单了解:  AES是一个对称加密算法对称加密算法:  对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yao)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。开始应用:1、AES加密方式有五种:  1)、ECB  2)、CBC  3)

2021-05-17 16:44:45 2795

原创 免安装版,安装mysql教程

首先下载mysql:https://www.mysql.com/downloads/先说下之前踩过的坑:1、配置文件中写的有mysql数据库的数据的存放目录,但是缺少该data文件,一直提示:服务无法启动;服务没有报告任何错误2、启动服务时(net start mysql)提示:服务没有响应控制功能开始配置1、下载完成解压后路径先弄好:  解压之后,自己先定义好mysql存放的路径。  我是把解压之后的文件重命名为:MySQL  存放的路径是:C:\Program Files\My

2021-05-12 16:37:07 314

转载 mysql8.0mis安装教程_MySQL8.0 msi 版本安装教程

MySQL8.0 msi 版本安装教程 1> 官网下载安装包 说明: 如果需要8.0版本下的其他小版本,可以参考下图: 如需5.7及其之前版本,可以参考下图: 说明: msi版本,可以在安装过程中,通过可视化操作进行自动配置;zip压缩包版本,则需要解压之后,自行配置,这里选择msi版本进行安装。 2> 安装MySQL 2.1双击打开下载的安装包,进入到下面这个页...

2021-05-12 11:22:10 2587

原创 pip升级失败及pip._internal报错问题的解决方法

创建项目后,因为版本过低,导致无法下载某些包,所以进行升级出现的问题先说下创建项目吧PyCharm新建项目:1、内容说明2、如果后续项目想要使用已存在的环境,就需要选择历史项目中Script路径下的python.exe解释器,但是环境的名称需要改变,因为是新项目。个人建议:要记住虚拟环境的路径,至于项目路径和虚拟环境路径要不要在一块,其实都可以。3、如果选择已存在的环境,将共用已存在的第三方包,也是选择历史项目中Script路径下的python.exe解释器二、pip升级失败以及pip._i

2021-04-27 16:04:15 1568 2

原创 测试概念的简单总结

白盒测试和黑盒测试的区分:主要是根据软件测试工作中对软件代码的可见程度进行的划分黑盒测试:不关心盒子的内部结构,只关心软件的输入输出结果白盒测试:把盒子打开,研究里面的源代码和程序执行结果灰盒测试:既关注输入输出同时关注内容表现,不会像白盒那样详细、完整,只是通过表征性的现象、事件来判断内部的运行状态。主要用于多模块构成的稍微复杂的软件系统,对于软件系统的内部模块,灰盒测试依然把它当成一个黑盒来看待。功能测试:检查实际功能是否符合用户的需求,测试的大部分工作也是围绕软件的功能进

2021-03-15 18:40:46 332

原创 初学之jQuery相关二

文章目录1、样式操作:2、位置操作3、文本操作:4、属性操作:5、文档操作:6、动画效果:7、操作表格学习代码1、样式操作:addClass(); // 添加指定的CSS类名。removeClass(); // 移除指定的CSS类名。hasClass(); // 判断样式存不存在toggleClass(); // 切换CSS类名,如果有就移除,如果没有就添加。例子:<!DOCTYPE html><html lang="en"><head&

2021-01-27 17:04:42 376

原创 openpyxl,xlrd两种模块方式,较为详细的方法操作Excel文件。

想要控制Excal,我们首先要知道的Excal文件的三个对象,具体都是干嘛的。 workbook: 工作簿,一个Excel文件可以包含多个sheet。 sheet:工作表,一个workbook可以有多个,如“sheet1”,“sheet2”等名称。 cell: 单元格,存储数据对象第一个模块 openpyxl 操作excal导入模块:import openpyxl 创建一个Excal文件wb = openpyxl.Workbook() wb.save("test.xlsx") # 已存在同名

2020-12-16 14:58:33 5449

原创 Python 接口测试时将token写入配置文件,并读取配置文件。

import configparser,os# 配置文件conf_file = os.path.dirname(os.path.abspath(__file__)) + "/config.ini"# config对象的内存地址config = configparser.ConfigParser()# 打开配置文件的两种方式 # 第一种config.read(conf_file, encoding='utf-8') # 第二种config.read_file(open(conf_f

2020-11-18 11:42:25 1500

原创 工作中使用的sql知识点及查询语法

文章目录只修改字段属性时用modify设置默认值删除默认值修改表名修改字段位置查看创建表的语句复制其他表的数据并插入到该表中完全复制表以及内容判断内容并显示 :IF (xxx=xxx,True, False)累加计算(笛卡尔积) -->显示每一天的累加值多表连接 UNION / UNION ALL的区别全连接 full join内连接 inner join根据身份证获取星座(case ....... when.......end)获取两个时间差窗口函数:取某一用户下多条数据的第一条或最后一条数据 ro

2020-11-13 16:43:30 734

原创 Python修改excal的内容样式【加粗+红色】

import xlwtimport xlrdfrom xlutils.copy import copy# 单元格上色加粗def color_bold_execl(file_name): # pattern 指的就是背景 ;font 就是设置字体,bold on 是加粗。 styleBlueBkg = xlwt.easyxf('pattern: pattern solid, fore_colour red; font: bold on') # 背景红色,加粗 rb =

2020-11-10 14:34:18 1340

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除