Python开发WebService系列教程之REST,web.py,eurasia,Django

在Bioinformatics(生物信息学)领域,WebService是很重要的一种数据交换技术,未来必将更加重要。目前EBI所提供的WebService就分别有SOAP和REST两种方式的服务,不管是数据服务还是计算服务(计算任务提交)。

1 Python + SOAP/WSDL/UDDI

最普遍的做法(个人观点)是使用 python ZSI2.0   ,ZSI还依赖于 SOAPpy  和 pyXML  等LIB。

SOAP协议很多人都很熟悉,有很多现有的应用也都使用Java等语言来开发服务端,而客户端除了java,绝大多数的脚本语言也都可以胜任。

关于python ZSI的使用可以参考IBM DW上的这篇文章: 使用 python 开发 Web Service

2 Python + REST

REST一词目前确实很流行;那么使用Python做REST开发,如何做技术选型呢???

其实接触过python web的人应该都知道Django,典型的REST风格的WEB框架 !!!

那么在实际开发中,我们究竟如何选择?

(1 如果你不是架构师,并不过分追求REST的面向资源的理念和体验REST风格架构的具体实践的话,那么,还是根据自己的业务需求和规模等,选择适合的WEB框架或者python web server就好了;比如常见的Django,web.py,cherrypy,Zope,Twisted,Quixote,spyce,webware for python ... 当然国内的框架也不少。

(2 如果你确实想体验下REST风格架构以及面向资源的设计,也许你可以选择使用web.py来达到目的;

这里有一篇关于使用web.py实现RESTfull开发的博客文章: Getting RESTful with web.py   , 相信有很好的参考价值 。

这里还有一篇中文的博文:  用Python实现CRUD功能REST服务

(3 你可以选择eurasia !!!  地址:  http://code.google.com/p/eurasia/

eurasia是一个值得你了解的东西,它是一个server,也包含框架;而且主要特点是:

“ Eurasia is a low-level Python Web framework which follows the Tao

Eurasia3 被设计成用于解决百万级同时在线的长连接用户数量的 HTTP 服务器, 或者每秒种处理上万次 CGI 请求的常规 Web 应用服务器。

Eurasia3 向下兼容 AJAX (难道 AJAX 对服务器有要求吗?), 但是她不推荐您使用落后的 AJAX 模式来摧残用户和程序员, 她正在尝试使用诸如 Pushlet  (Comet 是 Pushlet 的炒作版本) 一类的有趣技术来改变 Web 的开发面貌。

这里的Eurasia3是相对于 Eurasia2说的,两者并不是一会事哦!

这里有它的文档,可以了解和学习下: http://eurasia.googlecode.com/files/Eurasia-3.0.0a6.2-snapshot.tar.bz2

(4 其他方案。

尾声:

在做技术选型时,有两个前提很重要:1 你充分地了解你的项目需求,而且你很清楚自己要把它做成什么样,做到什么规模; 2 你对项目实现相关的技术和理论比较了解,知识面要够广,同时对于主要流派的主要特色要清楚。

之后,你才可能做出不同的方案来比较选择!  对于IT项目开发,技术主要体现在实现阶段,但是它完全其影响到整个项目生命周期! 选择合适的理论和方法来解决问题,才有可能提高解决问题的效率和质量。

(0)

相关推荐

  • Linux系统上Nginx+Python的web.py与Django框架环境

    1.编译nginx 在网上买了一本<实战nginx-取代Apache的高性能服务器>,写的比较浅,主要是些配置方面的东西,不过却正是目前我所需要的.由于需要支持https和rewrite,所以除了nginx的源码之外,又下载了 openssl-0.9.8r.tar.gz 和 pcre-8.12.tar.gz,把他们和nginx-1.0.4.tar.gz放到同一个目录. 为了方便编译,笔者写了一个脚本,代码如下: #!/bin/bash #============================

  • python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)

    测了一下django.flask.bottle.tornado 框架本身最简单的性能.对django的性能完全无语了. django.flask.bottle 均使用gunicorn+gevent启动,单进程,并且关闭DEBUG,请求均只返回一个字符串ok. tornado直接自己启动,其他内容一致. 测试软件为 siege,测试os为cenos6 64位,测试命令为: 复制代码 代码如下: siege -c 100 -r 100 -b http://127.0.0.1:5000/ django

  • 使用Python的web.py框架实现类似Django的ORM查询的教程

    Django中的对象查询 Django框架自带了ORM,实现了一些比较强大而且方便的查询功能,这些功能和表无关.比如下面这个例子: class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') >>> Question.objects.all() >>> Question.ob

  • 全面解读Python Web开发框架Django

    花了两周时间,利用工作间隙时间,开发了一个基于Django的项目任务管理Web应用.项目计划的实时动态,可以方便地被项目成员查看(^_^又重复发明轮子了).从前台到后台,好好折腾了一把,用到:HTML.CSS.JavaScript.Apache.Python.mod_wsgi.Django.好久不用CSS和JavaScript了,感到有点生疏了,查了无数次手册.后台Django开发环境的搭建也花了不少时间和精力.记录下来,免得以后走弯路.同时给大家推荐一下Django框架,如果你想非常快速地编写

  • Python之Web框架Django项目搭建全过程

    Python之Web框架Django项目搭建全过程 IDE说明: Win7系统 Python:3.5 Django:1.10 Pymysql:0.7.10 Mysql:5.5 注:可通过pip freeze查看已安装库版本信息. Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站! Django 特点 强大的数据库功能 用python的类继承,几行代码就可以拥有一个丰富,动态的数据库操作接口(API),如果需要你也能执行SQL语句. 自带的强大的后

  • Python使用django搭建web开发环境

    安装 Python 去 Python 官方网站找到 Python 3 的下载地址,根据你的系统选择 32 位或者 64 位的安装包,下载好后双击安装即可. 检测是否安装完成 C:\WINDOWS\system32>python -V Python 3.5.2 使用虚拟环境 Virtualenv 安装 Virtualenv C:\WINDOWS\system32>pip install virtualenv 安装成功后就可以开始创建虚拟环境,指定一个你喜欢的目录 C:\WINDOWS\syste

  • Python开发WebService系列教程之REST,web.py,eurasia,Django

    在Bioinformatics(生物信息学)领域,WebService是很重要的一种数据交换技术,未来必将更加重要.目前EBI所提供的WebService就分别有SOAP和REST两种方式的服务,不管是数据服务还是计算服务(计算任务提交). 1 Python + SOAP/WSDL/UDDI 最普遍的做法(个人观点)是使用 python ZSI2.0   ,ZSI还依赖于 SOAPpy  和 pyXML  等LIB. SOAP协议很多人都很熟悉,有很多现有的应用也都使用Java等语言来开发服务端

  • SpringBoot系列教程之dubbo和Zookeeper集成方法

    今日学习新的内容:dubbo   dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现. zookeeper   zooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等. SpringBoot整合dubbo和Zookeeper 1.了解Dubbo基本

  • java JDBC系列教程之JDBC类的简析与JDBC的基础操作

    什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使用这套接口,真正执行的是jar驱动包中的实习类 使用一张图让大家更为直观的理解: coder就是写这套接口的程序员 JDBC的使用步骤 1.导入驱动jar包 2.注册驱动 3.获取数据库连接对象 4.定义sql执行语句 5.获取sql语句执行对象 6.执行sql语句返回结果 7.处理结果 8.释放结

  • Python pip超详细教程之pip的安装与使用

    目录 1. pip的安装与卸载 1.1 pip的安装 1.2 pip的卸载 2. pip的使用 2.1 帮助信息 2.2 查看pip版本 2.3 更新pip版本 2.4 安装库 2.5 查看库 2.6 升级库 2.7 卸载库 3. 提高pip下载速度 1. pip的安装与卸载 1.1 pip的安装 python中有许多有用的库,要使用这些第三方库,需要安装pip 打开cmd,输入以下命令安装pip: python -m ensurepip --default-pip 出现如下图所示,代表pip安

  • Spring Boot系列教程之7步集成RabbitMQ的方法

    前言 RabbitMQ是一种我们经常使用的消息中间件,RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.RabbitMQ主要是为了实现系统之间的双向解耦而实现的.当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层.保存这个数据. AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件

  • LNMP系列教程之 SSL安装WordPress博客(程序下载与安装)

    在之前的文章中,老左已经在VPS中添加了站点,然后我们就需要传程序建站.我们可以利用WinSCP工具直接向我们的对应的站点目录中传程序,然后添加数据库安装网站.但是今天我分享的这个方法是比较先进的SSL远程下载程序,这样的好处是万一我们用的CMS程序较大,可以直接下载至VPS中,省的我们再去FTP传.用命令操作一来可以显得牛X,二来可以节省时间. 首先,用Putty登陆我们的VPS,到我们的站点目录下,今天我以安装wordpress建立博客为例: 其次,输入远程下载程序的命令: wget htt

  • Spring温故而知新系列教程之AOP代理

    AOP的概念 AOP:Aspect-Oriented Programming(面向切面编程),维基百科的解释如下:Aspect是一种新的模块化机制,用来描述分散在对象.类或者函数中的横切关注点,从关注点中分离出横切关注点是面向切面的程序设计的核心概念.分离关注点使解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不在含有针对特定领域问题的代码的调用,业务逻辑同特定领域问题的关系通过切面来封装.维护,这样原本分散在整个应用程序中的变动就可以很好地管理起来.从AOP的角度,应用可以分为横切

  • Python连接Mssql基础教程之Python库pymssql

    前言 pymssql模块是用于sql server数据库(一种数据库通用接口标准)的连接.另外pyodbc不仅限于SQL server,还包括Oracle,MySQL,Access,Excel等. 另外除了pymssql,pyodbc还有其他几种连接SQL server的模块,感兴趣的可以在这里找到:https://wiki.python.org/moin/SQL%20Server 本文将详细介绍关于Python连接Mssql之Python库pymssql的相关内容,下面话不多说了,来一起看看详

  • Microsoft .Net Remoting系列教程之二:Marshal、Disconnect与生命周期以及跟踪服务

    一.远程对象的激活 在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成.工作过程事实上是将该远程对象注册到通道中.由于Remoting没有提供与之对应的Unregister方法来注销远程对象,所以如果需要注册/注销指定对象,微软推荐使用Marshal(一般译为编组)和Disconnect配对使用.在<Net Remoting基础篇>中我已经谈到:Marshal()方法是将MarshalByRefObject类对象转化为ObjRef类对象,这个

随机推荐