多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 互聯(lián)網(wǎng) > Tornado框架使用http的GET方式傳輸中文漢字的簡(jiǎn)單實(shí)作

Tornado框架使用http的GET方式傳輸中文漢字的簡(jiǎn)單實(shí)作

來(lái)源:程序員人生   發(fā)布時(shí)間:2015-04-14 08:19:21 閱讀次數(shù):3403次

最近業(yè)余時(shí)間在看Tornado框架的使用,雖然維基百科「Comparison of web application frameworks」把Tornado黑的不行,但上手確切很簡(jiǎn)單



這個(gè)教程的第2個(gè)例子


import textwrap import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define, options define("port", default=8000, help="run on the given port", type=int) class ReverseHandler(tornado.web.RequestHandler): def get(self, input): self.write(input[::⑴] + ' ') class WrapHandler(tornado.web.RequestHandler): def post(self): text = self.get_argument('text') width = self.get_argument('width', 40) self.write(textwrap.fill(text, int(width)) + ' ') class FindbrandHandler( tornado.web.RequestHandler ): def get(self, input): input_dcds = input.split('_') input_dcd = u'' for elem in input_dcds: if len(elem)>0: input_dcd += unichr( int(elem) ) print input_dcd.encode('utf⑻') o_str = 'input: '+input_dcd.encode('utf⑻') + ' output: getcha ' self.write( o_str ) if __name__ == "__main__": tornado.options.parse_command_line() app = tornado.web.Application( handlers=[ (r"/reverse/(w+)", ReverseHandler), (r"/wrap", WrapHandler), (r"/brand/(w+)", FindbrandHandler) ] ) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) tornado.ioloop.IOLoop.instance().start()

例程的邏輯以下:

添加FindbrandHandle類,繼承RequestHandler,重寫get方法

依照

/brand/(要求內(nèi)容)

的方式載入web.Application,然后運(yùn)行。


用curl要求:

curl localhost:9002/reverse/1234567

會(huì)得到以下返回

7654321


但是輸入中文

curl localhost:9002/reverse/從星星的彈空里

會(huì)得到404頁(yè)

<html><title>404: Not Found</title><body>404: Not Found</body></html>


這是由于http的GET方法,不支持漢語(yǔ),僅支持字母數(shù)字符號(hào)。早些年某些閱讀器訪問百度,也常常看見百度將搜索詞,使用urlencode方法,轉(zhuǎn)化為GET方法支持的url字符串。

這里我們使用unichr()和ord()兩個(gè)函數(shù),實(shí)現(xiàn)unicode字符與整形數(shù)的轉(zhuǎn)換,發(fā)送用下劃線間隔的整形數(shù)。

這里是客戶端例程:

import os import sys import nlp_tools as nt urlstr = 'curl localhost:%d/brand/%s' if __name__=='__main__': n_args = len(sys.argv) line = sys.argv[2] ecd_data = '' for word in line.decode('utf⑻'): ecd_data += '%d_'%( ord(word) ) url_request = '' if n_args==2: url_request = urlstr%( 8000, ecd_data ) else: url_request = urlstr%( int(sys.argv[1]), ecd_data ) print line print url_request os.system( url_request )

使用


python call_string_service1.py 9002 從星星的彈空里


調(diào)用該腳本,既可查看履行結(jié)果:


從星星的彈空里
curl localhost:9002/brand/20174_26143_26143_30340_24377_31354_37324_
input: 從星星的彈空里
output: getcha


本實(shí)作使用自寫編碼方式,簡(jiǎn)單演示其他url_encode模塊的工作原理,實(shí)現(xiàn)了中文漢字的傳輸。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产一级在线观看视频 | 激情在线免费视频 | 在线欧美三级 | 激情久久久久久久久久久 | 999精品影视在线观看 | 日韩2页| 亚洲爱爱图 | 精品久久久久久久一区二区手机版 | 99久久伊人 | 一本本久综合久久爱 | 亚洲欧美视频一区二区 | 亚洲欧美久久精品 | 亚洲麻豆视频 | 国产永久免费爽视频在线 | 日本视频在线观看不卡高清免费 | 美女福利在线 | 91成人午夜精品福利院在线观看 | 亚洲国产第一 | 一区二区三区视频免费 | 国产一区二区日韩欧美在线 | 欧美另类在线观看 | 国产成人一区二区三区小说 | 极品丝袜高跟91极品系列 | 有毛片毛毛片毛片毛片 | 欧美性猛交xxxxx按摩欧美 | 免费一级欧美片在线观免看 | 欧美日韩午夜精品不卡综合 | 另类综合小说 | 五月婷婷六月丁香综合 | 久久精品观看影院2828 | 国产高清在线免费观看 | uuzyz噜噜资源站 | 久久亚洲精品成人综合 | 国产免费av片在线观看 | 亚洲国产片 | 亚洲高清免费观看 | 亚洲天堂伦理 | 高清欧美性猛交xxxx黑人猛交 | 国产精品久久久久乳精品爆 | 欧美日韩视频一区二区三区 | 亚洲一区二区三区四区在线 |