python
文章平均质量分 79
guxch
愿意与大家讨论编程那点事。邮箱:guxch@sohu.com
展开
-
Python学习(一)
前段时间化了一周时间,将python学习了一下,以前也看过一段时间python,这次也算是温故而知新了。 这次学习的python是最新的3.2版,据介绍它与2.X版有些不同,由于作者并非python老手,所以本文只介绍3.2版,参考的书籍是python学习的经典《深入python3》。 本系列文章是作者学习python的一些心得体会,不定期更新。随着学习的深入,对pyt原创 2011-06-07 12:53:00 · 1184 阅读 · 0 评论 -
Tornado开发(五)— 扩展
4. 协程异步/多线程处理以协程方式(Coroutine)进行异步处理,是Tornado推荐的方式。Coroutine不采用回调函数方式,而用yield来挂起和恢复运行(现在又有新关键字了,说明python的Coroutine还没有稳定下来),协程编程风格看起来像同步,但又没有线程的切换,因此效率要高一些。在Tornado中,现在有两种方式实现协程:一是函数前加@tornado.gen.corou...原创 2018-07-02 09:22:59 · 1204 阅读 · 1 评论 -
Tornado开发(四)— 扩展
2. 页面的Session检查Web应用中,各页面实际上是没有关系的,但为了给用户“完整”的感觉,需要用一个Session对象将用户访问的各页面“串”起来,同时,某些信息比较敏感,不希望被“窃听”或“修改”,因此,在每一页被访问时,通常的的做法是首先检查Session对象,以确定访问者的身份。有许多种方法可以实现上面的逻辑,例如,数据可缓存在浏览器或服务器中,对敏感数据采用特别的加密解密方式等。...原创 2018-06-26 10:41:29 · 798 阅读 · 0 评论 -
Tornado开发(三)— 网页模板 及扩展
6. 多语言支持(Internationalization)作为一款web开发框架,国际化是必不可少的,虽然只做国内网站时没啥用。如果需要做一个多语言支持的网页,首先要准备多语言翻译文件,tornado支持两种格式的翻译文件:po/csv,csv更简洁些,下面以此为例来说明。csv文件的格式为(三列):字符串,翻译,”plural”/“singular”,最后一列表明此翻译为单数时用还是复数时用,...原创 2018-06-26 10:35:28 · 1135 阅读 · 0 评论 -
Tornado开发(二)— 网页模板
四. 网页模板最终呈现给用户的html页面,一般是由静态信息与动态信息合成的,静态信息与用户等应用环境无关,动态信息则与用户、场景相关,多是从数据库中取得数据后加工得到的。在tornado中,保存在服务器端的包含动态信息的文件叫模板(template),模板文件被request handler载入并处理,即替换其中的动态信息,变成符合要求的html文档发给客户。Tornado 会把模板文件编译成原...原创 2018-06-26 10:10:41 · 2556 阅读 · 0 评论 -
Tornado开发(一)—— 概述及构成
一.概述Tornado是用python写的异步web架构库,几行代码就可以写出httpsever和WebSocket server,它是采用python构建 web服务的几种流行的架构之一。关于Tornado与Django的区别,网文很多,不再描述,笔者选择Tornado而不是Django的主要原因同样是Django包揽太多,灵活度小,而Tornado比较适合中小性网站(不是从性能上讲),这是笔者...原创 2018-06-13 16:48:31 · 2860 阅读 · 0 评论 -
python与C C++的交互(三)
六.在C/C++环境中调用python代码在这种情况下,C/C++代码是主程序,按复杂度,分几个例子说明。1.最简单情况,无参数传递int run_simple_py(){ char const *script="def hello():\n\tprint(\"hello world!\")\nhello()"; int res; Py_Initialize(); res=PyR...原创 2018-05-16 10:21:23 · 2316 阅读 · 0 评论 -
python与C C++的交互(二)
五.在python环境中调用C/C++代码前面是两点基础,这节说明在python环境中调用C/C++代码。大致有两种方式:1. 将c/c++代码编译成(操作系统)标准的动态库,在python中“引用”后调用2. 将c/c++代码写成python扩展库,就如同python的内置的标准库一样,正常引用后调用第一种方式比较简单,下面是一个简单示例。C/C++代码(文件名为mm.c...原创 2018-05-16 10:13:45 · 3004 阅读 · 0 评论 -
python与C C++的交互(一)
一.概述Python是目前“大火“的编程语言,一种作为“胶水”的脚本语言,能得到如此的应用,确实有它独到之处。C/C++是一种“性能”编程语言,较为古老且经典,因与unix,linux,windows这些底层操作系统相关,而得到广泛应用。Python从一开始就支持C语言的“嵌入”,这是python为弥补性能不足的一种措施,其实python的库就是用C编写的。两种不同编程语言的应用之间的数据传递,可...原创 2018-05-16 10:05:35 · 7242 阅读 · 0 评论 -
在C#环境中动态调用IronPython脚本(一)
本文讲述用C#调用Ironpython运行环境,解析并运行动态pyhton脚本。这种情况应用在那些需要滞后规定行为的场合,例如,动态计算项(计算引擎),用户可以自定义计算内容、计算公式等。 本文的代码适用于IronPython 2.7(需要下载及安装)及C#4.原创 2011-08-11 21:03:17 · 16583 阅读 · 3 评论 -
在C#环境中动态调用IronPython脚本(二)
一、Python数据类型与C#数据类型的对应 Python中数据类型中的简单类型,例如int,float,string可以对应到C#环境中的int32,double,string,这些对应比较直观,Python中的复杂数据类型,例如List,Set等是C#环境中没有原创 2011-09-01 16:35:40 · 5788 阅读 · 0 评论 -
Tornado开发(六)— 扩展
5. 多进程部署多进程部署也有两种方式:一是利用tornado自带的启动多个进程的方式,二是利用Nignx在前面做负载均衡的方式。tornado自带方式测试代码如下:class LongHandler(tornado.web.RequestHandler): def get(self): stime=time.strftime('%Y-%m-%d %H:%M:%S',time.localti...原创 2018-07-03 09:15:10 · 827 阅读 · 0 评论