Rumah pembangunan bahagian belakang Tutorial Python 高性能web服务器框架Tornado简单实现restful接口及开发实例

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

Jun 16, 2016 am 08:43 AM
tornado rangka kerja web

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

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

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

pip install tornado
Salin selepas log masuk

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

主要模块
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), 
])

Salin selepas log masuk

这样我们访问 /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"))

Salin selepas log masuk

在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() 
Salin selepas log masuk

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bina aplikasi web menggunakan rangka kerja web Golang Buffalo Bina aplikasi web menggunakan rangka kerja web Golang Buffalo Jun 24, 2023 am 10:27 AM

Buffalo ialah rangka kerja web yang dibangunkan menggunakan Golang yang menyediakan penyelesaian untuk pembangunan pesat aplikasi web. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Buffalo untuk membina aplikasi web. Memasang Buffalo Mula-mula, kita perlu memasang Buffalo secara tempatan. Buffalo menyediakan alat baris arahan yang mudah untuk anda membina dan menjalankan aplikasi. Sebelum memasang, pastikan anda memasang Golang dan Node.js. Berlari

Kongsi rangka kerja web Nodejs: Fastify Kongsi rangka kerja web Nodejs: Fastify Aug 04, 2022 pm 09:23 PM

Artikel ini akan berkongsi dengan anda rangka kerja web Nodejs: Fastify Ia akan memperkenalkan secara ringkas ciri yang disokong oleh Fastify, pemalam yang disokong oleh Fastify, dan saya harap ia akan membantu semua orang.

Perbandingan rangka kerja web bahasa Go: gin vs. gema vs. iris Perbandingan rangka kerja web bahasa Go: gin vs. gema vs. iris Jun 17, 2023 pm 07:44 PM

Memandangkan permintaan untuk pembangunan web terus meningkat, rangka kerja web dalam pelbagai bahasa dipelbagaikan secara beransur-ansur, dan bahasa Go tidak terkecuali. Di antara banyak rangka kerja web dalam bahasa Go, gin, echo dan iris ialah tiga rangka kerja yang paling popular. Dalam artikel ini, kami akan membandingkan kebaikan dan keburukan ketiga-tiga rangka kerja ini untuk membantu anda memilih rangka kerja yang sesuai untuk projek anda. Gingin ialah rangka kerja web ringan yang menampilkan prestasi tinggi dan fleksibiliti. Ia menyokong fungsi middleware dan penghalaan, yang menjadikannya ideal untuk membina RESTful

Bagaimana untuk melaksanakan rangka kerja web yang ringan menggunakan PHP dan Slim Bagaimana untuk melaksanakan rangka kerja web yang ringan menggunakan PHP dan Slim Jun 25, 2023 pm 01:03 PM

Rangka kerja web telah menjadi bahagian penting dalam pembangunan aplikasi web moden, menyediakan infrastruktur yang membolehkan pembangun mencipta dan menggunakan aplikasi mereka dengan lebih pantas. Dalam pembangunan PHP, Slim ialah rangka kerja web ringan yang terkenal dengan kemudahan penggunaan dan pembangunan pesat. Artikel ini akan menunjukkan kepada anda cara membuat aplikasi web yang ringkas tetapi berkuasa menggunakan PHP dan Slim. Apa itu Slim? Slim ialah rangka kerja web ringan yang ditulis dalam bahasa PHP

Penyelesaian kepada NotImplementedError() Penyelesaian kepada NotImplementedError() Mar 01, 2024 pm 03:10 PM

Sebab ralat adalah dalam python Sebab mengapa NotImplementedError() dilemparkan dalam Tornado mungkin kerana kaedah atau antara muka abstrak tidak dilaksanakan. Kaedah atau antara muka ini diisytiharkan dalam kelas induk tetapi tidak dilaksanakan dalam kelas anak. Subkelas perlu melaksanakan kaedah atau antara muka ini untuk berfungsi dengan baik. Cara menyelesaikan masalah ini adalah dengan melaksanakan kaedah abstrak atau antara muka yang diisytiharkan oleh kelas induk dalam kelas kanak-kanak. Jika anda menggunakan kelas untuk mewarisi daripada kelas lain dan anda melihat ralat ini, anda harus melaksanakan semua kaedah abstrak yang diisytiharkan dalam kelas induk dalam kelas anak. Jika anda menggunakan antara muka dan anda melihat ralat ini, anda harus melaksanakan semua kaedah yang diisytiharkan dalam antara muka dalam kelas yang melaksanakan antara muka. Jika anda tidak pasti yang mana

Rangka kerja web dan pembangunan perkhidmatan web dalam bahasa Go Rangka kerja web dan pembangunan perkhidmatan web dalam bahasa Go Jun 03, 2023 am 08:02 AM

Bahasa Go telah menjadi semakin popular dalam bidang pembangunan web sejak beberapa tahun kebelakangan ini. Di satu pihak, ciri prestasi dan keselarasannya adalah sangat baik, dan ia sangat sesuai untuk mengendalikan permintaan Web yang sangat serentak, sebaliknya, kecekapan pembangunannya telah bertambah baik secara beransur-ansur, dan semakin banyak rangka kerja dan alat pembangunan Web telah dilancarkan. Artikel ini terutamanya akan memperkenalkan kandungan yang berkaitan untuk membangunkan rangka kerja web dan perkhidmatan web dalam bahasa Go. Sama ada anda seorang pemula dalam pembangunan web atau pembangun yang mempunyai sedikit pengalaman, anda boleh mempelajari tentang pengetahuan dan teknik pembangunan web yang berkaitan dalam bahasa Go melalui artikel ini.

Melaksanakan get laluan API menggunakan rangka kerja web Golang rangka kerja Iris Melaksanakan get laluan API menggunakan rangka kerja web Golang rangka kerja Iris Jun 24, 2023 am 11:24 AM

Gerbang API ialah perkhidmatan rangkaian yang digunakan untuk mengurus dan menghalakan permintaan API (Antara Muka Pengaturcaraan Aplikasi). Ia adalah perantara yang menerima permintaan pelanggan dan memajukannya ke perkhidmatan hujung belakang. Manfaat get laluan API ialah ia boleh menyediakan antara muka yang konsisten untuk berbilang perkhidmatan dan menyediakan ciri seperti keselamatan dan pemantauan. Dalam artikel ini, kami akan melaksanakan get laluan API menggunakan rangka kerja web Golang Iris. Rangka kerja Iris ialah rangka kerja web berprestasi tinggi yang direka bentuk untuk ringkas, pantas, mudah berskala dan boleh diselenggara. Kotak iris

Bina aplikasi web dengan pantas menggunakan rangka kerja web Golang beego Bina aplikasi web dengan pantas menggunakan rangka kerja web Golang beego Jun 24, 2023 am 11:22 AM

Dengan pembangunan dan pempopularan teknologi Internet, semakin banyak permintaan untuk aplikasi Web Membina aplikasi Web dengan cepat dan cekap telah menjadi keperluan mendesak untuk pembangun. Ciri dinamik Golang, keupayaan pelaksanaan yang cekap dan rangka kerja web yang kaya telah menjadi pilihan pertama bagi kebanyakan pembangun. Di antara banyak rangka kerja web Golang, beego ialah rangka kerja web yang pantas, ringkas, cekap dan mudah digunakan Ia bergantung pada pakej HTTP asli Go, mempunyai sokongan RESTful, mod MVC dan disertakan dengan ORM dan

See all articles