文档章节

Flask做简单日志下载简单总结

叫我哀木涕
 叫我哀木涕
发布于 2017/05/19 16:55
字数 422
阅读 61
收藏 0

最近因内部小项目,需要在公司hadoop client机器跑些系统,涉及到跨语言的通讯。这个时候在自己的Flask项目加个Mongo对象数据获取的api。为啥不自己去Mongo库读取。因为client机器是虚拟机,常会变更而且没有权限。安装些扩展很难;用python就容易很多。库文件最暴力放到自己目录即可。

 

碰到的问题:

1,有碰到一些socket错误时候,服务不响应的问题。到网上查了查,看到这个patch,修正后验证靠谱了。

没再碰到服务不响应的情况,

patch地址: https://bugs.python.org/file40772/clear_buffer_on_error.patch

2,还有一常出现错误。error: [Errno 32] Broken pipe;这个网上百度了下,是因为flush的时候,客户端已经关闭连接。提供了重写BaseHTTPRequestHandler的handle方法。

不过有其他解决方法应该更容易些;一、不用python来读取文件去发送response,而是用一Nginx当下载服务器,python解析完参数redirect过去就行了。二,用Nginx做反向代理,用upstream配置请求;这样请求到后端header会标准很多。

3,Mongodb读取的dict数据无法直接json。因为ObjectId类型,把_id这个字段del掉或者把其对应的值给字符串化即可。

File "/usr/local/lib/python2.7/json/__init__.py", line 244, in dumps
    return _default_encoder.encode(obj)
  File "/usr/local/lib/python2.7/json/encoder.py", line 207, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/local/lib/python2.7/json/encoder.py", line 270, in iterencode
    return _iterencode(o, 0)
  File "/usr/local/lib/python2.7/json/encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: ObjectId('591abdda85e09be04b8b4567') is not JSON serializable

 

 

© 著作权归作者所有

叫我哀木涕
粉丝 2
博文 30
码字总数 13298
作品 0
海淀
程序员
私信 提问
Docker Compose 简介

Compose 的使用方式非常简单,基本上就是下面的三板斧: 定义 Dockerfile 定义 docker-compose.yml 运行 docker-compose up 其实 compose 提供的命令可以管理应用的整个生命周期: Start, s...

Java干货分享
2018/10/21
0
0
python web 部署

python web 部署 web开发中,各种语言争奇斗艳,web的部署方面,却没有太多的方式。简单而已,大概都是 nginx 做前端代理,中间 webservice 调用程序脚本。大概方式: nginx 不用多说,一个高...

刘星石
2016/03/04
37
0
python web 部署:nginx + gunicorn + supervisor + flask

python web 部署 web开发中,各种语言争奇斗艳,web的部署方面,却没有太多的方式。简单而已,大概都是 nginx 做前端代理,中间 webservice 调用程序脚本。大概方式: nginx 不用多说,一个高...

劲风online
2015/11/06
0
0
从零开始搭建论坛(三):Flask框架简单介绍

前面两篇文章中我们已经了解 Web(HTTP)服务器,Web应用程序,Web框架,WSGI这些 Python Web 开发中的概念。我们知道,Web框架通过将不同Web应用程序中的共性部分给抽象出来,提供一系列通用的...

selfboot
2016/10/30
0
0
wechat-admin:Flask使用篇

wechat-admin:Flask使用篇 小明明s à domicile2017-08-2025 阅读 Python 在 Flask最佳实践 里面有三项在本项目也有应用: 怎么用扩展 自定义RESTAPI的处理 local_settings.py 这我就不再复...

小明明s à domicile
2017/08/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

c++队列(转自本人csdn)

#include using namespace std;int main(){char input, alphabet = ‘A’;cout << "输入最后一个大写字母: ";cin >> input;for(int i = 1; i <= (input-'A'+1); ++i)......

WinkJie
28分钟前
1
0
外观模式(Facade)

//这篇写的可以 https://www.jianshu.com/p/f71051475e32

南桥北木
47分钟前
2
0
锤子科技确认卖身,官网微博均变更所属公司

年前曾有过消息,罗永浩创办的锤子科技将被今日头条和抖音的母公司字节跳动收购。其中的部分工作人员将随专利一同成为字节跳动所属,而罗永浩本人将离开锤子科技。 今天我们终于看到了锤子科...

linux-tao
53分钟前
2
0
[json]阿里fastjson1.2.24字符串转为json对象/数组

java.lang.ClassCastException: com.alibaba.fastjson.JSONArray cannot be cast to com.alibaba.fastjson.JSONObject at com.alibaba.fastjson.JSON.parseObject(JSON.java:206) 多行要用J......

Danni3
今天
1
0
关于jenkins 构建打包的技巧

关于jenkins 构建打包的技巧 jenkins是一个专业构建平台,在各大公司内部比较受欢迎,可以自定义构建方式,以下整理一些技巧,防止以后忘记。 邮件通知 jenkins 自带邮件通知功能,但是比较单...

shzwork
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部