像web一样使用python

使用传统的web开发技术,也就是html+js,然后搭配一个后端语言,已经成为当今web开发的固定模式了,为此也形成了众多的toolkit,譬如ror,django,各种js图形库更是玲琅满目,从很大程度上也加速了开发过程.但传统web应用也很自然地有一些诟病,有些特殊效果,c端可以轻而易举地完成,但b端就会很纠结了,从根本上讲,这是因为html这种语言是内容驱动行为的服务模式,导致js没有状态保留的功能,这在我和我的同事使用webkit结合html+js来搭建一个hybrid应用的时候让我深有体会.后来在进行一些类似tableview的内容展示的时候,已经完全hold不住了,在c端里面最普通的mvc模式就可以解决的问题,在b端里面得用js来做异步数据分段请求,还有很多坑爹的东西已经不记得了,后来经过几天的评估,还是决定推倒重来,我们之所以要用web来做ui,或者说一些简单的逻辑,主要是我们既需要高的实时内容分发也需要高的开发效率,毕竟这些都是一个走流程的东西,用c/c++来做太大材小用了.我们团队一直是用的python来做这些以上的工作,但这次没有用,因为我们不想开放原始码(别提pyc什么的,跟原始码有多大区别?),二个内容的实时分发能力跟不上,就好比我们需要给用户展示一个类似网站一样的应用,我们希望用户可以实时的得到我们最新的软体功能的推送.想了很久,最终得出一个结论:我们需要像html+js一样使用python,那就一切问题都迎刃而解了.

故事从python的import机制说开去,阅读了(python import system)https://docs.python.org/3.5/reference/import.html和相关的pep之后,觉得这个做法可行,然后就实现了一个可以导入网络包的机制,比如有一个py放在我们website的rs.sysfix.cn/demo/pong.py,那如下导入即可:import
rs.sysfix.cn.demo.pong as pong,之后的使用就和普通的py一模一样了,当然,这样还不够,如果别人直接访问这个url,就可以得到原始码了,再加一点东西,我们用aes把代码给跑一遍之后再放到服务器上,然后本地的import机制中解密之后再执行,当然,实际上我们还压缩了,毕竟网络io比cpu资源更宝贵.这个import的机制使用一个py实现的,他必须是在应用软件本地可接触到的,意思就是如果用户刻意去留意这个脚本,然后顺藤摸瓜,那我们的工作还是白做了,好,让我们再疯狂一点,用c来实现这个import的机制,这样本地只需要载入这个c的dll或者其他你喜欢的方式,就可以拥有一个可以载入自己服务器上压缩加密的py包的执.行环境了.到了c的世界,那保护起来就有无穷无尽的想象了,加壳,花指令......

可能咱们说得不是太清楚,有同学不太明白这样做的意义,这个web的方式和传统的web2py等是不同的,这些py代码是在客户端执行的,服务器只是提供一个脚本的地方,就像js一样,但他跟js又不一样,他是一个纯粹的python环境,你可以通过ctype调用dll和系统api,通过urllib发起http连接,使用pyqt搭建native ui,使用numpy做数值计算,用pygame编写游戏.

我们下一步的计划是开发一个拥有这种机制的浏览器,它不仅可以访问传统的html网站,使用这种机制搭建的py网站也可以访问,应该是很有趣的,到时候项目会发起在github,敬请关注.

因为最近项目繁忙,代码等有空整理出来开放以飨读者.以上机制可以参考我们团队的这个产品看到这个技术的成果:http://www.sysfix.cn/windowschanpin/shujuhuifu/gaoqingshipinleihuifu/2014/0106/567.html

像web一样使用python,布布扣,bubuko.com

时间: 2024-08-25 16:24:22

像web一样使用python的相关文章

《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)

目录 前言 第8章 用户认证 第9章 用户角色 第10章 用户资料 第11章 博客文章 第12章 关注者 第13章 用户评论 第14章 应用编程接口   前言 第1章-第7章学习实践记录请参见:<Flask Web开发——基于Python的Web应用开发实践>一字一句上机实践(上) 本文记录自己学习<Flask Web开发——基于Python的Web应用开发实践>的第8章-第14章内容.相比于刚开始学习第1-7章内容来说,本部分内容实战性更强,而且在书本上遇到的问题也相对较少,如果

《Flask Web开发 基于Python的Web应用开发实战》简评

指路牌 <Flask Web开发><Flask Web开发 基于Python的Web应用开发实战><Flask Web开发>是否适合新手入门Python Web开发? 正文 <Flask Web开发 基于Python的Web应用开发实战>,O'Reilly"动物书系列"的"狗书",应该是很多Flask初学者被推荐使用的入门书,但是这本书真的适合初学者吗? Python的Web框架非常多,例如Django.Flask.T

在IIS上部署基于django WEB框架的python网站应用

django是一款基于python语言的WEB开源框架,本文给出了如何将基于django写的python网站部署到window的IIS上. 笔者的运行环境: Window xp sp3 IIS 5.1 Python 2.7.2 (http://www.python.org/) pywin32-217.win32-py2.7   (python的win32扩展) Django-1.3.1  (https://www.djangoproject.com/) isapi_wsgi-0.4.2-py2.

深入浅出web服务器与python应用程序之间的联系

简单来说,Web服务器是在运行在物理服务器上的一个程序,它永久地等待客户端(主要是浏览器,比如Chrome,Firefox等)发送请求.Web 服务器接受 Http Request,返回 Response,很多时候 Response 并不是静态文件,因此需要有一个应用程序根据 Request 生成相应的 Response.这里的应用程序主要用来处理相关业务逻辑,读取或者更新数据库,根据不同 Request 返回相应的 Response.两者之间的桥梁就是WSGI. 一直喜欢研究比较底层的技术,

20 Web 编程 - 《Python 核心编程》

?? 引言 ?? Python 的Web 应用:简单的Web 客户端 ?? urlparse 和 urllib 模块 ?? 高级的 Web 客户端 ?? 网络爬虫/蜘蛛/机器人 ?? CGI:帮助 Web 服务器处理客户端数据 ?? 创建 CGI 应用程序 ?? 在 CGI 中使用Unicode ?? 高级 CGI ?? 创建 Web 服务器 ?? 相关模块 20.1 介绍 Web 应用:客户端/服务器计算 图20-1 因特网上的Web 客户端和Web 服务器.在因特网上客户端向服务器端发送一个

Acunetix Web Vulnerability Scanner Python辅助脚本

WvsScannerQueue.pyVersion: Python 2.7.* Acunetix Web Vulnerability Scanner 辅助Python脚本的第一个版本.功能:扫描URL.TXT文件中所有URL扫描完成一个URL后立即过滤报告,并且提权漏洞标题发送给自己 存在的问题:扫描一些网站很慢毕竟这个就是调用Acunetix Web Vulnerability Scanner 的Console端直接进行扫描的有时候扫描个网站好几天,没有写相应的方法去取消,以后看写不写 有时候

Web Scraping with Python第一章

1. 认识urllib urllib是python的标准库,它提供丰富的函数例如从web服务器请求数据.处理cookie等,在python2中对应urllib2库,不同于urllib2,python3的urllib被分为若干子模块:urllib.request.urllib.parse.urllib.error等,urllib库的使用可以参考https://docs.python.org/3/library/urllib.html from urllib.request import urlop

Web Scraping using Python Scrapy_BS4 - Introduction

What is Web Scraping This is also referred to as web harvesting and web data extraction. This is the process of automatically downloading a web page's data and extracting information from it. Benefits of Web Scraping Component of applications used fo

零基础学习Python web开发、Python爬虫、Python数据分析,从基础到项目实战!

随着大数据和人工智能的发展,目前Python语言的上升趋势比较明显,而且由于Python语言简单易学,所以不少初学者往往也会选择Python作为入门语言. Python语言目前是IT行业内应用最为广泛的编程语言之一,尤其是近几年来随着大数据和人工智能(机器学习.自然语言处理.计算机视觉等)的发展,Python也得到了越来越广泛的应用,另外Python在Web开发.后端开发和嵌入式开发领域也有广泛的应用. 小编推荐一个学Python的学习裙,九三七六六七 五零九,无论你是大牛还是小白,是想转行还是