postman变量使用技巧


最近在北京某行出差,由于行内都是使用的postman作为接口工具,在拿到别人的导出的postman文件后,由于别人变量使用的是全局变量,我拿到还得修改脚本,非常的麻烦,这里给大家推荐一种使用技巧。

首先简单介绍一下postman中,有三种变量:

  • 全局变量
  • 集合变量
  • 环境变量

我们目的是,为了别人拿到这个postman的文件后,可以直接导入就执行

一般会存在两个类型的变量:

  1. 写死的变量:如host、固定的请求头 这种写死的变量,可以直接写在集合变量中,那么导入导出,都会自动带上这个变量

  2. 需要上一接口响应出参,并给到下一接口入参的变量:如token

// responseB

查看全文

Docker网络


docker 网络实现

首先,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)来收发数据包;此外,如果不同子网之间要进行通信,需要路由机制。

Docker 中的网络接口默认都是虚拟的接口。虚拟接口的优势之一是转发效率较高。 Linux 通过在内核中进行数据复制来实现虚拟接口之间的数据转发,发送接口的发送缓存中的数据包被直接复制到接收接口的接收缓存中。对于本地系统和容器内系统看来就像是一个正常的以太网卡,只是它不需要真正同外部网络设备通信,速度要快很多。

Docker 容器网络就利用了这项技术。它在本地主机和容器内分别创建一个虚拟接口,并让它们彼此连通(这样的一对接口叫做 veth

查看全文

Dockerfile


Dockerfile介绍

Dockerfile就是用来构建docker镜像的构建文件!命令脚本!通过这个脚本可以生成镜像,镜像是一层一层的,脚本一个个的命令,每个命令都是一层!

构建步骤:

  1. 编写一个dockerfile文件
  2. docker build 构建成为一个镜像
  3. docker run 通过镜像生成并运行容器
  4. docker push 发布镜像(DockerHub、阿里云镜像仓库!)

查看一下官方是怎么做的?

https://hub.docker.com/上搜索centos,点击版本链接,就会跳转到github官网

image-20221012224953547_20230303145624075572.png

这就是官方制作的centos的Dockerfile,很多功能都没有,比如

查看全文

装饰器


1.闭包函数

闭包函数一般用于==解决某一个函数只能传入一个参数==的情况。

def funOut(num1):
    def funIn(num2):
        #内部函数修改外部函数的变量,需要声明 nonlocal(变量非内部的,也就是外部的意思)
        nonlocal num1
        num1 += 100
        print(f'此时num1的值为:{num1},需要相加的num2的值为:{num2}')
        return num2+num1
    return funIn

f = funOut(100)
#调用以

查看全文

迭代器与生成器


迭代器

定义

  1. 当类中定义了__iter__和__next__两个方法
  2. __iter__方法需要返回对象本身,即:self
  3. __next__方法,返回下一个数据,如果没有数据了,则需要抛出一个StopIteration的异常。

迭代器类型

#创建迭代器类型
class It():
    def __init__(self):
        self.counter = 0
    def __iter__(self):
        return self
    def __next__(self):
        self.counter += 1
        if self

查看全文

面向对象


对象的复制

变量的赋值操作:只是形成两个变量,实际还是指向同一个对象

class A:
    pass

a1 = A()
a2 = A()
a3 = a1

#可以通过id来判断,对象是否一致
print('a1对象',a1)
print('a2对象',a2)
print('a3对象',a3)

print('a1和a2对象是否相等',id(a1)==id(a2)) # a1和a2对象是否相等 False
#变量的赋值操作:只是形成两个变量,实际还是指向同一个对象。
print('a1和a3对象是否相等',id

查看全文

高阶函数


函数的参数也是一个函数,就称为高阶函数

1.map

1.概述

map(func,*Iterable)

'''
参数1是一个函数,参数2是一个可迭代的对象,例如列表
将参数2里面的每一个元素作为参数传入到参数1这个方法中
最后返回一个新的列表

注意:*参数2是个不可数的,可以传递多个列表。那么此时对应的参数1函数的参数也一一对应
'''

2.实例

单个Iterable(可迭代对象)
a = [1,2,3,4,5,6,7,8,9]
# 将列表中每个元素转为字符串
m = map(str,a)
print(list(m)) # ['1&#

查看全文

匿名函数lambda


1.语法格式

lambda arg1,arg2,arg3 : <表达式>
def add(a,b=1):
    return a+b
print(add(10,20)) # 30
print(add(10)) # 11

add_lambda = lambda a,b=1:a+b
print(add_lambda(10,20)) # 30
print(add_lambda(10)) # 11

2.含有判断

get_odd_even = lambda x:'偶数' if x % 2 == 0 else '奇数'

print('8 是

查看全文

git流程控制


1.修改文件后,操作git status显示==红色==的modified

  • git add . 提交暂存区,“.”可以替换为指定文件
  • git restore .恢复,本地文件会撤销改动的内容,“.”可以替换指定文件

2.git add后,操作git status显示==绿色==的modified

  • git reset HEAD 1.txt 某个文件回滚到上一次操作,==不加文件名==则是整体回到上一次操作。此时操作git status绿色的modified变回==红色==的modified,本地文件不会动,==代码不变,回到了步骤2之前==
  • git checkout .从库中取出文件,覆盖

查看全文

yield


1.基本使用

函数中,只要有yield,那么返回就是一个yield_obj生成器(==generator==)对象,不会执行函数内部的代码

yield_obj.__next__() == next(yield_obj) 这两个一样的
首次通过yield_obj.__next__()方法会执行yield以上的代码,遇到yield然后返回,
再次执行yield_obj.__next__()方法会执行yield以下的代码,与yield以上的代码,遇到yield然后返回,
再次执行yield_obj.__next__()方法会执行yield以下的代码,与yield以上的代码,遇到yield然后返回,

查看全文