python小知识点汇总
一 写mysql
场景:自动化用例中需要构造数据,写入redis
- 表中已有该primary_key的记录,在现有基础上更新字段
- 表中无该记录,需要插入
# 请求传入table字段,db.table,context为要添加的字段等,一般为json或dict
def add_table(context,table):
# 获取db table及primary_id
table_name = table
db_name = 'default' #默认的库名
if "." in table:
db_name = table.split('.')[]
table_name = table.split('.')[]
else:
table = 'advert_dsp.'+table_name
# 得到该表的primary_key
sql = "select column_name from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where table_name = '%s' and constraint_name = 'PRIMARY'" % (table_name)
primary_key = command(db_name,sql)[].get("column_name")
# 若请求字段有primary_key,则指定记录操作
result =
context.text = eval(context.text) if context.text else None
primary_value = context.text.get(primary_key) if (primary_key in context.text) else
if primary_value:
result = command(db_name,'select * from %s where %s=%s'%(table_name,primary_key,primary_value))
"""
# 替换一些常量,可有可无
for k,v in context.text.items():
if v in AutoTest:
context.text[k] = AutoTest.get(v)
"""
# 场景1,表中已有对应记录,现有基础上更新
if result:
param = dict_to_set(context.text,",")
#param = urllib.unquote(urllib.parse.urlencode(context.text).replace("&", ","))
if param:
sql_update = 'update %s set %s where %s=%s'%(table_name,param,primary_key,primary_value)
command(db_name,sql_update)
# 场景2,表中无对应记录,插入新数据
else:
context.params = DbData(**context.text).params[table] #与默认值列表整合一下,补充默认值
# 要插入的value中的双引号需要转义,dict.values是会单双引号配合,所以手动处理一下
value_list = []
for k, v in context.params.items():
v = v.replace('"', '\\\"') if isinstance(v, str) else v
value_list.append(str(v))
values = '"' + '", "'.join(value_list) + '"'
qmarks = ', '.join(['%s'] * len(context.params))
cols = ', '.join(context.params.keys())
# 可行方案
sql = 'insert into '+table_name+'(%s) values(%s)' % (cols, values)
command(db_name,sql)
# 报错方案
sql = 'insert into '+table_name+'(%s) values(%s)' % (cols, qmarks)
command(db_name,sql,values)
报错方案:用的是msyql的execute(sql, param)
不知道为什么会报错,一样的key和value,方案1就正常,方案2就报错了:not enough arguments for format string
二 使用 flask mock 一个小服务
场景:要写一个mock服务或者其他
# -*- coding:utf- -*- from flask import Flask
from flask import request
import sys,json,md5 reload(sys)
sys.setdefaultencoding("utf-8") app = Flask(__name__)
@app.route('/others/getSignature',methods=['GET']) //域名后的path,是个GET服务
def get_sig():
project = request.args.get('project') # 处理查询
path = request.args.get('path')
reqValue = eval(request.args.get('reqValue'))
sig = ''
str_request = ''
timestamp = ''
if project == 'meipai':
secret_key = "bdaefd747c7d594f"
request_value = sorted(reqValue.iteritems(),key = lambda asd:str(asd[]))
for key in request_value:
str_request = str_request + str(key[])
str_temp = path + str_request + secret_key + timestamp
m = md5.new()
m.update(str_temp)
tmp = m.hexdigest()
for i in range():
pos = i*
sig += tmp[pos+]+tmp[pos]
return sig if __name__ == '__main__':
app.run(debug=True,host='192.168.99.31',port=)
python小知识点汇总的更多相关文章
- python小知识点总结
小知识点总结 1.python2和python3的区别 python2 python3 默认编码 ascii utf-8 input() raw_input() input() print 可以不 ...
- 小白到大神,Python 密集知识点汇总
Python 基础 1. 变量 你可以把变量想象成一个用来存储值的单词.我们看个例子. Python 中定义一个变量并为它赋值是很容易的.假如你想存储数字 1 到变量 "one" ...
- Python小问题汇总
现在的时间适合写点最近的小总结,这中间涉及到python/git等问题,我就从python先说起吧. 一.Python 1. Python的异常处理 因为想到自己不断尝试写小程序的话会用到抛出异常信息 ...
- Python小知识点(3)--装饰器
(1)装饰器含参数,被装饰函数不含(含)参数 实例代码如下: import time # 装饰器函数 def wrapper(func): def done(*args,**kwargs): star ...
- 一、Python概念知识点汇总
一.编译型语言和解释性语言的区别 二.Python的设计目标 1.一门简单直观的语言并与主要竞争者一样强大 2.开源,以便使任何人都可以为它做贡献 3.代码像纯英文那样容易理解 4.适用于短期开发的日 ...
- 年度巨献-WPF项目开发过程中WPF小知识点汇总(原创+摘抄)
WPF中Style的使用 Styel在英文中解释为”样式“,在Web开发中,css为层叠样式表,自从.net3.0推出WPF以来,WPF也有样式一说,通过设置样式,使其WPF控件外观更加美化同时减少了 ...
- python小知识点
问题:求列表中每个元素的元素次方之和>>> a=[1,2,3,4]>>> k=len(a)第一种解法# s=0# for x in a:# ...
- python小知识点随笔
可能会有不局限于Python语言的内容,文中“>>>”表示结果,而不是命令行交互的提示符 1.关于字符串编码 ASCII编码 占用一个字节 二进制11111111=十进制255 所以 ...
- Python小知识点(5)--面向对象部分
面向对象: 世间万物,皆可分类.--------------------手机<--------------某一个分类 世间万物,皆为对象.--------------------我的手机< ...
随机推荐
- 【JS新手教程】LODOP打印复选框选中的任务或页数
之前的博文:[JS新手教程]LODOP打印复选框选中的内容关于任务:Lodop打印语句最基本结构介绍(什么是一个任务)关于本文用到的JS的eval方法:JS-JAVASCRIPT的eval()方法该文 ...
- webpack config to use plugin and webpack-dev-server
Demo3操作手册 本Demo演示如何配合各种plugin进行偏复杂的使用 准备环境 初始化环境, cd到demo1目录之后, 执行如下命令: npm init -y npm install webp ...
- [转帖]Java 2019 生态圈使用报告,这结果你赞同吗?
Java 2019 生态圈使用报告,这结果你赞同吗? http://www.51testing.com/html/94/n-4462794.html 发表于:2019-10-15 17:10 作者: ...
- [转帖]Kubernetes - nginx-ingress 配置跳坑指南
Kubernetes - nginx-ingress 配置跳坑指南 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https:// ...
- vc编译器对 除法的优化
基本知识,7/2 和 6/2 在计算机中的商都为3.C语言的除法不等同于数学意义中的除法. C语言的除法.采用向零取整的方法. -______________0_______________+ 只有在 ...
- 解决windows下tomcat端口被占用
在平时开发中,电脑太卡或者项目比较大,有时候没有完全停止eclipse下的tomcat再次启动tomcat会出现端口占用情况,主要报如下错误: 具体解决方案: 打开windows下的命令窗口(快捷键: ...
- CTeX error saving the project file
「Options -> ConfigurationWizard -> User Profiles > 点击 Create/Update User Profile 按钮」 重启WinE ...
- 开始使用 Ubuntu(字体渲染去模糊+软件安装+优化配置+常见错误)(29)
1. 中文字体渲染美化 + 去模糊 步骤: 1. 解压安装 lulinux_fontsConf_181226.tar.gz,按里面的安装说明操作: 2. 开启字体渲染: 打开 unity-tweak- ...
- 利用Python进行数据分析 第7章 数据清洗和准备(1)
学习时间:2019/10/25 周五晚上22点半开始. 学习目标:Page188-Page217,共30页,目标6天学完,每天5页,预期1029学完. 实际反馈:集中学习1.5小时,学习6页:集中学习 ...
- FFmpeg开发教程一、FFmpeg 版 Hello world
本系列根据项目ffmpeg-libav-tutorial翻译而来 Chapter 0 - 万物之源 -- hello world 然而,本节的程序并不会在终端打印"Hello world&q ...