日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Tornado/Python 学习笔记(一)

發布時間:2023/12/1 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tornado/Python 学习笔记(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.源代碼下載及安裝:http://www.tornadoweb.org/en/stable/

2.python中xmlrpc庫官方文檔:https://docs.python.org/3/library/xmlrpc.html?highlight=xmlrpc

3.xml介紹與學習:http://www.w3school.com.cn/xml/xml_intro.asp

  XML 被設計為傳輸和存儲數據,其焦點是數據的內容。

  HTML 被設計用來顯示數據,其焦點是數據的外觀。

  HTML 旨在顯示信息,而 XML 旨在傳輸信息。

?

python類庫xmlrpc的使用

一、簡介

XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a transport. With it, a client can call methods with parameters on a remote server (the server is named by a URI) and get back structured data. This module supports writing XML-RPC client code; it handles all the details of translating between conformable Python objects and XML on the wire.

簡單地,client可以調用server上提供的方法,然后得到執行的結果。類似于webservice。

?

為了解決在系統的80端口提供RPC的服務,而又不影響正在執行的WEB服務,人們想出了用HTTP協議傳輸RPC包的辦法。對于幾乎是專門用于傳輸文本的HTTP協議,要在其上傳輸RPC封包,最方便的方法莫過于把RPC封包編碼成文本形式——例如XML文件。
XML- RPC(http://www.xml-rpc.com)是由美國UserLand公司指定的一個RPC協議。它將RPC信息封包編碼為XML,然后通過 HTTP傳輸封包;
簡單的理解:

將數據定義為xml格式,通過http協議進行遠程傳輸

二、好處

1. 傳輸復雜的數據。

2. 通過程序語言的封裝,實現遠程對象的調用。

三、Python中xmlrpc應用

服務端:

1 import calendar, SimpleXMLRPCServer 2 #The server object 3 class Calendar: 4 def getMonth(self, year, month): 5 return calendar.month(year, month) 6 def getYear(self, year): 7 return calendar.calendar(year) 8 9 calendar_object = Calendar() 10 server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 7788)) 11 server.register_instance(calendar_object) 12 #Go into the main listener loop 13 print "Listening on port 7788" 14 server.serve_forever()

客戶端:

import xmlrpclib server = xmlrpclib.ServerProxy("http://localhost:7788") month = server.getMonth(2002, 8) print month

執行結果:

??? August 2002
Mo Tu We Th Fr Sa Su
????????? 1? 2? 3? 4
?5? 6? 7? 8? 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

PS1:以上代碼的python環境為 python2.6,需要注意端口的使用情況,如果程序中使用的端口已經被占用會報錯。

當運行服務端的程序后,執行命令:netstat -an|grep 7788,顯示以下信息:
127.0.0.1.7788???????????? *.*??????????????? 0????? 0 128000????? 0 LISTEN

PS2:SimpleXMLRPCServer是一個單線程的服務器。這意味著,如果幾個客戶端同時發出多個請求,其它的請求就必須等待第一個請求完成以后才能繼續。

這里有個技巧解決這個問題:

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SocketServer import ThreadingMixIn
class ThreadXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):pass

現在把服務端改一改:

?svr=ThreadXMLRPCServer(("", 8080), allow_none=True)

現在服務器就支持多線程并發了。

來源 -- http://blog.chinaunix.net/uid-20544356-id-132398.html

?

?

服務端:

1 from xmlrpc.server import SimpleXMLRPCServer 2 from xmlrpc.server import SimpleXMLRPCRequestHandler 3 4 def div(x,y): 5 return x - y 6 7 class Math: 8 def _listMethods(self): 9 # this method must be present for system.listMethods 10 # to work 11 return ['add', 'pow'] 12 def _methodHelp(self, method): 13 # this method must be present for system.methodHelp 14 # to work 15 if method == 'add': 16 return "add(2,3) => 5" 17 elif method == 'pow': 18 return "pow(x, y[, z]) => number" 19 else: 20 # By convention, return empty 21 # string if no help is available 22 return "" 23 def _dispatch(self, method, params): 24 if method == 'pow': 25 return pow(*params) 26 elif method == 'add': 27 return params[0] + params[1] 28 else: 29 raise 'bad method' 30 31 server = SimpleXMLRPCServer(("localhost", 8000)) 32 server.register_introspection_functions() 33 server.register_function(div,"div") 34 server.register_function(lambda x,y: x*y, 'multiply') 35 server.register_instance(Math()) 36 server.serve_forever()

客戶端:

1 import xmlrpc.client 2 3 s = xmlrpc.client.ServerProxy('http://localhost:8000') 4 5 print(s.system.listMethods()) 6 7 print(s.pow(2,3)) # Returns 8 8 print(s.add(2,3)) # Returns 5 9 print(s.div(3,2)) # Returns 1 10 print(s.multiply(4,5)) # Returns 20

執行結果:

['add', 'div', 'multiply', 'pow', 'system.listMethods', 'system.methodHelp', 'system.methodSignature']
8
5
1
20

PS1:以上代碼的python環境為 python3.2

轉載于:https://www.cnblogs.com/fendou-999/p/3844827.html

總結

以上是生活随笔為你收集整理的Tornado/Python 学习笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人无码精品久久久久 | 欧美日韩1 | 91精品99| 99在线免费观看视频 | 亚洲乱码在线 | av在线视| 国产欧美精品在线 | 欧美在线中文 | 国产中文字幕亚洲 | 亚洲视频在线观看免费视频 | 五月天国产视频 | 国产欧美精品久久久 | 青青草视频免费播放 | 黄色精品一区 | 999色综合 | 特一级黄色大片 | 公侵犯一区二区三区四区中文字幕 | 黄色香蕉视频 | 琪琪电影午夜理论片八戒八戒 | 91麻豆产精品久久久久久夏晴子 | 日本三级播放 | 特级西西人体444www高清大胆 | 国产精品久久久久久久免费观看 | 亚洲成av人片一区二区梦乃 | 久久99精品国产.久久久久久 | 在线免费观看av网站 | 亚洲日本色图 | 在线观看 中文字幕 | 成人免费入口 | 久久不射网| 性色av一区 | 激情综合网五月激情 | 性欧美巨大 | 国产真实交换夫妇视频 | 国产乱仑视频 | 欧美1区2区 | 黄色片网站国产 | 在线观看免费成人 | 91成人短视频在线观看 | 激情综合五月婷婷 | 成人精品一区二区三区在线 | 九色porny自拍视频 | 激情综| 日韩夫妻性生活 | 97精品自拍| 日本精品视频一区 | 免费网站观看www在线观看 | 亚洲草逼 | 91免费观看视频在线 | 999午夜| 国产视频久久 | 综合在线亚洲 | 精品久久人妻av中文字幕 | aise爱色av| 欧美成人一二三区 | 久久精品人妻一区二区 | 一级激情片 | www.插插插.com | 污污视频在线看 | 99re这里只有精品首页 | 免费久草视频 | 日本大尺度激情做爰hd | 成人精品免费在线观看 | 影音先锋制服 | 欧美射图 | 欧美一区二区视频在线观看 | 欧美午夜精品一区二区 | 日韩资源 | 国产精品96 | 在线看b| 欧美片17c07.com | 亚洲精品国产精 | 黄色污污网站 | 波多野结衣电影在线播放 | 国产美女免费无遮挡 | 国产乱码精品一区二区三区不卡 | 啪啪网站免费 | 超级黄色录像 | 国产调教视频在线观看 | 黄色一级片欧美 | 精品无码一区二区三区蜜臀 | 久久免费毛片 | 欧美午夜精品久久久久久孕妇 | 2018中文字幕在线观看 | 女女高潮h冰块play失禁百合 | 亚洲精品麻豆 | 亚洲熟妇av一区二区三区 | 亚洲一区二区三区视频 | 免费视频爱爱太爽 | 精品网站999www | 黄色片免费网站 | 亚州精品国产精品乱码不99按摩 | 尤物视频免费观看 | av免费网站 | a级片网站 | 免费看黄的网址 | 精品人妻午夜一区二区三区四区 | 久热亚洲 | 日韩一二三区视频 |