首頁 後端開發 Python教學 高性能web服务器框架Tornado简单实现restful接口及开发实例

高性能web服务器框架Tornado简单实现restful接口及开发实例

Jun 16, 2016 am 08:43 AM
tornado web框架

有个朋友让我搞搞tornado框架,说实话,这个框架我用的不多。。。

我就把自己的一些个运维研发相关的例子,分享给大家。

怎么安装tornado,我想大家都懂。

pip install tornado
登入後複製

再来说说他的一些个模块,官网有介绍的。我这里再啰嗦的复读机一下,里面掺夹我的理解。

主要模块
web - FriendFeed 使用的基础 Web 框架,包含了 Tornado 的大多数重要的功能,反正你进入就对了。
escape - XHTML, JSON, URL 的编码/解码方法
database - 对 MySQLdb 的简单封装,使其更容易使用,是个orm的东西。
template - 基于 Python 的 web 模板系统,类似jinja2
httpclient - 非阻塞式 HTTP 客户端,它被设计用来和 web 及 httpserver 协同工作,这个类似加个urllib2
auth - 第三方认证的实现(包括 Google OpenID/OAuth、Facebook Platform、Yahoo BBAuth、FriendFeed OpenID/OAuth、Twitter OAuth)
locale - 针对本地化和翻译的支持
options - 命令行和配置文件解析工具,针对服务器环境做了优化,接受参数的

底层模块
httpserver - 服务于 web 模块的一个非常简单的 HTTP 服务器的实现
iostream - 对非阻塞式的 socket 的简单封装,以方便常用读写操作
ioloop - 核心的 I/O 循环

再来说说tornado接受请求的方式:
关于get的方式

class MainHandler(tornado.web.RequestHandler): 
  def get(self): 
    self.write("You requested the main page") 
class niubi(tornado.web.RequestHandler): 
  def get(self, story_id): 
    self.write("xiaorui.cc niubi'id is " + story_id) 
application = tornado.web.Application([ 
  (r"/", MainHandler), 
  (r"/niubi/([0-9]+)", niubi), 
])

登入後複製

这样我们访问 /niubi/123123123 就会走niubi这个类,里面的get参数。
关于post的方式

class MainHandler(tornado.web.RequestHandler): 
  def get(self): 
    self.write('<html><body><form action="/" method="post">'
         '<input type="text" name="message">'
         '<input type="submit" value="Submit">'
         '</form></body></html>') 
  def post(self): 
    self.set_header("Content-Type", "text/plain") 
    self.write("xiaorui.cc and " + self.get_argument("message"))

登入後複製

在tornado里面,一般get和post都在一个访问路由里面的,只是按照不同method来区分相应的。
扯淡的完了,大家测试下get和post。

import tornado.ioloop 
import tornado.web 
import json 
class hello(tornado.web.RequestHandler): 
  def get(self): 
    self.write('Hello,xiaorui.cc') 
class add(tornado.web.RequestHandler): 
  def post(self): 
    res = Add(json.loads(self.request.body)) 
    self.write(json.dumps(res)) 
def Add(input): 
  sum = input['num1'] + input['num2'] 
  result = {} 
  result['sum'] = sum 
  return result 
application = tornado.web.Application([ 
  (r"/", hello), 
  (r"/add", add), 
]) 
if __name__ == "__main__": 
  application.listen(8888) 
  tornado.ioloop.IOLoop.instance().start() 
登入後複製

#大家可以写个form测试,也可以用curl -d测试

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
使用Golang的Web框架Buffalo建構網路應用 使用Golang的Web框架Buffalo建構網路應用 Jun 24, 2023 am 10:27 AM

Buffalo是一款使用Golang開發的網路框架,它提供了快速開發網頁應用程式的解決方案。在這篇文章中,我們將介紹如何使用Buffalo建立一個Web應用程式。安裝Buffalo首先,我們需要在本地安裝Buffalo。 Buffalo提供了一個方便的命令列工具,可以透過該工具來建立和運行應用程式。在安裝之前,請確保已經安裝了Golang和Node.js。然

分享一個Nodejs web框架:Fastify 分享一個Nodejs web框架:Fastify Aug 04, 2022 pm 09:23 PM

這篇文章跟大家分享一個Nodejs web框架:Fastify,簡單介紹一下Fastify支援的特性、Fastify支援的外掛以及Fastify的使用方法,希望對大家有幫助!

Go語言Web框架比較:gin vs. echo vs. iris Go語言Web框架比較:gin vs. echo vs. iris Jun 17, 2023 pm 07:44 PM

隨著Web開發的需求不斷增加,各種語言的Web框架也逐漸多樣化,Go語言也不例外。在許多Go語言的Web框架中,gin、echo和iris是三個最受歡迎的框架。在這篇文章中,我們將比較這三個框架的優缺點,以幫助您選擇適合您的專案的框架。 gingin是一個輕量級的Web框架,它具有高效能和靈活性的特性。它支援中間件和路由功能,這使得它非常適合建立RESTful

如何使用PHP和Slim實現輕量級Web框架 如何使用PHP和Slim實現輕量級Web框架 Jun 25, 2023 pm 01:03 PM

在現代網頁應用程式開發中,Web框架已經成為了不可或缺的一部分,它們提供了一種基礎架構,使得開發者能夠更快地創建和部署自己的應用程式。在PHP開發中,Slim是一種輕量級的Web框架,以其易於使用和快速開發而聞名。本文將介紹如何使用PHP和Slim創建一個簡單但功能強大的Web應用程式。 Slim是什麼? Slim是一種使用語言PHP編寫的輕量級Web框架,其核

NotImplementedError()的處理方案 NotImplementedError()的處理方案 Mar 01, 2024 pm 03:10 PM

報錯的原因在python中,Tornado中拋出NotImplementedError()的原因可能是因為未實作某個抽象方法或介面。這些方法或介面在父類別中聲明,但在子類別中未實作。子類別需要實作這些方法或介面才能正常運作。如何解決解決這個問題的方法是在子類別中實作父類別聲明的抽象方法或介面。如果您正在使用一個類別來繼承另一個類,並且您看到了這個錯誤,則應該在子類別中實作父類別中所有聲明的抽象方法。如果您正在使用一個接口,並且您看到了這個錯誤,則應該在實作該接口的類別中實作該接口中所有聲明的方法。如果您不確定哪些

Go語言中的Web框架與Web服務的開發 Go語言中的Web框架與Web服務的開發 Jun 03, 2023 am 08:02 AM

Go語言近年來在Web開發領域中越來越受歡迎。一方面,它的效能和並發特性非常出色,非常適合處理高並發的Web請求;另一方面,它的開發效率也逐漸提高,越來越多的Web框架和開發工具被推出。本文將主要介紹在Go語言中開發Web框架和Web服務的相關內容。無論是從事Web開發的初學者,或是已經有一定經驗的開發者,都可以透過本文了解Go語言中Web開發的相關知識與技

使用Golang的Web框架beego快速建立Web應用 使用Golang的Web框架beego快速建立Web應用 Jun 24, 2023 am 11:22 AM

隨著網路科技的發展與普及,Web應用的需求越來越多,快速、有效率地建構Web應用成為了開發者們的迫切需求。而Golang的動態特性、高效執行的能力以及豐富的Web框架,成為了許多開發者們使用的首選。在眾多Golang的Web框架中,beego是一個快速、簡潔、高效、易用的Web框架,依賴Go的原生HTTP包,具有RESTful支援、MVC模式,自備orm和

Python伺服器程式設計:使用Tornado做Web框架 Python伺服器程式設計:使用Tornado做Web框架 Jun 18, 2023 pm 09:36 PM

隨著網路的普及,Web應用程式的需求也越來越大,Web框架也隨之發展壯大。 Python作為一門強大的語言,在Web開發中也展現了極大的優勢。在眾多PythonWeb框架中,Tornado是個較優的選擇。一、什麼是TornadoTornado是一個簡單的Web框架,由Facebook開源,使用Python語言編寫,具有非常高效的IO操作。 Torn

See all articles