Python开发工具Transcrypt、pyJasper、Tablib、Pulsar-Python介绍

以下为你介绍的Python开发工具都可用在Linux系统上:Transcrypt(Python转JavaScript工具)、pyJasper(Python 工具)、Tablib(与表格格式数据有关的 Python 库)、Pulsar-Python(Python 并发框架)。

1、Transcrypt(Python转JavaScript工具)

Python开发工具Transcrypt、pyJasper、Tablib、Pulsar-Python介绍

注:以上是转换效果。

Transcrypt 是一个用来将 Python 脚本转成 JavaScript 脚本的工具。

下载地址:https://github.com/JdeH/Transcrypt

2、pyJasper(Python 工具)

pyJasper是 JasperReports 网络服务器的 Python 客户端。

pyJasper 是一组 Python 基础工具,可以用来处理 JasperReports 报表 。因为 JasperReports 是一个 Java 应用程序,所以你需要安装 Java。

Jython (绑定 pyJasper)可通过 HTTP 来访问 JasperReports 库。Python 客户端可透明地生成 JasperReport 文档。

用法示例,Servlet接口:

Servlet完全不保留任何状态,您必须为其提供XML数据源,该数据源的XPath表达式和JRXML报表设计,您取回生成的PDF或纯文本错误消息,相应的数据必须通过形式变量“xpath”,“design”和“xmldata”提交。

要尝试,您可以使用curl,例如执行pyjasper/backend并启动码头servlet容器(sh pyJasper-httpd.sh),然后在另一个窗口中使用curl来请求呈现PDF:

curl -X POST --form xpath=//lieferscheine/lieferschein 

 --form design=@reports/Lieferschein.jrxml 

 --form xmldata=@sample-xml/Lieferschein.xml 

 --form sign_keyname={{ alias of the certificate in the KeyStore }} #optional

 --form sign_reason={{ reason to be send w/ certificate }} #optional

 --form callback={{ callback_URL }} #optional

 http://localhost:8080/pyJasper/jasper.py > test.pdf

test.pdf现在应该包含一个渲染的PDF文档,如果您提供了sign_keyname和sign_reason并且后端安装知道此密钥名,那么您将获得一个签名的pdf。

使用参数回调,您可以告诉服务器生成pdf并将其发送到给定的URL,而不是立即返回。

用法示例,Python interface:

您应该继承pyjasper.JasperGenerator的子类,并调用它的generate_pdf()函数。通常,您只需要覆盖__init __()和generate_xml(self, ...)函数,并使用Python ElementTree API生成xml树,例如:

class MyPDFGenerator(JasperGenerator):

"""Jasper-Generator for Greetingcards"""

def __init__(self):

super(MovementGenerator, self).__init__()

self.reportname = 'reports/Greeting.jrxml'

self.xpath = '/greetings/greeting'

self.root = ET.Element('gretings') 

def generate_xml(self, tobegreeted):

"""Generates the XML File used by Jasperreports"""

ET.SubElement(self.root, 'generator').text = __revision__

for name in tobegreeted:

xml_greeting  =  ET.SubElement(self.root, 'greeting')

ET.SubElement(xml_greeting, "greeting_to").text = unicode(name)

ET.SubElement(xml_greeting, "greeting_from").text = u"Max"

return xmlroot

现在,您可以像这样使用MyPDFGenerator:

generator = MyPDFGenerator()

pdf = generator.generate(['nik', 'tobias', 'chris', 'daniel'])

open('/tmp/greetingcard.pdf', 'w').write(pdf)

Python客户端通过检查@PYJASPER_SERVLET_URL@环境变量来找到Jasper Servlet的URL,如果未设置此变量,则使用默认值http://localhost:8080/pyJasper/jasper.py。

下载地址:https://github.com/hudora/pyJasper

3、Tablib(与表格格式数据有关的 Python 库)

Tablib 是一个与表格格式数据有关的 Python 库,允许导入、导出、管理表格格式数据。

特性:

1]、导出/导入格式

Excel (Sets + Books)、JSON (Sets + Books)、YAML (Sets + Books)、HTML (Sets)、TSV (Sets)、CSV (Sets)。

2]、数据操作

切片、定义动态列、过滤、格式化。

示例:

准备数据:

headers = ('first_name', 'last_name')

data = [

('John', 'Adams'),

('George', 'Washington')

]

data = tablib.Dataset(*data, headers=headers)

添加新行:

data.append(('Henry', 'Ford'))

添加新的一列:

data.append_col((90, 67, 83), header='age')

导出json:

>>> print data.json

[

{

"last_name": "Adams",

"age": 90,

"first_name": "John"

},

{

"last_name": "Ford",

"age": 83,

"first_name": "Henry"

}

]

导出xls文件:

with open('grades.xls', 'wb') as f:

f.write(tests.xls)

下载地址:https://github.com/jazzband/tablib

4、Pulsar-Python(Python 并发框架)

Python开发工具Transcrypt、pyJasper、Tablib、Pulsar-Python介绍

Pulsar-Python 是 Python 的并发框架,它可以在不同的线程或者进程中通过执行一个或者多个活动来写异步服务器。Pulsar-Python 的目标是提供一个构建可扩展网络程序的简单方法。

安装命令:

pip install pulsar

示例代码:

def hello(environ, start_response):

data = b'Hello World!\n'

response_headers = [

('Content-type','text/plain'),

('Content-Length', str(len(data)))

]

start_response('200 OK', response_headers)

return [data]

if __name__ == '__main__':

wsgi.WSGIServer(callable=hello).start()

下载地址:https://github.com/quantmind/pulsar

注明

以上就是Python开发工具Transcrypt、pyJasper、Tablib、Pulsar-Python的介绍内容,这些Python开发工具都能使用在Linux操作系统中。

栏目相关文章