flask
基础
轻量级python后端框架
网址
学习目录
flask路由
用来匹配url
request对象
abort函数
模板
flask数据库
表单
ajax
管理系统案例(略)
安装
命令:pip install flask -i https://pypi.douban.com
from flask import Flask
app = Flask(name)
@app.route(‘/’)
def hello_world(): # put application’s code here
return ‘Hello World!’
if name == ‘main’:
app.run()
路由
基础路由
类似springboot中写法,与django相区别
@app.route(‘/’)
def hello_world(): # put application’s code here
return ‘Hello World!’
methods使用
请求格式,分get,post
endpoint:防止函数名重名
route重名从上到下
参数<>
字符串处理
route里 ...
JMeter
Jmeter
测试基础
介绍测试
线程和进程
性能测试:模拟很多用户去访问某个接口,聚合报告。
接口测试
定义
个人理解:对后端给出的访问地址进行测试,确保其能正常使用
接口:特殊URL地址,负责数据的操作。
四要素
请求URL
请求方式:GET、POST、Restful风格”PUT、DELETE
请求参数
返回内容
以上都ok,看请求头:content-Type:application/json
JMeter接口测试
添加取样器(HTTP)
填写对应4要素
添加监听器
运行并查看结果
测试片段
实现前置请求,例如商城登录后才能测的其它功能
模块化的封装,各测试独立
新建测试片段,并将写好的部分放入测试片段中
可将需要的测试片段进行保存,然后重复利用
线程组中添加include控制器,选择对应文件
环境变更
添加用户定义的变量
值 -> 变量
添加经常更改的值
如ip地址、端口号
修改请求中的对应位置的值
${变量名}
正例和反例
多组测试数据
DDT:数据驱动测试。 — 自动化测试有名
...
fiddler
fiddler
Fiddler基础介绍
介绍
Fiddler是一个http协议调试代理工具, 它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指 cookie、html、js、css等文件)。
安装
下载Fiddler:官网下载链接
勾选协议,默认安装即可
(可选)汉化教程
菜单
基础操作
抓取请求
删除请求
过滤请求
抓取HTTPS
典型应用
Web网页,手机APP抓包
修改服务请求与响应
前端性能分析及优化
模拟弱网测试
辅助定位bug
上报问题
定位问题
解决问题
应用场景
通过抓包工具截取观察网站的请求信息,更深入了解网站
通过用抓包工具截取、观察网站的请求与返回信息,帮助我们进行BUG定位与描述
通过抓包工具拦截修改请求信息,绕过界面的限制,测试服务端的功能
Fiddler辅助定位bug小结
HTTP请求与响应:均分为xx行,xx头,xx体
Web网页,手机APP抓包
检查接口地址是否有误
检查响应状态是否存在异常
检查接口传递参数
检查接口返回数据
构建 ...
最短路
最短路
总结
image-20230412204030858
Dijkstra(朴素)
思路:
n次循环,每次找到点集外最近的点
更新所有点最近距离
AcWing 849. Dijkstra求最短路 I
1234567891011121314151617181920212223242526272829303132333435363738394041#include<bits/stdc++.h>using namespace std;const int N=510;int g[N][N],d[N],st[N];int n,m;int dj(){ memset(d,0x3f,sizeof d); d[1]=0; for(int i=1;i<=n;i++) { int t=-1; //找到集合外最小距离 for(int j=1;j<=n;j++) if(!st[j] && (t==-1 || d[t]> ...
slidev
Slidev
官网
介于官网有相应文档,一些东西不会很详细,主打的是个人使用的坑之类的。
安装使用
本地安装
1. 安装node.js
略
2.安装Slidev
使用 NPM:
1$ npm init slidev@latest
使用Yarn:
1$ yarn create slidev
跟随命令行的提示,它将自动为你打开幻灯片,网址是 http://localhost:3030/。
同时包含了一些基本配置和简单的 demo,为你说明如何开始使用 Slidev。
构建单网页应用
因为build完之后可以在 dist 目录下将你的幻灯片生成静态 HTML 文件。
所以怎么放都可以
硬放到服务器上
完成PPT
执行命令slidev --base 你需要部署到的位置
粘(传)到服务器上(dist目录内所有),配置nginx。
访问相应IP或域名
例子
12345slidev --base /slidev配置完nginx后访问: IP/slidev 域名/slidev (配置域名)
导出(PDF)
安装 playwright-chrom ...
hexo使用
hexo使用
新建文章:hexo n 文章名
清除文章:hexo clean
生成:hexo g
更新页面:hexo d或hexo deploy
生成+更新页面:hexo g -d
端口部署:hexo s -p 555
hexo相关(可能)
git Bash here
Typora打开文件:
start 文件名
部署
github、gitee部署省略
服务器部署(没用自动部署,github钩子那种)
git pull到服务器上。
改nginx使其可以被展示出来。(详见占位)
缺点:
每次更新需要去服务器上 'git pull' 和 sudo nginx -s reload
改善:可以写个shell脚本试试
基础图论
基础图论
树与图的存储和遍历
树与图的 存储
因为树是无环连通图,所以可以只看图。而图分为无向图和有向图,无向图每条边可以表示为两条有向边,所以可以只看有向图。
1.邻接表
用多个单链表构成的邻接表存储这个点指向的边(即出度),多用于稀疏图(n== m)。
12345678910const int N=100010,M=N*2;int h[N],e[M],ne[M],idx;void add(int a,int b){ e[idx]=b;ne[idx]=h[a],h[a]=idx++;}int main(){ memset(h,-1,sizeof h);}
2.邻接矩阵
用一个二维数组存储点边的关系,多用于稠密图(n == m^2)。
g[a] [b]指从a指向b的边,为0即为无边,非0即为有边(值可以存成权值等)
缺点:不能存重边。
树与图的 遍历
DFS
同普通DFS
AcWing 846. 树的重心
12345678910111213141516171819202122232425262728293031323 ...
第十四届CB蓝桥省赛
第十四届蓝桥杯大赛软件赛省赛
C/C++ 大学 B 组
试题A日期统计
题目
题目链接
image-20230411085046212
1235 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 27 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 3 8 5 1 6 3 4 6 7 0 7 8 2 7 6 8 9 5 6 5 6 1 4 0 10 0 9 4 8 0 9 1 2 8 5 0 2 5 3 3
答案:235
思路
考场思路:
暴力2023xxxx约是O(1008)?铁T,根本跑不完。
又因为2023不变,所以先找到2023(眼看,第58个是3,前面出现了202子序列),再对后面遍历所有子序列情况,存到map里。O(414)
最后遍历所有日期,map出现过就res++。
代码:
1234567891011121314151617181920212223242526272829303132333435363738 ...
4275. Dijkstra序列
4275.Dijkstra序列
原题链接
思路
Dijkstra板子改改(内部判断一下能否实现即可)
代码
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768#include<bits/stdc++.h>using namespace std;const int N = 1010;int g[N][N];int dist[N];bool st[N];int fl[N];int n,m,k;bool dj(){ memset(dist, 0x3f, sizeof dist); //这里st忘了复原了,所以我当时出错。 memset(st, 0, sizeof st); dist[fl[1]] = 0; for(int t = 1; t <= n; t ++) { // 我的写法 ...
3777. 砖块(每日一题)
AcWing 3777. 砖块(每日一题)
原题链接
思路
1.审题:判断出当B砖和W砖都为奇数个时不成立
每次翻转会使两个砖变为另一种颜色或两个砖交换颜色。所以颜色都为奇数个时将无法翻转成同一种颜色。
2.暴力 + 判暴力复杂度
思路:分别判断全为B或全为W时需要多少步。
方法:
从左到右==-1个==判断是否为需要颜色,不是就翻一下它和它后面的(-1的由来)。
判断最后一个和前面颜色是否相同,不同则选择另一个(下题解将此总数+1e7保证选到另一个)
时间复杂度:O(nt)(t组数,n操作数)
代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include<bits/stdc++.h>using namespace std;const int N = 210;int n,m;string s,cp;int num1[N], ...