- 博客(84)
- 资源 (39)
- 收藏
- 关注
原创 Insert python object in mongodb
插入python对象到mongo中转json 报错from pymongo import Connectionimport jsonconn = Connection()db = conn.cl_databasepostings = db.postings_collectionclass Posting(object): def __init__(self, link,
2013-12-31 16:18:51 2016
原创 Tornado 支持JSONP的请求封装
由于JSONP强大的跨域访问功能,发现tornado没有对jsonp的默认支持,还好tornado是开源的,就简单实现了一个JSONPHandler,对一切JSONP请求进行封装。对于jsonp跨域见上一篇文章tornado对于jsonp的封装主要在finish的时候返回的json是对前端页面js的调用import jsonfrom functools import wrapsd
2013-12-31 12:04:16 2493
转载 jsonp 跨域请求
先说说JSONP是怎么产生的:其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,小可不才,试着用自己的方式来阐释一下这个问题,看看是否有帮助。1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准;2、不过我们又发现,Web页面上
2013-12-31 11:34:00 772
转载 python对json的相关操作
什么是json:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家
2013-12-31 10:44:40 831
原创 tornado中使用motor异步操作mongodb
http://motor.readthedocs.org/en/stable/motor是一个建立在tornado和mongodb上的异步操作库,能够实现所有的mongodb操作。一:导入moduleimport motor二:连接mongodb[python] view plaincopy
2013-12-31 00:11:07 6351 3
原创 解决安装pymongo报错 ImportError: cannot import name MongoClient
>>> import pymongo>>> from pymongo import MongoClientTraceback (most recent call last): File "", line 1, in module>ImportError: cannot import name MongoClient>>> 但是安装了pymongo还是会报错。可以如下去更新p
2013-12-29 00:15:52 13567 1
转载 Celery 分发任务
一、简介Celery是基于分布式消息传递的开源异步任务队列。它侧重实时操作,也可用于计划任务。它的执行组件叫tasks,可在一个或多个worker节点上进行并行运算,支持的方式有multiprocessing,eventlet以及gevent。tasks可异步运行也可通过wait(),ready()同步运行。消息broker推荐RabbitMQ,也可以是Redis,Beanstalk,
2013-12-28 23:44:03 8633
转载 Celery+RabbitMQ快速入门
Celery官方帮助 http://docs.celeryproject.org/en/latest/index.html本文主要介绍Celery+RabbitMQ的入门知识Celery 是一个异步任务队列/基于分布式消息传递作业队列,它侧重于实时操作,同样也支持调度RabbitMQ为应用程序提供了强大的消息服务。它很容易使用,适合在云规模应用,并支持所有主流的操作系统和
2013-12-28 23:20:57 1401
转载 使用celery之怎么让celery跑起来
前言自从发了上次的文章使用celery之深入celery配置, 有一些网友再问我怎么让celery跑起来. 其实说来也是,celery在新手眼里真的是比较重量级,不好懂,今天先让他跑起来吧 本文大部分代码和使用方法都可以在celery官网看到我想要的效果我想实现一个定时任务, 每3个小时的12分启动,假如是定时任务大概是这样的:12 */3 * * * python
2013-12-28 18:56:47 1820
转载 celery配合rabbitmq任务队列实现任务的异步调度执行
前言:这东西在任务调度方面,很有一套的,学习他有段时间了,自己也试图在项目中用,但苦于没有这个机会。这两天要给部门写个rest的短信接口,但是总感觉那东西时不时的会堵塞,致使其他的逻辑跑不通,所以把要发信息的这个任务放到后台异步的执行,等我想起来,再看看结果。对于上面的场景,我曾经用tornado和gevent的方案解决,但是在我的理解范围下,感觉还是不算成熟。 tor
2013-12-28 02:15:30 6580
转载 python使用rabbitmq实例七,相互关联编号correlation id(7)
上一遍演示了远程结果返回的示例,但是有一个没有提到,就是correlation id,这个是个什么东东呢?假设有多个计算节点,控制中心开启多个线程,往这些计算节点发送数字,要求计算结果并返回,但是控制中心只开启了一个队列,所有线程都是从这个队列里获取消息,每个线程如何确定收到的消息就是该线程对应的呢?这个就是correlation id的用处了。correlation翻译成中文就是相互关联
2013-12-28 01:07:01 1271
转载 python使用rabbitmq实例六,远程结果返回(6)
前面的例子都有个共同点,就是发送端发送消息出去后没有结果返回。如果只是单纯发送消息,当然没有问题了,但是在实际中,常常会需要接收端将收到的消息进行处理之后,返回给发送端。处理方法描述:发送端在发送信息前,产生一个接收消息的临时队列,该队列用来接收返回的结果。其实在这里接收端、发送端的概念已经比较模糊了,因为发送端也同样要接收消息,接收端同样也要发送消息,所以这里笔者使用另外的示例来演示这一
2013-12-28 01:03:12 1127
转载 python使用rabbitmq实例五,路由键模糊匹配(5)
上一篇说了路由键的功能,通过设置路由键,可以将消息发送到相应的队列,这里的路由键是要完全匹配,比如info消息的只能发到路由键为info的消息队列。路由键模糊匹配,就是可以使用正则表达式,和常用的正则表示式不同,这里的话“#”表示所有、全部的意思;“*”只匹配到一个词。看完示例就能明白了。这边继上一篇,还是用send.py和receive.py来实现路由键模糊匹配的功能。send.
2013-12-28 01:02:12 884
转载 python使用rabbitmq实例四,路由键(4)
第三篇说明了关于交换机的使用,已经能实现给所有接收端发送消息,但是如果需要自由定制,有的消息发给其中一些接收端,有些消息发送给另外一些接收端,要怎么办呢?这种情况下就要用到路由键了。路由键的工作原理:每个接收端的消息队列在绑定交换机的时候,可以设定相应的路由键。发送端通过交换机发送信息时,可以指明路由键 ,交换机会根据路由键把消息发送到相应的消息队列,这样接收端就能接收到消息了。
2013-12-28 00:43:01 907
转载 python使用rabbitmq实例三,交换机(3)
上面一篇是说到了工作队列,每次消息都只会发送给其中一个接收端,如果需要将消息广播出去,让每个接收端都能收到,那么就要使用交换机。交换机的工作原理:消息发送端先将消息发送给交换机,交换机再将消息发送到绑定的消息队列,而后每个接收端都能从各自的消息队列里接收到信息。rabbitmq交换机工作原理下面用send.py和receive.py来模拟实现交换机的功能。sen
2013-12-28 00:37:52 1034
转载 python使用rabbitmq实例二,工作队列 (2)
上一篇介绍了rabbitmq的安装和经典的hello world!实例。这里将对工作队列(Work Queues)做一个了解。因为是接上一篇说明的,所以如果没看过上一篇,看这篇可能会比较难理解。上一篇的地址是:ubuntu安装rabbitmq和python的使用实现消息也可以理解为任务,消息发送者可以理解为任务分配者,消息接收者可以理解为工作者,当工作者接收到一个任务,还没完成的时候,任务
2013-12-26 23:27:42 1015
转载 ubuntu安装rabbitmq和python的使用实现 (1)
在安装openstack的时候,需要安装rabbitmq,百度了下rabbitmq,发现是用erlang写的,基于对erlang的好感,于是就想了解下rabbitmq。rabbitmq中文翻译的话,主要还是mq字母上:Message Queue,即消息队列的意思。前面还有个rabbit单词,就是兔子的意思,和python语言叫python一样,老外还是蛮幽默的。rabbitmq服务类似于m
2013-12-26 23:22:16 954
转载 消息队列、AMQP和RabbitMQ
一、应用场景及优点在项目设计、开发过程中,当我们遇到以下几种情况都可以使用消息队列:对于一些无需即时返回且耗时的操作;并发要求很高,数据处理很耗时,但是又无需及时返回信息的操作;数据转移类的操作,比如客户端和内网都要进行数据传输和交换, 现有架构中, 客户端不能直接访问内网, 那么客户端只能: 先把数据保存到外网服务器, 然后内网服务器再拉回来处理. 这种方式可以保证数据都能被处理
2013-12-26 20:49:48 1730 1
转载 ubuntu 配置服务service
实例:1.编写自己的可执行文件,比如myservice.sh2.编写控制执行的脚本,如mytest,一定要加上可执行权限,否则会报 unrecognized service,并将mytest放到/etc/init.d中,注意开头的 10行是不能省略的,开机启动主要依靠这些头部信息,详细内容可以查看 LSBInitScripts3.
2013-12-26 17:11:25 4302
原创 linux下杀死进程(kill)的N种方法 包括python--killproc
常规篇: 首先,用ps查看进程,方法如下:$ ps -ef……smx 1822 1 0 11:38 ? 00:00:49 gnome-terminalsmx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helpersmx 1824 1822 0
2013-12-26 16:48:41 8156 1
原创 eclipse安装一个新的Python开发包后,import后不能使用包内的方法
安装一个pip包后需要在Preferences-pyDev-Interpreter里重新配置Python的编译器,因为当前没有包含新加进来的包可以删除掉,重新加上。否则会导致import模块后,模块内的方法仍然不能调用。(ubuntu的默认python地址是/usr/bin/python,只要你不是后来又安装了新的python,直接用这个地址就可以了~)
2013-12-26 13:34:06 4114
原创 linux 定时任务crontab ,python API
DescriptionCrontab module for read and writing crontab files and accessing the system cron automatically and simply using a direct API.Comparing the below chart you will note that W, L, # and ?
2013-12-26 12:55:50 1870
原创 linux定时运行命令脚本 (crontab详解)
1、用root权限登陆2、 crontab -u lsbi -e3、加入要启动的命令,如40 4 18 * * /oracle_backup/bin/scott_select.sh4、重新启动service crond restart5、OK特别注意:1、cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量。2、每个
2013-12-26 10:57:11 1598
转载 tornado使用celery的请求异步非阻塞
前言也许有同学很迷惑:tornado不是标榜异步非阻塞解决10K问题的嘛?但是我却发现不是torando不好,而是你用错了.比如最近发现一个事情:某网站打开页面很慢,服务器cpu/内存都正常.网络状态也良好. 后来发现,打开页面会有很多请求后端数据库的访问,有一个mongodb的数据库业务api的rest服务.但是它的tornado却用错了,一步步的来研究问题:说明以下的例子都有2
2013-12-25 22:41:34 2584
原创 tornado的asynchronous / coroutine进行异步编程
在tornado3发布之后,强化了coroutine的概念,在异步编程中,替代了原来的gen.engine, 变成现在的gen.coroutine。这个装饰器本来就是为了简化在tornado中的异步编程。避免写回调函数, 使得开发起来更加符合正常逻辑思维。一个简单的例子如下:class MaindHandler(web.RequestHandler): @asynchronous
2013-12-25 22:40:09 4197
转载 Tornado http服务器篇
一. Tornado是什么?Facebook发布了开源网络服务器框架Tornado,该平台基于Facebook刚刚收购的社交聚合网站FriendFeed的实时信息服务开发而来.Tornado由Python编写,是一款轻量级的Web服务器,同时又是一个开发框架。采用非阻塞I/O模型(epoll),主要是为了应对高并发 访问量而被开发出来,尤其适用于comet应用。
2013-12-25 21:14:32 1304
转载 python 装饰器 面向切面
1. 装饰器入门1.1. 需求是怎么来的?装饰器的定义很是抽象,我们来看一个小例子。1def foo():2 print 'in foo()'3 4foo()
2013-12-25 21:12:55 579
转载 Python yield 与生成器
yield 是 Python 中的一个关键字, 这个关键字比较特殊, 用于在任何表达式前, 但它不仅会对其后的表达式有影响, 对整个函数上下文都有影响. 实际上, 凡是在函数体中出现了 yield 关键字, Python 都会对此函数特殊处理, 调用这个函数不再返回值, 而是一个生成器对象. 比如def f(): yield 1g = f()pr
2013-12-25 20:38:32 585
转载 Ubuntu环境下的“批处理”
Ubuntu环境下的“批处理”长时间生活在CLI中,“批处理”绝对能简化不少工作。在Windows环境中,建立一个后缀名为.bat的文件,输入需要的指令,保存之后执行即可,十分方便。其实在Ubuntu中也有类似的功能,而且更加简单。第一步建立一个文件,Ubuntu系统对后缀名没有特殊要求,即使不加也可以。这里我们建立一个名为“startmya
2013-12-24 16:42:50 2164
转载 知乎的整个网站架构
知乎的整个网站架构图如下:知乎是国内很少的使用Python开发的一个网站,也很多值得我们学习的地方,从知乎让我们也可以了解到一些新的WEB技术。一、Python框架知乎目前使用的是Tornado 框架。Tornado 全称Tornado Web Server,是一个用Python 语言写成的Web 服务器兼Web 应用框架,由 FriendFeed 公司在自己的网站
2013-12-24 16:17:20 5909
原创 DataTables ajax 动态更新数据
taTableExt.oApi.fnReloadAjax = function(oSettings, sNewSource, fnCallback, bStandingRedraw) { if (sNewSource !== undefined && sNewSource !== null) { oSettings.sAjaxSource =
2013-12-23 16:07:13 4466
转载 windows下配置nginx+php环境
刚看到nginx这个词,我很好奇它的读法(engine x),我的直译是“引擎x”,一般引“擎代”表了性能,而“x”大多出现是表示“xtras(额外的效果)”,那么整个词的意思就是类似“极致效果”,“额外性能”。当然这里不是要来唠嗑,以上是题外话。 nginx相较于我们熟悉的apache、IIS的优势,就我浅入浅出的了解,在于“反向代理”和“负载均衡”。因此考虑到能够为Web服务器节省资
2013-12-23 12:53:38 619
转载 如何正确配置Nginx+PHP
对很多人而言,配置Nginx+PHP无外乎就是搜索一篇教程,然后拷贝粘贴。听上去似乎也没什么问题,可惜实际上网络上很多资料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷贝粘贴,早晚有一天会为此付出代价。 假设我们用PHP实现了一个前端控制器,或者直白点说就是统一入口:把PHP请求都发送到同一个文件上,然后在此文件里通过解析「REQUEST_URI」实现路由。此时很多教程
2013-12-23 11:54:44 716
转载 nginx Location
Location语法语法:location [=|~|~*|^~] /uri/ { … }location = / {# 只匹配 / 查询。[ configuration A ]}location / {# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。[ configuration B ]}locati
2013-12-23 11:06:00 1901
转载 异步,同步,阻塞与非阻塞
如果你想吃一份宫保鸡丁盖饭:同步阻塞:你到饭馆点餐,然后在那等着,还要一边喊:好了没啊!同步非阻塞:在饭馆点完餐,就去遛狗了。不过溜一会儿,就回饭馆喊一声:好了没啊!异步阻塞:遛狗的时候,接到饭馆电话,说饭做好了,让您亲自去拿。异步非阻塞:饭馆打电话说,我们知道您的位置,一会给你送过来,安心遛狗就可以了。上面的比喻给出一个形象的感觉,这里有一段关
2013-12-23 11:02:55 563
原创 Jquery DataTables 之完全总结
了解DataTables官方网站:http://www.datatables.net/简介:DataTables是一个jQuery的表格插件。这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格。主要特点:自动分页处理即时表格数据过滤数据排序以及数据类型自动检测自动处理列宽度可通过C
2013-12-22 23:07:47 2257
转载 RDF N-元组
N-TriplesA line-based syntax for an RDF graphW3C Last Call Working Draft 05 September 2013This version:http://www.w3.org/TR/2013/WD-n-triples-20130905/Latest published version:http://www.w3.
2013-12-22 12:41:54 1461
转载 SPARQL和大数据(以及NoSQL)
如何达到一个双方的共识基础?很显然SPARQL和其他RDF相关的技术在重叠的大数据和NoSQL的世界中会大有用武之地,但是对专注于该领域的人来说这好像还不够明显,例如本周的Strata会议基本上对RDF或SPARQL无所顾及。我看的越深入,我就觉得这个灵活的、标准化的数据模型和查询语言已经可以在上述人群努力去处理的各类问题中已经表现得相当不错。我们语义网人士不能批评人家。如果你
2013-12-22 12:31:27 1529
转载 三元组存储会取代关系型数据库吗?
三元组存储会取代关系型数据库吗?Dr. Jans Aasman, CEO of Franz Inc., the leading supplier of Graph Database technology for the Semantic Web.人们总是在问我:"在未来的三五年内三元组的存储会取代关系型数据库吗?" 通常我会给予2个答复:答复1:是的,因
2013-12-22 12:27:07 2650
转载 非阻塞服务器需要注意的主要问题(tornado)
非阻塞服务器有一个严重的问题,一些人甚至在没解决这个问题的背景下就开发自己的应用框架(比如Python的Tornado)当你使用非阻塞服务器的时候,你会获得出色的性能并且不需要担心可扩展性,然而同时你需要意识到一个问题:你的IO调用、网络系统调用也都是非阻塞的吗?很多人忽略了,他们使用的非阻塞服务器,其实是构建在阻塞库之上的。在这篇文章里,我将深入对比多线程的服务器与非阻塞的服务器
2013-12-20 15:34:14 1268
ssd3 practical quiz 10
2011-05-07
ssd3 practical quiz 8
2011-05-07
ssd3 practical quiz 7
2011-05-07
ssd3 practical quiz 6
2011-05-07
ssd3 practical quiz 5
2011-05-07
ssd3 practical quiz 3
2011-05-07
ssd3 practical quiz 2
2011-05-07
ssd3 practical quiz 1
2011-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人