twisted学习笔记4 部署Twisted 应用程序
原创博文,转载请注明出处。
Twisted是一个可扩展,跨平台的网络服务器和客户端引擎。
Twisted Application 框架有五个主要基础部分组成:服务,应用程序,TAC文件插件和twisted命令行组件(原文:services, applications, TAC file,plugins, and the twistd command-line utility)。
官方文档: 点击进入
网上有一篇国人翻译的,版本是11年的了,而且我感觉翻译的总体效果一般,建议大家直接直接入手英文文档,因为毕竟英文有些东西是翻译所无法精确表达的。
我是结合Twisted Network Programming Essentials, Second Edition 和官方文档一起学习的,由于这方面的中文资料比较少(应该说是相当少),学习起来还是挺困难的。
首先在我看来Twisted Application 更像是把twisted程序模块化,有点类似面向对象的感觉。这样带来的好处就是免去了编写重复的样本代码,可复用性提高。
有两种方式来部署twisted Application : TAC files 和 Plugins。
TAC files 更简单,扩展性相对而言差,对于构建简单的服务器可以利用Twisted 内嵌的部署特性,如 记录和守护进程。
Plugins 需要更高的初试开发成本但是可以提供一个清晰的API来扩展你的应用程序。Plugins对于那些需要稳定的接口作为第三方开发者的application是理想的。
你可以通过 twisted --help 来获取所有的命令。
twisted.python.usage 是一个用来解析和处理命令行的模块,
from twisted.python import usage class Options(usage.Options):
optFlags = [["fast", "f", "Act quickly"], ["safe", "s", "Act safely"]]
optFlags
and optParameters
are lists of available parameters which your program can handle. The difference between the two is the 'flags' have an on(1) or off(0) state (off by default) whereas 'parameters' have an assigned value, with an optional default. (Compare '--verbose' and '--verbosity=2')
optFlags is assigned a list of lists. Each list represents a flag parameter,如上面例程所示,optFlags中第一个元素是长名字,在命令行中 以 “ --fast ”形式使用,第二个元素是短名字,以 “ -f ” 的形式使用,第三个元素是该标记的描述并用来生成usage信息文本。长名字决定了在Options实例中设置的密钥名称。
Its value will be 1 if the option was seen, 0 otherwise.
未完待续
twisted学习笔记4 部署Twisted 应用程序的更多相关文章
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...
- C#.NET学习笔记2---C#.第一个C#程序
C#.NET学习笔记2---C#.第一个C#程序 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com 6.第一个C#程序: ...
- 20180821 Python学习笔记:如何获取当前程序路径
20180821 Python学习笔记:如何获取当前程序路径 启动的脚本的路径为:D:\WORK\gitbase\ShenzhenHouseInfoCrawler\main.py 当前脚本的路径为:D ...
- Spring实战第五章学习笔记————构建Spring Web应用程序
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那 ...
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
- twisted学习笔记No.3 Web Clients
原创博文,转载请注明出处. 这一章我们学习利用twisted建立web 客户端. twisted.web.client.getPage用来异步下载一个页面,并且返回一个deferred from tw ...
- twisted学习笔记 No.1
原创博文,转载请注明出处 . 1.安装twisted ,然后安装PyOpenSSL(一个Python开源OpenSSL库),这个软件包用于给Twisted提供加密传输支持(SSL).最后,安装PyCr ...
- twisted学习笔记 No.2 WebServer
原创博文,转载请注明出处. 当服务器接收到一个客户端请求后,会创建一个请求对象并传递到资源系统,资源系统会根据请求路径分发到相应的资源对象,资源被要求渲染自身并返回结果到客户端. 解析HTTP Req ...
- Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(一)
上一节演示如何安装Docker,链接:Docker学习笔记之-在CentOS中安装Docker 本节演示 将.net core 3.1 部署到docker容器当中,并使用 Nginx反向代理,部署平台 ...
随机推荐
- 【智能家居篇】wifi网络访问原理(下一个)——联想Association
转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 认证完毕后,下一步就是关联(Association). 工作站与基站进行关联.以便获得网络的全然訪问权. 关联属于一 ...
- FPGA 设计流程,延迟,时间
FPGA 设计流程,延迟,时间 流程:每个时钟周期可以传输的数据比特. 延迟:从输入到时钟周期的输出数据需要经验. 时间:两个元件之间的最大延迟,最高时钟速度. 1 採用流水线能够提高 流量: 比如计 ...
- php实现和c#一致的DES加密解密
原文:php实现和c#一致的DES加密解密 php实现和c#一致的DES加密解密,可以从网上搜到一大堆,但是测试后发现都没法用.以下正确代码是我经过苦苦才找到的.希望大家在系统整合时能用的上. 注意: ...
- android在单身的对象和一些数据的问题被释放
正式接触android我们一直在开发了一段时间,该项目的第一个版本最终会很快结束. 当有它自己的测试.拥有android后台.同一时候打开了几个应用之后又一次切回到自己的app.发现报错了.经过排查, ...
- OCP-1Z0-051-标题决心-文章5称号
5. Which SQL statements would display the value 1890.55 as $1,890.55? (Choose three .) A. SELECT TO_ ...
- java_JFrame_demo
不要见笑,cs基本入行很少做 留个demo备忘 /* * Copyright (c) 2014-2024 . All Rights Reserved. * * This software is the ...
- P31RestKit.dll 2.0 Unity3d json
using System.Collections.Generic; using UnityEngine; using System.Collections; using Prime31; public ...
- IIS7伪静态化URL Rewrite模块
原文 IIS7伪静态化URL Rewrite模块 在Win7安装了IIS7.5之后,搭建一些网站或者博客,但是IIS7.5本身没有URL Rewrite功能,也就是无法实现网址的伪静态化. 从网上找了 ...
- AngularJs + ASP.NET MVC
[AngularJs + ASP.NET MVC]使用AntularJs快速建立ASP.NET MVC SPA網站 這幾天接觸到了AngularJs的美麗,讓饅頭有點躍躍欲試使用AngularJs來做 ...
- SVN:One or more files are in a conflicted state
解决代码冲突 如果commit时出现"You have to update your work copy first."红色警告,说明版本库中的此文件已经被其他人修改了. 请先点& ...