摘要: 调试Django框架写的服务时,需要模拟客户端发送POST请求,然而浏览器只能模拟简单的GET请求(将参数写在url内),网上搜索得到了HttpRequester这一firefox插件,完美的实现了模拟POST提交表单的需求,这里记录一下简单Django服务的搭建、以及使用HttpRequester 阅读全文
posted @ 2017-11-20 00:12 及时 阅读(8541) 评论(0) 推荐(0) 编辑
摘要: mongoengine支持程序同时连接多个数据库,这些数据库可以位于一个或多个mongo之中,通过alias名称区分不同的连接即可。 可以通过switch_db切换到不同的数据库,进行读写操作,switch_db其实是一个上下文管理器,通过和with语句一起使用,能够保证切换数据库的影响范围。 由于 阅读全文
posted @ 2017-11-14 00:52 及时 阅读(5657) 评论(0) 推荐(0) 编辑
摘要: 背景 最近新上线的一个服务,偶尔会有超时告警,其主要逻辑仅仅只是简单的读/写mongodb,而且服务上线初期,流量并不大,因而理论上来说,每次请求都应该很快才对,事实上分析日志也证实90%以上的请求都在100ms内返回,大部分请求耗时都在10ms内,但是依然有1%不到的请求会显示耗时超过1s,极端个 阅读全文
posted @ 2017-11-05 18:27 及时 阅读(873) 评论(0) 推荐(0) 编辑
摘要: 需要用Python写一段代码,给定一堆关键词,返回出现次数最多的n个关键字。 第一反应是采用一个dict,key存储关键词,value存储出现次数,如此一次遍历即可得出所有不同关键词的出现次数,而后排序取出前n个关键词即可。 然而仔细一思考,这种类似需求应该很常见,Python应该有提供更好的方式实 阅读全文
posted @ 2017-10-21 02:15 及时 阅读(5059) 评论(0) 推荐(0) 编辑
摘要: 从mongodb中读取出来的记录中,时间存储在datetime对象里,返回给客户端的却要求是时间戳格式,因此需要将对应的datetime时间转化为时间戳,从stackoverflow上找到同样的问题和详尽的答案: https://stackoverflow.com/questions/8777753 阅读全文
posted @ 2017-09-21 01:47 及时 阅读(5215) 评论(1) 推荐(0) 编辑
摘要: 项目中有可能会碰到这样一种场景: 根据一个id,查询得到和id对应的完整数据信息存储对象,比如书籍id到书籍详细信息,用户id到用户详细信息等,详细信息字段可能包括几十甚至上百个数据字段,真正需要返回给调用方的字段实际上却只占其中一小部分,这是出于性能和带宽的考虑(甚至在有些场景中,处于隐私或者安全 阅读全文
posted @ 2017-09-19 02:51 及时 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 一个热点统计需求,需要限定一个时间范围,计算出该范围内的热点事件,相关数据则以UTC标准时间的ISO时间格式存在mongodb中,和服务器设置的时区UTC+8并不一致。 为了解决这个问题,直觉反应是在python中将时区改为UTC时区,然而改变整个服务的时区设置却可能会影响其他逻辑,此种更改最好是能 阅读全文
posted @ 2017-09-18 00:57 及时 阅读(22173) 评论(0) 推荐(0) 编辑
摘要: 项目碰到要使用mongodb的场景,以前只听过这一强大的文档数据库,但一直没有真正使用过,参考一下项目中已有的使用代码,是通过import mongoengine这一模块实现python服务对db中collection的增删查改。 mongoengine的项目网站http://mongoengine 阅读全文
posted @ 2017-09-17 02:19 及时 阅读(2565) 评论(0) 推荐(1) 编辑