>"Do not store up for yourselves treasures on earth, where moth and rust consume and where thieves break in and steal; but store up for yourselves treasures in heaven, where neither moth and rust consumes and where thieves do not break in and steal. For where your treasure is, there your heart will be also." (MATTHEW6:19-21)
#æ¢ægetåpostæ¹æ³
å¨å¼åç½ç«çè¿ç¨ä¸ï¼postågetæ¯å¸¸è§å¸¸ç¨çä¸¤ä¸ªæ¹æ³ï¼å
³äºè¿ä¸¤ä¸ªæ¹æ³ç详ç»è§£éï¼è¯·å为é
读è¿ç¯æç« ï¼[ãHTTP POST GET æ¬è´¨åºå«è¯¦è§£ã](https://github.com/qiwsir/ITArticles/blob/master/Tornado/DifferenceHttpGetPost.md)ï¼è¿ç¯æç« åé¢å·²ç»æ¨èé
读äºï¼å¯ä»¥è¿ä¹è¯´ï¼å¦æç宿²¡æææç½getåpostï¼ä¹å¯ä»¥ååºwebç¨åºï¼ä½æ¯ï¼åªè¦éå°â使¯âï¼å°±è¯´æå¦æä¹¾å¤ï¼ä½æ¯å¦æçå®è¦å¯¹è¿æ¹é¢ææ·±å
¥çè§£ï¼å¹¶ä¸å°æ¥è½ä¸ä¸ä¸ªæ¡£æ¬¡ï¼æ¯å¿
é¡»äºè§£çãè¿å°±å¦åä½ è¦ç»ä¹ è¾éªåè°±ä¸çåæ³ï¼ä¸èªå®«ï¼ä¹å¯ä»¥ç»ï¼ä½æ¯æ æ³çªç ´æä¸ªæéï¼å²³ä¸ç¾¤ä¹ä¸å»ï¼æç»ä»è¦æä¸ºè¶
䏿µï¼å°±ä¸ææç
§åè°±ä¸å¼ç¯æè¯´â欲ç»ç¥åï¼æ¥åèªå®«âï¼âç¥åâæ¯éè¦âèªå®«â为åæï¼å¦åï¼ç»åºæ¥ç䏿¯âç¥åâï¼æ æ³é®é¼æ±æ¹ã
ç¹å«æéï¼çå®ä¸è¦èªå®«ï¼å ä¸ºæ¬æç¨ä¸æ¯è¾éªåè°±ï¼ä¹ä¸æ¯èµè±å®å
¸ï¼æ°åæ¬è¯¾ç¨çäººæ´æ¯ççå¥å
¨è
ãè¥çå®èªå®«äºï¼è´£ä»»èªè´ï¼ä¸æ¬ä½è
æ å
³ãç´å°ç®åï¼ç§å¦ä¸å°æªæè¯å®æè¯ä¼ªèªå®«ååç¨åºä¹é´æ¯å¦å卿ç§å æå
³ç³»ãæä»¥æéç宿
éè¡äºã
è¿æ¯æ¯åæ¥ï¼çä¸é¢ç代ç å
ï¼
#!/usr/bin/env python
#coding:utf-8
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="Please send email to me", type=int)
class ReverseHandler(tornado.web.RequestHandler):
def get(self, input_word):
self.write(input_word[::-1])
class WrapHandler(tornado.web.RequestHandler):
def post(self):
text = self.get_argument("text")
width = self.get_argument("width", 40)
self.write(textwrap.fill(text, width))
if __name__ == "__main__":
tornado.options.parse_command_line()
app = tornado.web.Application(
handlers = [
(r"/reverse/(\w+)", ReverseHandler),
(r"/wrap", WrapHandler)
]
)
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
è¿æ®µä»£ç è·ä¸ä¸è®²ç代ç ç¸æ¯ï¼åºæ¬ç»ææ¯ä¸æ ·çï¼ä½æ¯å¨ç¨åºä¸»ä½ä¸ï¼è¿æ¬¡åäºä¸¤ä¸ªç±»`ReverseHandler`å`WrapHandler`ï¼è¿ä¸¤ä¸ªç±»ä¸åå«æä¸¤ä¸ªæ¹æ³get()åpost()ãå¨`tornado.web.Application()`å®ä¾åä¸ï¼handlersçåæ°å¼åå«è®¾ç½®äºä¸åè·¯å¾å¯¹åºè¿ä¸¤ä¸ªç±»ã
å
¶å®æ¹é¢è·ä¸ä¸è®²ç代ç 䏿 ·ã
æä¸è¿°ä»£ç çæä»¶ï¼åå°æä¸ªç®å½ä¸ï¼æç»ä»åå为:request_url.pyï¼ååçå®ä¹å¯ä»¥èªå·±å®ãç¶åè¿å
¥è¯¥ç®å½ï¼è¿è¡ï¼`python request_url.py`ï¼å°±å°è¿ä¸ªtornadoæ¡æ¶çç½ç«ä»¥ç«¯å£8000åå¸äºã
æå¼ç½é¡µï¼å¨æµè§å¨ä¸è¾å
¥ï¼`http://localhost:8000/reverse/qiwsirpython`
çé¢ä¸è¾åºä»ä¹ç»æï¼

è¿å¯ä»¥å¨å½ä»¤ç»ç«¯ï¼ç¨ä¸é¢æ¹å¼è°è¯ï¼è·å¨ç½é¡µä¸è¾åºæ¯çåææã
qw@qw-Latitude-E4300:~$ curl http://localhost:8000/reverse/qiwsirpython
nohtypriswiq
åçå¦å¤ä¸ä¸ªè·¯å¾ï¼çå®è¿è¡çæ¯å¦æ¯ä¸é¢çç»æå¢ï¼
qw@qw-Latitude-E4300:~$ curl http://localhost:8000/wrap -d text=I+love+Python+programming+and+I+am+writing+python+lessons+on+line
I love Python programming and I am
writing python lessons on line
è°è¯éè¿ï¼å°±å¼å§åæå
¶ä¸ç奥å¦ã
##get()
å¨ReverseHandlerç±»ä¸ï¼å®ä¹äºè¿ä¸ªæ¹æ³ã
class ReverseHandler(tornado.web.RequestHandler):
def get(self, input_word):
self.write(input_word[::-1])
è¿ä¸ªget()æ¹æ³è¦åä¸é¢Applicationå®ä¾åä¸çè·¯å¾ï¼
(r"/reverse/(\w+)", ReverseHandler),
å
³èèµ·æ¥çã
é¦å
çè·¯å¾è®¾ç½®ï¼`r"/reverse/(\w+)"`ï¼è¿ä¸ªè·¯å¾çææå°±æ¯å¯ä»¥å¨æµè§å¨çurlä¸è¾å
¥ï¼http://localhost:8000/reverse/ddddï¼è¿ä¸ªæ ·åçå°åï¼æ³¨æè·¯å¾ä¸ç`(\w+)`ï¼æ¯æ£å表达å¼ï¼å¨reverse/çåé¢å¯ä»¥è¾å
¥ä¸ä¸ªæè
å¤ä¸ªå
æ¬ä¸å线çä»»ä½åè¯å符ãä¹å°±æ¯ddddå¯ä»¥æ´æ¢ä¸ºä»»ä½å
¶å®åæ¯æè
ä¸å线ï¼ä¸ä¸ªæè
å¤ä¸ªåå¯ä»¥ã
å¨URLä¸è¾å
¥çè¿ä¸ªå°åï¼å°±è¢«ReverseHandlerç±»ä¸çget()æ¹æ³æ¥æ¶ï¼è¿å°±æ¯`(r"/reverse/(\w+)", ReverseHandler)`ä¹å«ä¹äºãé£ä¹ï¼ReverseHandlerä¸çget()æ¹æ³å¦ä½æ¥æ¶urlä¸ä¼ éè¿æ¥çä¿¡æ¯å¢ï¼
åæå·²ç»è¯´è¿ï¼å¨`def get(self, input_word)`ä¸ï¼selfåæ°å¨ç±»å®ä¾åå对åºçæ¯tornado.web.RequestHandlerï¼å¦å¤ä¸ä¸ªåæ°input_wordç¨æ¥æ¥æ¶æ¥èªurlçä¿¡æ¯ï¼ä½æ¯å®åªæ¥æ¶æè®¾ç½®çè·¯å¾å°¾é¨æ°æ®ï¼ä¹å°±æ¯è·¯å¾`r"/reverse/(\w+)"`ä¸reverseåé¢ç第ä¸ä¸ªåå²ç¬¦å·â/âä¹åçå
容ï¼é½è¢«input_wordæ¥æ¶è¿æ¥ï¼å³æ£å表达å¼çå
容ã
input_wordæ¥æ¶è¿æ¥çå¯¹è±¡ï¼æ¯ä»ä¹ç±»åå¢ï¼çæµä¸ä¸ï¼ä»åé¢ç¨åºçè¿è¡ç»æçï¼è¯å®æ¯æç§åºåç±»åç对象ãå
·ä½æ¯åªç§å¢ï¼å¯ä»¥å®éªã
å°getæ¹æ³ä¿®æ¹ä¸ºï¼
def get(self, input_word):
input_type = type(input_word)
self.write("%s"%input_type)
åè¿è¡ç¨åºï¼æå°åºæ¥çæ¯ï¼
qw@qw-Latitude-E4300:~$ curl http://localhost:8000/reverse/qiwei
[é¦é¡µ](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/index.md) | [ä¸ä¸è®²ï¼Hello,第ä¸ä¸ªç½é¡µåæ](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/307.md)