自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 软件安全测试

⑥ 用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统。① 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求);⑤ 系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)。⑤ 是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统);① 测试采取的防护措施是否正确装配好,有关系统的补丁是否打上;③ 采用成熟的网络漏洞检查工具检查系统相关漏洞;③ 系统会不会因用户的权限的改变造成混乱;④ 系统数据的独立性;

2023-04-13 13:44:07 310

转载 pytest—setup和teardown简单用法

pytest中的前置pytest比较强大,提供了不仅仅一种方法的前置和后置:光看上面的内容,肯定一脸懵逼,不知道到底什么时候使用,我来通过举例一个个介绍先介绍第一个大家都比较熟悉的与unittest中的书写一致,这个可以在类中使用,也可以在类外进行使用。该方法每条用例都会执行。

2023-03-16 17:29:46 227

转载 前端开发:在JavaScript 中JSON.stringify()和JSON.parse() 的使用总结

在前端开发过程中,对于JSON的处理使用的场景是比较多的,也是比较常见的需求。JSON 是用于存储和传输数据的格式,JSON 通常用于服务端向网页传递数据,而且它是一种轻量级的数据交换格式。尤其是在JS开发相关的时候,将JSON 数据转换为 JavaScript 对象是非常常见的处理方式。那么本文就来分享一下前端对于JSON处理的常用方法JSON.stringify()和JSON.parse()的使用总结。...

2022-06-17 17:02:44 662

转载 MYSQL把一张表的数据批量复制到另外一张表

MySQL数据库快速(只需要三行sql)将一个表的数据备份到另一个表中。DROP TABLE IF EXISTS B;CREATE TABLE B LIKE A;INSERT INTO B SELECT * FROM A;表结构完全一样CREATE TABLE 表1 LIKE 表2;insert into 表1 select * from 表2表结构不一样(这种情况下得指定列名)insert into 表1 (列名1,列名2,列名3) select 列1,列2,列3 from 表2

2021-05-19 11:22:48 1069

原创 前端--CSS

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <!--标签选择器--> <link rel="stylesheet" href="demo.css"> <style> /*id选择器,关键符号# ,id是惟一的,理论上整个ht

2020-12-14 16:49:17 84

原创 前端--HTML标签

html标签html基础知识1.一个页面由一个一个的html标签所组成。2.能够被浏览器所识别的代码我们称之为 html标签。3.每个标签所代表的含义不同。html标签学什么?学有哪些标签、每个标签能够在浏览器解析成什么样子。标签的组成<html lang="en">lang 是标签的属性 </html>自闭合标签和主动闭合标签<meta charset="UTF-8"> 自闭和标签<title>天马座</title&gt

2020-12-13 11:39:25 126

原创 Django基础--filter/tags(模板标签)

views.pydef template_tags(request): import datetime content = '三胖content三胖contentSBcontentsbcontentcontentcontentcontentcontent' title = 'tiTLe' stus = ['xiaohei', 'xiaobai', 'lhy'] info = {"money":9999} cur_date = datetime.dateti

2020-12-12 15:12:55 249 1

原创 Django基础篇--orm操作

前言:1. 新建一个model_test文件2. 引入os,django包,子项目下的models模块 import os,djangoos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'sky.settings')django.setup()from user import models正文:新增(类似数据库操作的insert)# 新增#方式一:models.Category.objects.create(name='MySQL

2020-12-11 18:03:13 83

原创 Django基础篇--分页

导入Django自带的分页类from django.core.paginator import Paginator分页类的使用views.pydef index(request): page_number = int(request.GET.get('page',1))#定义当前展示第几页,默认展示第一页 limit = int(request.GET.get('limit',5))#定义分页页面展示数量,默认展示五条 articles = models.Arti..

2020-12-11 16:28:05 105

原创 Django基础篇--上下文处理器和前端代码复用

一、上下文管理器在views中重复使用的代码,可以通过上下文管理器(在setting.py文件中的TEMPLATES中配置)中实现,减少代码冗余上下文管理器的处理流程如下:先走完views里面的代码,将结果返回给前端然后再将上下文的结果返回给前端上下文只有在返回的是html的时候,才会走上下文处理器当views和上下文处理器中都定义了的变量值,那么HTML页面中以views中定义的为准。1.1 上下文context_process.py代码from . import mode

2020-12-10 18:09:41 196 2

原创 Django--页面设置

一、更改页面tittle和header# 更改页面tittle和headeradmin.site.site_title = "sky"admin.site.site_header = "sky后台管理"

2020-12-04 16:38:34 150

原创 Django基础必备三神装(HttpResponse、render、redirect)

在使用三神装的时候,首先当然是得要导入它们:from django.shortcuts import HttpResponse, render, redirect1.HttpResponse它是作用是内部传入一个字符串参数,然后发给浏览器。例如:def index(request): # 业务逻辑代码 return HttpResponse("OK")2、renderrender方法可接收三个参数,一是request参数,二是待渲染的html模板文件,三是保存具体数据的字典

2020-12-04 15:22:56 197

原创 django--设置静态文件,前后端不分离开发(静态html模板)

建立templates文件夹,用于存放html模板,static文件夹也放在该文件夹下注意:templates和static文件夹放在哪里都可以,在settings文件里添加目录即可,有多个路径直接’,'连接即可更改index.html的css样式加载路径设置静态文件路径#设置静态文件路径STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]...

2020-12-04 15:09:52 395

原创 django操作数据库

一、连接sqlite数据库复制db.sqlite3路径文件–>新建连接–>SQLite–>填写db.sqlite3路径二、怎么定义orm,生成表结构、同步到数据库 1. 定义表类,字段信息 2. 执行命令: (1)python manage.py makemigrations # 生成表结构(py),不指定子项目名,默认所有子项目都生成这个表结构 (1)python manage.py makemigrations [app_name] # 生成app_name

2020-12-03 17:56:51 103

原创 Django建立请求

建立子项目后,在settings文件里添加子项目子项目的views里写接口逻辑url里填写对应路径(页面名称),函数启动项目,启动后控制台有对应ip,端口号浏览器请求,ip,端口号+url如果接口返回是json,用JsonResponse接口返回是字符串,用HttpResponseeg:get请求...

2020-12-03 14:29:10 97

原创 Django服务端开发框架

启动服务Django 版本用2.1.7创建Django项目,项目名为sky: django-admin startproject sky运行Django项目: python manage.py runserver(127.0.0.0 代表本地访问ip)python manage.py runserver 0.0.0.0:8999(0.0.0.0可以让别人通过你的ip访问,8999是被更改访问的端口号)指定端口号运行: python manage.py runserver 8999创建子项目(子

2020-11-27 18:08:10 460 2

原创 HTTP和HTTPS的区别

HTTP和HTTPS的区别端口不同:http默认是80端口,https默认是443端口http(超文本传输协议)信息是明文传输,https运行在SSL之上,添加了加密和认证机制,更加安全https由于加密解密会带来更大的cpu和内存开销https通信需要证书,一般需要向证书颁发机构(CA)购买...

2020-11-22 14:22:49 80

原创 TCP的三次握手与四次挥手理解及面试题(很全面)

序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,.

2020-11-22 14:17:19 283

原创 python常见数据类型之--字符串

(二)字符串1. 成对单引号,或者双引号括起来的内容,就是字符串a = "long"print(a)输出结果:C:\Users\m\AppData\Local\Programs\Python\Python38\python.exe D:/Python/project/geng_juans_homework/day2/变量和输入输出.pylongProcess finished with exit code 02. 字符串取值方式:字符串名[索引值]a = "long"print(a

2020-11-19 16:01:11 409

原创 自动化测试常用断言的使用方法

先介绍一下unittest的基本使用方法:import unittest模块定义一个继承 unittest.TestCase 的测试用例类定义 setUp 和 tearDown两个方法,tearDown的过程很重要,是为以后的TestCase留一个干净的测试环境。定义测试用例,均要以test开头一个测试用例只需要测试一个方面,测试的目的和测试内容要很明确。一般使用assertEqual、assertIn等断言方法去判断程序执行的结果和预期结果是否相符调用 unittest

2020-11-18 18:01:11 1556

原创 python--拼接url路径

引用from urllib.parse import urljoin模块,urljoin()方可以拼接url路径,如果拼接的url前后多了或少了’/’,它都可以自动去除或增加from urllib.parse import urljoinhost = parse_ini('server').get('host')class ServerUrl: login_url = urljoin(host,'/api/user/login') #登录url register_url =

2020-11-09 10:28:08 4586 1

原创 python常见数据类型之--字典

(五)字典特点1.标志 {} 关键字 dict2.a = {} 空字典3.字典里的数据存储格式: key:value 键值对4.字典里可以存储任何类型数据:整数,浮点数,字符串,元组,列表,字典5.取值方式:根据key取值, 字典名[key]a = {'age':28,'score':99.99,'name':'genggeng','people':(91,28,56,63),'city':['China','HK']}print(a['age'])输出结果:28字典里的内建

2020-11-09 09:57:50 352

原创 python接口自动化框架--python3+unittest

用例怎么写,用例规范其他功能: 操作数据库,redis查找测试用例产生测试报告发送测试报告(邮件,钉钉)业务相关功能:tokenget_token(phone)get_uid(username)‘’’return uidcreate_sign()return sign

2020-11-02 13:02:47 205

原创 python-解析ymal(测试数据)文件

首先编辑yaml文件import yamlwith open('data.yaml','r',encoding='utf-8')as fr: print(yaml.load(fr,Loader=yaml.SafeLoader))if __name__ == '__main__': pass输出结果:#是个字典{'name': 'yiyi', 'port': 3306, 'case': {'url': 123, 'cookie': 'cc', 'names': '-1 -2

2020-10-28 19:32:16 192

原创 python-解析配置文件

首先定义ini配置文件,数据库,redis等连接信息都可以写在里面ini文件:import configparserimport osdef parse_ini(node,file_path='config.ini'): if not os.path.exists(file_path):#判断文件路径是否存在 raise Exception('ini文件不存在') #主动抛异常,如果有异常,下面的代码都不执行了 with open(file_path, 'r',

2020-10-28 19:24:00 198

原创 python类中的self到底是干啥的

首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗(为了和其他编程语言统一,减少理解难度),不要搞另类,大家会不明白的。下例中将self改为myname一样没有错误:class Person: def _init_(myname,name): myname.name=nam

2020-10-27 12:46:32 195

原创 写日志

import loggingfrom loguru import loggerimport time#debug #调试信息,最低的级别#info #正常的提示信息#waring #警告信息#error #出错了 # 50 - 100#exception #程序出异常了 sql执行出错import syslogger.remove() # 清除它的默认设置设置fmt = '[{time}][{level}][{file.path}:line:{line}:function_na

2020-10-27 12:38:36 161

原创 面向对象

一.类类:一个模板,一个模型。class PersonManager: #经典类 passclass Person2():#新式类 passclass Person3(object):#新式类 pass对象,实例,实例化对象根据模板造出来的具体的东西实例根据模板造出来的具体的东西实例化把模板做成具体东西的过程。class Car: def run(self): print('run...') def baoyang(se

2020-10-27 12:38:16 89

原创 python 单元测试--unittest框架

以下内容包括:写用例,用例描述,参数化,生成测试报告

2020-10-26 17:25:31 111

原创 python 队列

# 队列 listimport queueimport randomimport timeimport threadingorders_q = queue.Queue()#队列实例化#生产者/消费者(多个消费者)模式def producer():#一个生产者 for i in range(10): order_id = random.randint(1, 99999) print('订单生成,orderid:%s'%order_id)

2020-10-24 18:08:21 56

原创 python多线程,多进程,线程传参,守护线程,锁

进程一个程序,它是一组资源的集合一个进程里面默认是有一个线程的,主线程多进程是可以利用多核cpu的线程最小的执行单位线程和线程之间是互相独立的主线程等待子线程执行结束线程和线程之间,数据是共享的。守护线程:只要主线程执行完成,不管子线程有没有执行完成,全部都结束python的多线程是利用不了多核cpu的import threadingimport timedef cook(): print('做饭') time.sleep(1)def xiyifu():

2020-10-23 22:43:48 232 1

原创 jsonpath:从庞大的接口返回结果(返回结果为字典类型)中取字段值

从庞大的接口返回结果(返回结果为字典类型)中取字段值,返回结果是lists = {"ec": 0, "errcode": 0, "em": "", "cache": 0, "adm_num": 3, "levelname": None, "mems": [ {"uin": 511402865, "role": 0, "g": 0, "join_time": 1589360442, "last_speak_time": 1600570983, "lv": {"point": 0, "lev

2020-10-08 23:40:49 1089

原创 网络编程

#get、post、传cookie、headers、传文件、传json、下载文件import requests#get请求url = 'http://127.0.0.1:8999/login'data = {'username':'niuhanyang2','password':'1'}r = requests.get(url,data)传Cookie/header:cookie = {'wp-settings-1':'1','PHPSESSID':'xxxxx'}headers

2020-09-18 00:43:44 152

原创 开发mock接口

fastapiimport fastapifrom fastapi import Formfrom starlette.requests import Requestimport uvicornimport toolsserver = fastapi.FastAPI()#定义一个服务# pip install python-multipart# @server.post('/login')# def login(request:Request,username:str=Form(..

2020-09-17 22:45:18 200

原创 base64加密

base可以加密、解密,过程可逆import base64#加密s = '646sdsdvdv'r = base64.b64encode(s.encode())#加密,s.encode() 字符串转换为bytes类型做加密print(r.decode())#解密s = 'NjQ2c2RzZHZkdg=='r = base64.b64decode(s)#解密,直接对字符串做解密操作print(r.decode())#加密后的结果转换为bytes类型...

2020-09-17 00:28:08 136

原创 md5加密

import hashlib## s = '123456'+'sgdytyr'# s = s.encode()#字符串转成bytes类型# m = hashlib.md5(s)#加密,必须是bytes类型,结果是ASCII码,加密后不可逆# result = m.hexdigest()#返回十六进制数据字符串值# print(result)def my_md5(s): s = str(s) s = s.encode() # 字符串转成bytes类型 m = hash

2020-09-17 00:17:11 56

原创 操作redis

import redisr = redis.Redis(host='118.24.1.40', password='HK13ewc&*', port='639', db=4, decode_responses=True#默认redis返回的结果是字符串)#string类型操作# set方法r.set('geng','set方法')#value必须为字符串r.se

2020-09-14 23:59:29 81

原创 操作数据库--mysql

操作数据库 所有常用方法import pymysql#oracle sqlserver ..host = '118.24.3.40'# ipuser = 'jxz'#用户名password = '123456' #密码;字符串db='jxz'# 数据库名port = 3306 #端口号;int类型connect = pymysql.connect(host=host,user=user, password=password,

2020-09-12 00:02:54 76

原创 excel操作--更改excel

from xlutils import copy #修改excelimport xlrd #修改excel同时需要xlrd第三方模块book = xlrd.open_workbook('students.xls')# 1.打开原excelsheet = book.sheet_by_index(0)# 2.读取excel,xlrd的方法,获取第0个sheet页,复制excel(xlutils) 里不能通过book.sheet_by_index获取某个sheet页的内容new_book = copy

2020-09-11 22:59:48 220

原创 excel操作--读取excel

import xlrdbook = xlrd.open_workbook('students.xls')#打开excelsheet = book.sheet_by_index(0)#读取第N个sheet页,默认从0开始sheet = book.sheet_by_name('sheet1')#读取名为‘sheet1’的sheet页print(book.sheets())#所有的sheet页,返回的是一个list,list里面就是每个sheet对象for s in book.sheets():

2020-09-11 22:06:37 540

空空如也

空空如也

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

TA关注的人

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