0%

Monthly报表完成心得

1 知识点

添加日志

引入logging包,引入log文件即可

1
logging.basicConfig(filename="/tmp/bi_dsvcs/app.log", level = logging.DEBUG)

有四种级别INFO, DEBUG, WARNING, ERROR, CRITICAL, FATAL

获取月份列表

需求
需要获取月份数据[‘00’, ‘01’, ‘02’, ‘03’, ‘04’, ‘05’, ‘06’, ‘07’, ‘08’, ‘09’, ‘10’, ‘11’]
原本解决办法
直接定义了一个这样的数组
新方法
range()从0到13,再在一位数前补零
实现代码

1
2
theMonth = range(0, 13)
monthKey = map(lambda x:'%02d' % x, theMonth)

新方法2
[“%02d” % x for x in range(1,13)]

数据库导入导出

shell脚本里添加mysqldump导出数据
导入数据为避免更改表结构,直接mysql -u……连接到库,执行insert操作

gunicorn配置

使用supervisor配置gunicorn,我本地虚拟机配置如下

1
2
3
4
5
6
7
8
9
10
11
[program:bi_dsvcs]
command=python /usr/bin/gunicorn -c /spython/bi_dsvcs/gunicorn.cnf dsvcs:app
process_name=%(program_name)s/%(process_num)d
directory=/spython/bi_dsvcs
numprocs=1
autostart=true
autorestart=true
user=developer
redirect_stderr=true
stdout_logfile=/tmp/bi_dsvcs.interface.info_stdout.log
stderr_logfile=/tmpbi_dsvcs.interface.error_stderr.loga

##2 注意事项

group_concat

GROUP_CONCAT()会截断数据,限制长度为1024字节

dict

dict不可以直接添加二维数据,需要判断第一维是否已经存在

1
2
3
4
5
def addtwodimdict(thedict, key_a, key_b, val): 
if key_a in adic:
thedict[key_a].update({key_b: val})
else:
thedict.update({key_a:{key_b: val}})

list的append()和extend()区别

(1)append()
接受任意数据类型添加到list尾部
(2)extend()
只接受list,将这个list每个元素添加到list中

部署后404但是代码确实已部署上去

supervisor可能没有重启,重启supervisor或者直接bi_dsvcs/ ./dsvcs restart