日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tornado学习笔记day02-进阶与提升

發布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tornado学习笔记day02-进阶与提升 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

整理基礎工程

  • 請看第一天的配置文件目錄,搭建了一個框架的基礎目錄

Application

settings

debug

作用

可以設置tornado是否工作在調試模式下面,默認為false,即工作在生產模式下

true的特性:

自動重啟:
  • tornado程序會監控源代碼文件,會自動重啟服務器,減少我們手動重啟的次數,提高開發效率
  • 如果保存后有錯誤,導致重啟失敗,修改好后,不會再重啟了,需要我們手動進行重新啟動
  • 在debug開啟后,那四個特性咱也不太會啊,咱就想著能夠重啟就得了,那這可咋整,這個時候我們可以通過"autoreload" : True設置,僅僅有第一個特性
取消緩存編譯的模板:
  • 單獨設置:compiled_template_cache = False
  • ,這個默認值為true,這里要注意不是說我debug設置默認為啥,里面就默認都是啥
  • 你改完了模板的內容,它得加載你改了的啊,不能還用緩存的內容,要不然你看不到修改的新結果,這可不行
  • 雖然出于性能考慮,老也重新加載有點兒慢,但是沒事兒,畢竟開發中也不差這一點資源
取消緩存靜態文件的HASH值
  • 單獨設置:static_hash_cache = False
  • css文件每次后面都有一個哈希值,這個哈希值能緩存
  • 這樣我們都能重新加載這個css就OK了
提供追蹤信息
  • 如果我們的IndexHandler里面拋出了一個異常,但是他自己沒有捕獲這個異常,就會生成一個追蹤的頁面
  • 單獨設置:serve_traceback = True

template_path:

設置模板文件目錄

static_path :

設置靜態文件目錄

auto_escape :

當為None時,關閉項目的自動轉義

cookie_secret:

配置安全cookie秘鑰

xsrf_cookie:

當為True,開啟XSRF保護

login_url

用于定義登錄的路徑,默認找這里

路由

  • (r"/", index.IndexHandler),
  • 傳的參數在路由那嘎達的字典類型的數據
D:. │ config.py │ readme.md │ server.py │ application.py │ ├─.idea │ │ .gitignore │ │ itcast_tornado.iml │ │ misc.xml │ │ modules.xml │ │ vcs.xml │ │ workspace.xml │ │ │ └─inspectionProfiles │ profiles_settings.xml │ ├─static # 靜態資源文件夾 ├─templates # 模板文件 ├─upfile # 上傳文件 │ └─views # 視圖│ index.py # 首頁視圖└─ __init__.py

version1.0

創建一個index.py文件在views包下面,內容如下

from tornado.web import RequestHandlerclass IndexHandler(RequestHandler):def get(self):self.write("main page info tornado!")

在server.py文件中修改如下

import tornado.web import tornado.ioloop import tornado.httpserver import tornado.options import config from views.index import IndexHandlerif __name__ == '__main__':app = tornado.web.Application([(r"/", IndexHandler)])httpServer = tornado.httpserver.HTTPServer(app)httpServer.bind(config.options["port"])httpServer.start(1)tornado.ioloop.IOLoop.current().start()

其中的config.py不用動

options = {"port": 8080,"list": ["good", "nice", "handsome"] }

version2.0

創建一個application.py的文件,內容如下

import tornado.web from views.index import IndexHandlerclass Application(tornado.web.Application):def __init__(self):handlers = [(r"/", IndexHandler)]super(Application,self).__init__(handlers)

然后服務端這么改

import tornado.ioloop import tornado.httpserver import tornado.optionsimport config from application import Applicationif __name__ == '__main__':app = Application()httpServer = tornado.httpserver.HTTPServer(app)httpServer.bind(config.options["port"])httpServer.start(1)tornado.ioloop.IOLoop.current().start()

視圖都不用動

from tornado.web import RequestHandlerclass IndexHandler(RequestHandler):def get(self):self.write("main page info tornado!")

因為tornado不是Django那種大而全的,而是小而精的

所以配置也不用怎么動

# 參數 options = {"port": 8080 }# 配置 settings = {# static_path = "/","debug" : True }

成了這就

然后我們再配置一個路由home
在application里面直接加就OK

import tornado.web from views import indexclass Application(tornado.web.Application):def __init__(self):handlers = [(r"/", index.IndexHandler),(r"/home", index.HomeHandler),]super(Application,self).__init__(handlers)

然后在視圖中再創建一個對應的類

from tornado.web import RequestHandlerclass IndexHandler(RequestHandler):def get(self):self.write("main page info tornado!")class HomeHandler(RequestHandler):def get(self):self.write(" this is home page content!")

重啟服務即可在瀏覽器中訪問http://127.0.0.1:8080/home看到結果

配置路徑

Django中的那個BASE_DIRS挺好用的,我們也想有一個,那我們也可以整

import os BASE_DIR = os.path.dirname(__file__)# 參數 options = {"port": 8080 }# 配置 settings = {# 這寫key的名字可不是隨便起的奧,是寫好的,# 就像upfile就沒有,你寫了也白扯'static_path' : os.path.join(BASE_DIR,"static"),'template_path' : os.path.join(BASE_DIR,"templates"),"debug" : True }

路由參數的傳遞

傳遞的方式和Django差不多,但也有不同之處,這里直接上代碼

路由里面這樣發

import tornado.web from views import indexclass Application(tornado.web.Application):def __init__(self):handlers = [(r"/", index.IndexHandler),(r"/sunck", index.SunckHandler,{'name':"victor",'age':19}),]super(Application,self).__init__(handlers)

視圖里面這樣接

from tornado.web import RequestHandlerclass IndexHandler(RequestHandler):def get(self):self.write("main page info tornado!")class SunckHandler(RequestHandler):# 該方法會在HTTP方法之前調用def initialize(self,age,name) -> None:self.age = ageself.name = namedef get(self):print(self.age)print(self.name)self.write("sunck page info tornado!")

這里不能再get方法中直接加上參數接受

需要重寫initialize方法,來對成員屬性進行定義

相似文章

tornado學習筆記day01 tornado學習筆記day02 tornado學習筆記day03 tornado學習筆記day04 tornado學習筆記day05 tornado學習筆記day06 tornado學習筆記day07 tornado學習筆記day08

總結

以上是生活随笔為你收集整理的tornado学习笔记day02-进阶与提升的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。