tornaod環(huán)境搭建及基本框架搭建——成功運(yùn)行第一個(gè)基于tornado搭建的服務(wù)器框架

      網(wǎng)友投稿 915 2025-03-31

      tornado官方文檔:

      tornaod環(huán)境搭建及基本框架搭建——成功運(yùn)行第一個(gè)基于tornado搭建的服務(wù)器框架

      官方英文

      中文4.3

      1.項(xiàng)目環(huán)境搭建

      與本人django項(xiàng)目環(huán)境搭建步驟一樣(不同點(diǎn)如下?。?/p>

      (1)windows本地存儲(chǔ)項(xiàng)目的文件夾為:tudo_first

      (2)ubuntu下創(chuàng)建的tornado項(xiàng)目環(huán)境

      ubuntu命令:

      mkvirtualenv -p python3 tudo

      ubuntu命令:

      pip install tornado==5.1.1

      ubuntu查看安裝包命令:

      pip list

      (3)ubuntu中存儲(chǔ)項(xiàng)目的文件夾為:tudo_file

      2.tornado搭建測試

      ①測試代碼(hello.py):

      # 運(yùn)行tornado的庫 import tornado.ioloop import tornado.web # HTTP請求處理 類似Django里的類視圖 class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") # 定義接口 Application = tornado.web.Application( [(r'/',MainHandler)] ) if __name__ == '__main__': # 定義端口 application.listen(8080) # 運(yùn)行tornado tornado.ioloop.IOLoop.current().start()

      ②ubuntu中瀏覽器訪問指定端口(127.0.0.1:8080)出現(xiàn)如下響應(yīng)即為測試成功——可以進(jìn)行項(xiàng)目開發(fā)!

      3.正式進(jìn)入此tornado項(xiàng)目的搭建之基本框架的搭建

      ①編寫tornado運(yùn)行文件(app.py):

      如果邏輯同測試代碼,會(huì)造成本py文件會(huì)過大的后果——同時(shí)包含定義接口及類視圖,而且不易區(qū)分具體代碼塊的功能;

      所以,現(xiàn)采用另一種寫法——繼承并重寫定義接口的類tornado.web.Application,使得定義接口與類視圖分開編寫?。?!

      import tornado.ioloop import tornado.web import tornado.options from tornado.options import define,options # 導(dǎo)入請求處理類文件 from handlers import main # 名字,默認(rèn)端口,幫助信息,類型 define('port',default='8000',help='Listeningport',type=int) # 重寫 class Application(tornado.web.Application): def __init__(self): handlers = [ ('/',main.IndexHandler), ('/explore',main.ExploreHandler), # 定義一個(gè)可以傳參的接口 ('/post/(?P[0-9]+)',main.PostHandler), ] settings = dict( debug=True, # 配置模板路徑 template_path='templates', # 配置靜態(tài)文件路徑 static_path='static' ) # 繼承父類 super().__init__(handlers, **settings) application = Application() if __name__ == '__main__': # 控制臺(tái)打印訪問記錄 tornado.options.parse_command_line() # 端口 application.listen(options.port) print('Server start on port {}'.format(options.port)) tornado.ioloop.IOLoop.current().start()

      ②創(chuàng)建handlers包,并在里面創(chuàng)建main.py文件用于編寫業(yè)務(wù)邏輯:

      import tornado.web class IndexHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.render('index.html') class ExploreHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.render('explore.html') class PostHandler(tornado.web.RequestHandler): def get(self, post_id): # 傳遞參數(shù)到post.html self.render('post.html',post_id=post_id)

      ③創(chuàng)建模板文件(templates文件夾里):

      (1)父模板——用于模板繼承(base.html):

      {% block title %}Tornado Title{% end %} {% block content %}Default body of base {% end %}

      (2)index.html——首頁:

      {% extends 'base.html' %} {% block title %} index page{% end %} {% block content %} I am index {% end %}

      (3)explore.html——發(fā)現(xiàn)頁:

      {% extends 'base.html'%} {% block title %}explore page{% end %} {% block content %} I am explore {% end %}

      (4)post.html——詳情頁:(展示接收到的參數(shù)post_id)

      {% extends 'base.html' %} {% block title %} post page {% end %} {% block content %} I am post {{ post_id }} {% end %}

      ④創(chuàng)建static文件用于存放js和css

      ⑤運(yùn)行項(xiàng)目:(運(yùn)行app.py文件即可!)

      Python Tornado

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:蘋果公司聯(lián)合創(chuàng)始人史蒂夫·喬布斯曾試圖在硅谷創(chuàng)造一種制造業(yè)文化
      下一篇:excel表格如何把豎線錯(cuò)開(表格怎么錯(cuò)開豎線)
      相關(guān)文章
      亚洲精品高清一二区久久| 亚洲综合在线一区二区三区| 亚洲精品国产美女久久久| 亚洲av区一区二区三| 四虎必出精品亚洲高清| 亚洲免费视频观看| 99人中文字幕亚洲区| 亚洲福利电影一区二区?| 亚洲专区先锋影音| 亚洲av日韩av激情亚洲| 4480yy私人影院亚洲| 亚洲精品美女在线观看| 99久久精品国产亚洲| 亚洲欧洲日韩在线电影| 亚洲一区二区三区不卡在线播放| 亚洲另类古典武侠| jiz zz在亚洲| 国产精品亚洲天堂| 亚洲欧洲中文日韩av乱码| 久久精品国产精品亚洲下载| 亚洲人成亚洲人成在线观看| 亚洲AV综合色一区二区三区| 亚洲AV人无码激艳猛片| 亚洲精品不卡视频| 亚洲一区中文字幕| 亚洲国产欧美国产综合一区| 无码一区二区三区亚洲人妻| 4338×亚洲全国最大色成网站| 亚洲中文字幕无码久久2017 | 亚洲成色www久久网站夜月| 亚洲精品亚洲人成在线观看| 亚洲高清在线视频| 亚洲国产精品成人精品小说 | 亚洲无码视频在线| 亚洲色欲一区二区三区在线观看| 久久精品国产精品亚洲精品| 在线观看亚洲人成网站| 国产亚洲精品影视在线| 在线观看亚洲电影| 亚洲精品无码永久中文字幕| 亚洲黄色在线视频|