我们都知道并发(不是并行)编程目前有四种方式,多进程,多线程,异步,和协程。多进程编程在python中有类似C的os.fork,当然还有更高层封装的multiprocessing标准库,在之前写过的python高可用程序设计方法中提供了类似nginx中masterprocess和workerprocess间信号处理的方式,保证了业务进程的退出可以被主进程感知。多线程编程python中有Thread和threading,在linux下所谓的线程,实际上是LW
系统 2019-09-27 17:38:17 1741
JSON编码支持的基本数据类型为None,bool,int,float和str,以及包含这些类型数据的lists,tuples和dictionaries。对于dictionaries,keys需要是字符串类型(字典中任何非字符串类型的key在编码时会先转换为字符串)。为了遵循JSON规范,你应该只编码Python的lists和dictionaries。而且,在web应用程序中,顶层对象被编码为一个字典是一个标准做法。JSON编码的格式对于Python语法而
系统 2019-09-27 17:38:14 1741
我在工作的时候,在测试环境下使用的数据库跟生产环境的数据库不一致,当我们的测试环境下的数据库完成测试准备更新到生产环境上的数据库时候,需要准备更新脚本,真是一不小心没记下来就会忘了改了哪里,哪里添加了什么,这个真是非常让人头疼。因此我就试着用Python来实现自动的生成更新脚本,以免我这烂记性,记不住事。主要操作如下:1.在原先basedao.py中添加如下方法,这样旧能很方便的获取数据库的数据,为测试数据库和生产数据库做对比打下了基础。defselect
系统 2019-09-27 17:38:12 1741
安装Tornado省事点可以直接用grequests库,下面用的是tornado的异步client。异步用到了tornado,根据官方文档的例子修改得到一个简单的异步爬虫类。可以参考下最新的文档学习下。pipinstalltornado异步爬虫#!/usr/bin/envpython#-*-coding:utf-8-*-importtimefromdatetimeimporttimedeltafromtornadoimporthttpclient,gen,
系统 2019-09-27 17:38:10 1741
实际上,Python提供了with语句来管理资源关闭。比如可以把打开的文件放在with语句中,这样with语句就会帮我们自动关闭文件。with语句的语法格式如下:withcontextexpression[astarget(s)]:with代码块在上面的语法格式中,context_expression用于创建可自动关闭的资源。例如,程序使用with语句来读取文件:importcodecs#使用with语句打开文件,该语句会负责关闭文件withcodecs.
系统 2019-09-27 17:38:03 1741
请在开始使用Flask之前阅读本文。也希望本文能够回答关于Flask项目的初衷以及目标,以及flask适用的场景(情境)等问题。什么是“微”?“微”(“Micro”)并不是意味着把整个Web应用放入到一个Python文件,尽管确实可以这么做。当然“微”(“Micro”)也不是意味Flask的功能上是不足的。微框架中的“微”(“Micro”)是指Flask旨在保持代码简洁且易于扩展。Flask不会为你做太多的选择,例如选择什么样的数据库。Flask为你做的是
系统 2019-09-27 17:37:52 1741
Python标准库中有很多实用的工具类,但是在具体使用时,标准库文档上对使用细节描述的并不清楚,比如urllib2这个HTTP客户端库。这里总结了一些urllib2的使用细节。Proxy的设置Timeout设置在HTTPRequest中加入特定的HeaderRedirectCookie使用HTTP的PUT和DELETE方法得到HTTP的返回码DebugLogProxy的设置urllib2默认会使用环境变量http_proxy来设置HTTPProxy。如果想
系统 2019-09-27 17:37:51 1741
使用通用视图的方法是在URLconf文件中创建配置字典,然后把这些字典作为URLconf元组的第三个成员。例如,下面是一个呈现静态“关于”页面的URLconf:fromdjango.conf.urls.defaultsimport*fromdjango.views.generic.simpleimportdirect_to_templateurlpatterns=patterns('',(r'^about/$',direct_to_template,{'t
系统 2019-09-27 17:37:38 1741
昨日等车无聊时,打开手机,玩起了自己做的一款手机游戏。突然想起以前写代码的趣事。记得当时写代码写到天昏地暗,突然遇到瓶径,如何解决闪烁问题。也许是长时间写代码的原因,大脑有点缺氧,百思居然不得其解。于是上网查找,居然无解...仔细一想,网上既然无解。那只有两种可能:要么就是太简单,不是问题;要么就是太复杂无人能解。显然不是后者...悲剧,难道我一向自负的天资出卖了我就在这时。停电了...我恍然大悟,原来我把简单的事情弄复杂了,闪烁其实没有那么复杂。setv
系统 2019-08-29 23:46:45 1741
学了这么多,智商跟我差不多的,概念应该都搞混了学了就要用。练练吧,做个在线列表,这次没有用ShareObject而是把用户名都装到一个application.onlineList数组里通过遍历application.clients来广播给各个client,上线下线就是对onlinelist数组的处理。看看吧[url=http://www.nshen.net/blog/attachments/200603/03_123255_onlinelist.rar]点
系统 2019-08-29 23:35:36 1741