ABAP Netweaver, Hybris Commerce和SAP 云平臺(tái)的登錄認(rèn)證
915
2025-03-31
tornado官方文檔:
官方英文
中文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
②創(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):
(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)容。