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)--面向对象部分
面向对象: 世间万物,皆可分类.--------------------手机<--------------某一个分类 世间万物,皆为对象.--------------------我的手机< ...
随机推荐
- redis 那些事儿
1 我的数据存入redis了但是怎么不见了? redis的内存使用是有限的,一直向redis中写入数据(如果配置了allkeyLRU)就会触发内存淘汰机制,将最近没有访问过的的key,value删除掉 ...
- OpenCV基于字节指针进行高效像素遍历
直接获取Mat对象的像素块的数据指针,基于字节指针操作,实现快速像素遍历方法(1280x720, 彩色,仅需几毫秒完成).Mat对象的数据组织形式与像素块数据的存储方式,Mat对象由两个部分组成,元数 ...
- Ly与lyon的巅峰对决,描色法
http://paste.ubuntu.com/14124956/ #include <stdio.h> #include <stdlib.h> struct node { i ...
- SSM基本案例
1.搭建环境,导入maven依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sour ...
- Mybatis应用入门
mybatis简介 Mybatis是在jdbc的基础之上封装而成的持久层框架. Mybatis是一个ORM框架.ORM(object relational mapping):对象关系型映射 搭建myb ...
- Python--对list、tuple、dict的操作
一.List(列表) 首先,创建一个简单的list: animal = ['cat','dog','lion','tiger'] (1) 用索引的方式访问list中的元素:animal[0] 当索引从 ...
- python检测当前网卡流量信息,用于查看实时网速
可以用来检测是否有挖矿程序在运行的一个子条件 # coding:utf-8 __author__ = 'chenhuachao' import wmi import time import platf ...
- Istio旨在成为容器化微服务的网格管道
在精彩的软件容器世界中,当新项目涌现并解决你认为早已解决的问题时,这感觉就像地面在你的脚下不断地移动.在许多情况下,这些问题很久以前被解决,但现在的云原生架构正在推动着更大规模的应用程序部署,这就需要 ...
- 深度学习的激活函数 :sigmoid、tanh、ReLU 、Leaky Relu、RReLU、softsign 、softplus、GELU
深度学习的激活函数 :sigmoid.tanh.ReLU .Leaky Relu.RReLU.softsign .softplus.GELU 2019-05-06 17:56:43 wamg潇潇 阅 ...
- Java 处理异常 9 个最佳实践,你知道几个?
1. 在Finally中清理资源或者使用Try-With-Resource语句 使用Finally Java 7的Try-With-Resource语句 2. 给出准确的异常处理信息 3. 记录你所指 ...