ในการเริ่มต้นที่ Facebook ถูกสร้างขึ้นโดยใช้ PHP และ MySQL แต่การจราจรและขนาดของเครือข่ายที่เพิ่มขึ้นเพื่อให้ได้ความต้องการสำหรับการส่งมอบได้เร็วขึ้นดีขึ้นและเนื้อหาในเวลาจริง.
นี้นำทีม Facebook เพื่อเจาะลึกเทคโนโลยีอื่น ๆ และภาษานอก PHP และ บริษัท เร็ว ๆ นี้หันไปสถานที่ท่องเที่ยว Python, การเขียนโปรแกรมภาษาที่ใช้โดย Google เพื่อสร้างเครื่องมือค้นหา.
ความพยายามของทีมส่งผลให้เกิดเป็นผลิตภัณฑ์ที่เรียกว่าพายุทอร์นาโดกรอบหลามออกแบบมาเพื่อทำงานร่วมกับการเชื่อมต่อ HTTP ดิบในทางที่ไม่ปิดกั้นไม่ตรงกันง่าย.
ทอร์นาโดได้รับแรงบันดาลใจจากเครื่องมืออื่น ๆ เช่น Web.py และ webapp ของ Google แต่ยังรวมถึงคุณสมบัติพิเศษเช่นกัน.
ที่ศูนย์กลางของกรอบทั้งหมดอยู่เซิร์ฟเวอร์ HTTP ที่มีประสิทธิภาพซึ่งจะเพิ่มขึ้นโดยชุดของโมดูลการจัดการกับเนื้อหา i18n, การจัดการสตริงรุ่นส่งออกและการดำเนินงานไม่ตรงกันรหัสของบุคคลที่สาม, บันทึก, และอื่น ๆ
นอกจาก คาสซานดรา ทอร์นาโดเป็นหนึ่งในความสำเร็จมากที่สุดของ Facebook การใช้งานที่มาเปิดให้วันที่.
มีอะไรใหม่ ในข่าวประชาสัมพันธ์ฉบับนี้
- โมดูลใหม่: tornado.locks และ tornado.queues
มีอะไรใหม่ ในรุ่น 4.2:
- โมดูลใหม่: tornado.locks และ tornado.queues
มีอะไรใหม่ ในรุ่น 4.1:
- มัณฑนากร tornado.web.stream_request_body ช่วยให้ไฟล์ขนาดใหญ่ที่จะเป็น อัปโหลดที่มีการใช้งานหน่วยความจำ จำกัด .
- Coroutines ตอนนี้ได้เร็วขึ้นและมีการใช้อย่างกว้างขวางทั่วทอร์นาโดตัวเอง วิธีการอื่น ๆ ในขณะนี้กลับฟิวเจอร์สรวมทั้งวิธีการ iostream มากที่สุดและ RequestHandler.flush.
- วิธีการใช้แทนที่หลายคนที่ได้รับอนุญาตในขณะนี้ที่จะกลับมาในอนาคตสำหรับการควบคุมการไหล.
- รหัส HTTP ที่เกี่ยวข้องกับการใช้ร่วมกันในขณะนี้ระหว่าง tornado.httpserver tornado.simple_httpclient และโมดูล tornado.wsgi ทำให้การสนับสนุนสำหรับคุณสมบัติเช่น chunked และการเข้ารหัส gzip สอดคล้องกันมากขึ้น HTTPServer ตอนนี้ใช้อินเตอร์เฟซผู้แทนใหม่ที่กำหนดไว้ใน tornado.httputil นอกเหนือไปจากอินเตอร์เฟซเดียวโทรกลับเก่า.
- โมดูลใหม่ tornado.tcpclient สร้างการเชื่อมต่อ TCP กับ DNS ไม่ปิดกั้น, SSL จับมือกันและการสนับสนุนสำหรับ IPv6.
มีอะไรใหม่ ในรุ่น 3.2.2:
- token XSRF มีการเข้ารหัสในขณะนี้กับหน้ากากแบบสุ่ม ตามคำขอแต่ละ นี้จะทำให้มันปลอดภัยที่จะรวมไว้ในหน้าบีบอัดโดยไม่ต้องเสี่ยงต่อการโจมตีช่องโหว่ นี้ใช้กับการใช้งานมากที่สุดที่ใช้ทั้ง xsrf_cookies และตัวเลือก gzip (หรือมี gzip ใช้โดยพร็อกซี่).
- หากทอร์นาโด 3.2.2 มีการเรียกใช้ในเวลาเดียวกับรุ่นเก่าในโดเมนเดียวกันมีศักยภาพสำหรับปัญหากับรุ่นคุกกี้ที่แตกต่างกันบางอย่าง การตั้งค่าการใช้งาน xsrf_cookie_version = 1 สามารถนำมาใช้เป็นระยะเวลาเปลี่ยนผ่านในการสร้างรูปแบบคุกกี้เก่าบนเซิร์ฟเวอร์ใหม่.
- tornado.platform.asyncio คือตอนนี้เข้ากันได้กับรุ่น 0.3 Trollius.
สิ่งที่ใหม่ ในรุ่น 3.2.1:
- รูปแบบการลงนามค่าใช้โดย RequestHandler.set_secure_cookie และ RequestHandler.get_secure_cookie มีการเปลี่ยนแปลงที่จะมีความปลอดภัยมากขึ้น นี่คือการเปลี่ยนแปลงก่อกวน ฟังก์ชั่น secure_cookie ใช้พารามิเตอร์รุ่นใหม่เพื่อรองรับการเปลี่ยนระหว่างรูปแบบคุกกี้.
- รูปแบบใหม่คุกกี้แก้ไขช่องโหว่ที่อาจจะอยู่ในการใช้งานที่มีการใช้ cookies หลายที่ชื่อของหนึ่งคุกกี้เป็นคำนำหน้าชื่อของผู้อื่นได้.
- เพื่อลดการหยุดชะงัก, คุกกี้ในรูปแบบเก่าจะได้รับการยอมรับโดยเริ่มต้นจนกว่าพวกเขาจะหมดอายุ การใช้งานที่อาจมีความเสี่ยงสามารถปฏิเสธคุกกี้ทั้งหมดในรูปแบบเก่าโดยผ่าน min_version = 2 RequestHandler.get_secure_cookie.
มีอะไรใหม่ ในรุ่น 3.2:
- การประยุกต์ใช้ใหม่การตั้งค่า default_handler_class สามารถใช้ในการตั้งค่าได้ง่ายขึ้นที่กำหนดเอง 404 หน้า.
- การตั้งค่าโปรแกรมใหม่ autoreload, compiled_template_cache, static_hash_cache และ serve_traceback สามารถใช้ในการควบคุมลักษณะของแต่ละโหมดดีบัก.
- วิธีการใหม่และ RequestHandler.get_query_argument RequestHandler.get_body_argument และคุณลักษณะใหม่ HTTPRequest.query_arguments HTTPRequest.body_arguments และอนุญาตให้เข้าถึงการขัดแย้งโดยไม่ต้อง intermingling ผู้ที่มาจากสตริงแบบสอบถามกับผู้ที่มาจากร่างกายร้องขอ.
- RequestHandler.decode_argument และวิธีการที่เกี่ยวข้องในขณะนี้ยก HTTPError (400) แทน UnicodeDecodeError เมื่ออาร์กิวเมนต์ไม่สามารถถอดรหัส.
- RequestHandler.clear_all_cookies ตอนนี้ยอมรับข้อโต้แย้งโดเมนและเส้นทางเช่นเดียวกับ clear_cookie.
- ตอนนี้มันเป็นไปได้ที่จะระบุขนย้ายโดยใช้ชื่อเมื่อใช้ระดับ URLSpec.
- การใช้งานในขณะนี้ยอมรับ tuples 4 ระบุชื่อพารามิเตอร์ (ซึ่งก่อนหน้านี้ต้องสร้างวัตถุ URLSpec แทน tuple ก).
- แก้ไขข้อผิดพลาดไม่ถูกต้องเมื่อวิธีการจัดการค่าตอบแทนอื่นที่ไม่ใช่หรือไม่ในอนาคตได้.
- ข้อยกเว้นจะไม่ถูกบันทึกไว้สองครั้งเมื่อใช้ทั้ง @asynchronous และ @ gen.coroutine.
มีอะไรใหม่ ในเวอร์ชัน 3.1:
- รอบอ้างอิงจำนวนมากได้รับการหักขึ้นตลอดทั้งแพคเกจที่ช่วยให้ การเก็บขยะที่มีประสิทธิภาพมากขึ้นในการ CPython.
- Silenced ข้อความเข้าสู่ระบบบางอย่างเมื่อการเชื่อมต่อจะเปิดและปิดทันที (นั่นคือการสแกนพอร์ต) หรือสถานการณ์อื่น ๆ ที่เกี่ยวข้องกับการเชื่อมต่อปิด.
- speedups ขนาดเล็กต่างๆ: HTTPHeaders ฟื้นฟูกรณีที่พร็อกซี่ UIModule วัตถุ precompile regexes บาง .
มีอะไรใหม่ ในรุ่น 3.0.2:
- tornado.auth.TwitterMixin ตอนนี้เริ่มต้นที่รุ่น 1.1 ของ API ทวิตเตอร์แทนรุ่น 1.0 ซึ่งจะถูกยกเลิกในวันที่ 11 มิถุนายนนอกจากนี้ยังมีตอนนี้ใช้ HTTPS เมื่อพูดคุยกับทวิตเตอร์.
- แก้ไขการรั่วไหลของหน่วยความจำที่อาจเกิดขึ้นกับห่วงโซ่ยาวของ gen.coroutine หรือฟังก์ชั่น gen.engine.
มีอะไรใหม่ ในรุ่น 3.0:
- `` อาร์กิวเมนต์ callback`` วิธีการไม่ตรงกันหลาย ตอนนี้ตัวเลือกและวิธีการเหล่านี้กลับ `.Future` คำว่า `โมดูล tornado.gen` ตอนนี้เข้าใจ` `Futures`` และวิธีการเหล่านี้สามารถนำมาใช้โดยตรงโดยไม่ต้องห่อ` .gen.Task`.
- ฟังก์ชั่นใหม่ .IOLoop.current` `` กลับ .IOLoop` ที่ทำงานอยู่บนเธรดปัจจุบัน (เมื่อเทียบกับ `.IOLoop.instance` ซึ่งผลตอบแทนหัวข้อที่เฉพาะเจาะจง (ปกติหัวข้อหลักของ) IOLoop.
- ระดับใหม่ `tornado.netutil.Resolver` มีอินเตอร์เฟซที่ไม่ตรงกันในการแก้ปัญหา DNS.
- ระดับใหม่ `` tornado.process.Subprocess` wraps subprocess.Popen` ด้วย `เข้าถึง .PipeIOStream` เพื่อเด็กอธิบายไฟล์.
- `.IOLoop` ตอนนี้มีการกำหนดค่าคงที่` & # x3c; & # .Configurable.configure x3e; `วิธีการเช่นเดียวกับ` .AsyncHTTPClient` ซึ่งสามารถใช้ในการเลือก `.IOLoop` การดำเนินการอื่นที่ไม่ใช่ ค่าเริ่มต้น. * `.IOLoop` ขณะนี้คุณสามารถเลือกใช้นาฬิกาเนื่องถ้ามี.
มีอะไรใหม่ ในรุ่น 2.4.1:
- คงที่หน่วยความจำรั่วใน tornado.stack_context ว่าเป็น โดยเฉพาะอย่างยิ่งกับการทำงานมีแนวโน้มที่ยาว @ ฟังก์ชั่น gen.engine.
- tornado.auth.TwitterMixin ตอนนี้ทำงานเกี่ยวกับงูหลาม 3.
- แก้ไขข้อผิดพลาดในการที่ IOStream.read_until_close กับการเรียกกลับบางครั้งจะสตรีมมิ่งผ่านก้อนสุดท้ายของข้อมูลไปยังโทรกลับสุดท้ายแทนการโทรกลับสตรีมมิ่ง.
มีอะไรใหม่ ในรุ่น 2.4:
- คงหลาม 3 ข้อบกพร่องใน tornado.auth, tornado.locale และ tornado.wsgi.
- OAuthMixin ตอนนี้ยอมรับ & quot; OOB & quot; เป็น callback_uri.
- OpenIDMixin ตอนนี้ยังส่งกลับสนาม claimed_id สำหรับผู้ใช้.
- ลำดับปิด tornado.platform.twisted คือตอนนี้เข้ากันได้มากขึ้น.
- การตั้งค่าการเข้าสู่ระบบที่ใช้ในการ tornado.options อยู่ในขณะนี้มากขึ้นอดทนของที่ไม่ใช่ ASCII สตริงไบต์.
มีอะไรใหม่ ในรุ่น 2.3:
- `tornado.httpclient.HTTPClient` ขณะนี้สนับสนุนสร้างเดียวกัน ข้อโต้แย้งคำหลักเป็น `AsyncHTTPClient`.
- `` โต้แย้งคำ max_clients`` จะ `AsyncHTTPClient.configure` ตอนนี้ทำงาน.
- `tornado.simple_httpclient` นี้รองรับการ OPTIONS``` `` `และ PATCH`` HTTP วิธี.
- `tornado.simple_httpclient` จะดีกว่าเกี่ยวกับการปิดซ็อกเก็ตมันแทนการออกจากพวกเขาสำหรับการเก็บขยะ.
- `tornado.simple_httpclient` อย่างถูกต้องตรวจสอบใบรับรอง SSL สำหรับ URL ที่มีตัวอักษร IPv6 (ข้อผิดพลาดนี้ได้รับผลกระทบหลาม 2.5 และ 2.6).
- `tornado.simple_httpclient` ไม่รวมถึงการรับรองความถูกต้องข้อมูลประจำตัวพื้นฐานใน` `หัว Host`` เมื่อข้อมูลประจำตัวของผู้ที่สกัดจาก URL ไป.
- `tornado.simple_httpclient` ไม่ปรับเปลี่ยนส่วนหัวพจนานุกรมโทรจัดซึ่งก่อให้เกิดปัญหาเมื่อเปลี่ยนเส้นทางต่อไปนี้.
- `tornado.curl_httpclient` ขณะนี้สนับสนุนใบรับรอง SSL ลูกค้า (ใช้เดียวกัน` `client_cert`` และ` `ข้อโต้แย้ง client_key`` เป็น` tornado.simple_httpclient`.
มีอะไรใหม่ ในรุ่น 2.2.1:
- แก้ไขการรักษาความปลอดภัย:
- `tornado.web.RequestHandler.set_header` ในขณะนี้อย่างถูกต้อง sanitizes ค่าที่ป้อนเข้าเพื่อป้องกันหัวฉีดแยกการตอบสนองและอื่น ๆ (มันมีความพยายามเสมอที่จะทำเช่นนี้ แต่การตรวจสอบไม่ถูกต้อง) หมายเหตุที่เปลี่ยนเส้นทางที่มาส่วนใหญ่ของข้อบกพร่องดังกล่าวมีการป้องกันโดยการตรวจสอบแยกต่างหากใน `RequestHandler.redirect`.
- แก้ไขข้อผิดพลาด:
- การตั้งค่าการเข้าสู่ระบบสีใน `tornado.options` เข้ากันได้กับงูหลาม 3.2.3 (3.3).
มีอะไรใหม่ ในรุ่น 2.2:.
- การปรับปรุงและขยายการสนับสนุน WebSocket
- ปรับปรุงการทำงานร่วมกันในสะพานบิด / ทอร์นาโด.
- ข้อผิดพลาดในขณะนี้แม่แบบสร้างร่องรอยสแต็คที่ดีกว่า.
- การจัดการที่ดีขึ้นยกเว้นใน `tornado.gen`.
มีอะไรใหม่ ในรุ่น 2.1.1:
- แก้ไขข้อผิดพลาด:
- การจัดการการเชื่อมต่อคงปิดด้วย `` epoll`` (เช่นลินุกซ์) `` IOLoop`` ก่อนหน้านี้การเชื่อมต่อปิดอาจจะปิดตัวลงเร็วเกินไปที่ประจักษ์ส่วนใหญ่มักจะเป็น & quot; ปิดให้บริการสตรีม & quot; ข้อยกเว้นใน `` SimpleAsyncHTTPClient``.
- คงกรณีที่การตอบสนอง chunked อาจจะปิดก่อนเวลาอันควรนำไปสู่การส่งออกตัดทอน.
- `` IOStream.connect`` ขณะนี้รายงานข้อผิดพลาดขึ้นอย่างต่อเนื่องผ่านการเข้าสู่ระบบและเรียกกลับปิด (การเชื่อมต่อนี้มีผลต่อการเช่น localhost บน FreeBSD).
- `` IOStream.read_bytes`` อีกครั้งยอมรับทั้ง `` int`` และ `` ข้อโต้แย้ง long``.
- `` PeriodicCallback`` ไม่ทำงานซ้ำ ๆ เมื่อ `` ซ้ำ IOLoop`` เสร็จสมบูรณ์ได้เร็วกว่าความละเอียดของ `` time.time () ที่ `` (ส่วนใหญ่เป็นปัญหาใน Windows).
มีอะไรใหม่ ในรุ่น 2.1.0:
- Diginotar ได้ถูกลบออกจากค่าเริ่มต้นไฟล์ใบรับรองแคลิฟอร์เนีย ใช้โดย `SimpleAsyncHTTPClient`
- เพื่ออำนวยความสะดวกบางสถานการณ์หลายกระบวนการที่ทันสมัย, `` HTTPServer`` มีวิธีการใหม่ `` add_sockets`` และรหัสซ็อกเก็ตเปิดใช้ได้แยกเป็น `tornado.netutil.bind_sockets`.
- การสนับสนุนสำหรับคุกกี้ที่เชื่อถือเขียนโดยก่อน 1.0 รุ่นของพายุทอร์นาโดได้ถูกลบออก.
- การสนับสนุนของ Windows ได้รับการปรับปรุง.
มีอะไรใหม่ ในรุ่น 2.0.0:
- การเปลี่ยนแปลงที่สำคัญ:
- การส่งออกแม่แบบหนีโดยอัตโนมัติตามค่าเริ่มต้น.
- การดำเนิน AsyncHTTPClient เริ่มต้นอยู่ในขณะนี้ simple_httpclient.
- Python 3.2 ได้รับการสนับสนุนในขณะนี้.
- ความเข้ากันได้ย้อนกลับ:
- autoescaping แม่แบบถูกเปิดใช้งานโดยค่าเริ่มต้น การประยุกต์ใช้งานการปรับรุ่นจากการเปิดตัวก่อนหน้านี้พายุทอร์นาโดจะต้องปิดการใช้งาน autoescaping หรือปรับตัวเข้ากับแม่ของพวกเขาที่จะทำงานกับมัน สำหรับการใช้งานมากที่สุดวิธีที่ง่ายที่สุดที่จะทำนี้คือการผ่าน autoescape ไม่มี = เพื่อสร้างแอพลิเคชัน.
- การประยุกต์ใช้งานที่ต้องการที่จะดำเนินการโดยใช้ curl_httpclient แทน simple_httpclient สามารถทำได้โดยการเรียก AsyncHTTPClient.configure (& quot; tornado.curl_httpclient.CurlAsyncHTTPClient & quot;) ที่จุดเริ่มต้นของกระบวนการ ผู้ใช้ 2.5 ของงูใหญ่อาจจะต้องการที่จะใช้เป็น curl_httpclient simple_httpclient สนับสนุนเฉพาะ SSL บน Python 2.6 +.
- หลาม 3 การทำงานร่วมกันที่เกี่ยวข้องกับการเปลี่ยนแปลงหลายอย่างตลอด codebase เพื่อให้ผู้ใช้งานได้รับการสนับสนุนในการทดสอบการใช้งานของพวกเขาได้อย่างทั่วถึงมากขึ้นกว่าปกติเมื่ออัพเกรดเป็นรุ่นนี้.
- การเปลี่ยนแปลงอื่น ๆ ในรุ่น 4.1:
- แม่แบบการสนับสนุนแนวทางใหม่ ๆ : - {% autoescape ... }% ในการควบคุมพฤติกรรมหลบหนี - {% ดิบ ... }% สำหรับการส่งออกค่า Escape - {โมดูล% ... %} โทร UIModules * {% โมดูล แม่แบบ (เส้นทาง ** kwargs)}% ในขณะนี้อาจจะใช้ในการเรียกแม่แบบอีกด้วย namespace อิสระ.
- ทั้งหมดเรียกกลับ iostream ตอนนี้ทำงานโดยตรงบน IOLoop ผ่าน add_callback.
- HTTPServer ขณะนี้สนับสนุน IPv6 ที่มีให้บริการ ปิดการใช้งานผ่านครอบครัว = socket.AF_INET เพื่อ HTTPServer.bind ().
- HttpClient ขณะนี้สนับสนุน IPv6 กำหนดผ่าน allow_ipv6 = บูลใน HttpRequest allow_ipv6 ค่าเริ่มต้นที่ผิดพลาดใน simple_httpclient และเป็นความจริงใน curl_httpclient.
- RequestHandlers สามารถใช้การเข้ารหัสอื่นที่ไม่ใช่ UTF-8 สำหรับพารามิเตอร์การค้นหาโดยเอาชนะ decode_argument ().
- การปรับปรุงประสิทธิภาพโดยเฉพาะอย่างยิ่งสำหรับการใช้งานที่ใช้จำนวนมากของ IOLoop timeouts.
- HTTP ตัวเลือกวิธีการไม่ต้องโทเค็น XSRF.
- เอาท์พุท JSON (RequestHandler.write (กิงดิค)) ตอนนี้กำหนดชนิดเนื้อหาไปยังโปรแกรมประยุกต์ / JSON.
- การคำนวณ etag ตอนนี้สามารถปรับแต่งหรือปิดใช้งานโดยเอาชนะ RequestHandler.compute_etag.
- ตัวแปรสภาพแวดล้อม USE_SIMPLE_HTTPCLIENT ไม่สนับสนุน ใช้ AsyncHTTPClient.configure แทน.
มีอะไรใหม่ ในรุ่น 1.2.1:
- ข่าวประชาสัมพันธ์ฉบับนี้มีเพียงสองการเปลี่ยนแปลงขนาดเล็กเมื่อเทียบกับรุ่น 1.2:
- FacebookGraphMixin ได้รับการปรับปรุงในการทำงานกับการเปลี่ยนแปลงล่าสุดกับ API Facebook.
- Running & quot; setup.py ติดตั้ง & quot; จะไม่พยายามที่จะติดตั้ง pycurl โดยอัตโนมัติ นี้ไม่ได้ทำงานได้ดีบนแพลตฟอร์มที่วิธีที่ดีที่สุดในการติดตั้ง pycurl จะผ่านสิ่งที่ต้องการ apt-get แทน easy_install นี่คือการอัพเกรดที่สำคัญถ้าคุณกำลังใช้ FacebookGraphMixin แต่อย่างอื่นก็สามารถปฏิเสธได้อย่างปลอดภัย.
มีอะไรใหม่ ในรุ่น 1.2.0:
- ข่าวประชาสัมพันธ์ฉบับนี้รวมถึงการเปลี่ยนแปลงการรักษาความปลอดภัยย้อนกลับเข้ากันไม่ได้จาก เวอร์ชั่น 1.1.1.
- โปร่งใสเพื่อแทนที่ tornado.httpclient.AsyncHTTPClient กับการดำเนินการใหม่นี้คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม USE_SIMPLE_HTTPCLIENT = 1
- การเข้าสู่ระบบการร้องขอจะทำในขณะนี้โดยแอพลิเคชันมากกว่า RequestHandler พฤติกรรมการเข้าสู่ระบบอาจจะกำหนดเองโดยการเอาชนะ Application.log_request ในคลาสหรือโดยผ่าน log_function เป็นการตั้งค่าการใช้งาน.
มีอะไรใหม่ ในรุ่น 1.1.1:
- ทอร์นาโด 1.1.1 การรักษาความปลอดภัยเป็นไปข้างหลัง-INCOMPATIBLE การปรับปรุงที่แก้ไขช่องโหว่ XSRF.
มีอะไรใหม่ ในรุ่น 1.1:
- การเปลี่ยนแปลง:
- RequestHandler.async_callback และฟังก์ชั่นที่เกี่ยวข้องในชั้นเรียนอื่น ๆ ที่ไม่จำเป็นในกรณีส่วนใหญ่ (แม้ว่ามันจะไม่เป็นอันตรายเพื่อดำเนินการต่อ
- การใช้พวกเขา) ข้อยกเว้น uncaught ตอนนี้จะทำให้เกิดการร้องขอจะต้องปิดแม้ในโทรกลับ ถ้าคุณอยากรู้วิธีการทำงานนี้ให้ดูที่โมดูล tornado.stack_context ใหม่.
- โมดูล tornado.testing ใหม่ที่ประกอบด้วยการสนับสนุนสำหรับการทดสอบหน่วยไม่ตรงกันรหัส IOLoop ตาม.
- AsyncHTTPClient ได้รับการเขียนใหม่ (การดำเนินงานใหม่ที่สามารถใช้ได้เป็น AsyncHTTPClient2 ในทอร์นาโด 1.0; ทั้งสองชื่อได้รับการสนับสนุนสำหรับหลัง
- เข้ากันได้).
- โมดูล tornado.auth มีจำนวนการปรับปรุงรวมถึงการสนับสนุน OAuth 2.0 และ Facebook API กราฟและอัพเกรด Twitter และ Google เพื่อสนับสนุน OAuth 1.0a.
- โมดูล WebSocket จะกลับมาและสนับสนุนรุ่นล่าสุด (76) ของโปรโตคอล WebSocket โปรดทราบว่าอินเตอร์เฟซของโมดูลนี้จะแตกต่างจากโมดูล WebSocket ที่ปรากฏใน pre-1.0 รุ่นทอร์นาโด.
- RequestHandler.initialize วิธีการใหม่ () สามารถแทนที่ใน subclasses เพื่อให้ง่ายต่อการจัดการข้อโต้แย้งจาก URLSpecs ลำดับของวิธีการที่เรียกว่าในระหว่างการเตรียมการจัดทำเอกสารที่ http://tornadoweb.org/documentation#overriding-requesthandler-methods ก
- get_argument () และวิธีการที่เกี่ยวข้องในขณะนี้ทำงานในการร้องขอ PUT นอกเหนือไปจากการโพสต์.
- โมดูล HttpClient ขณะนี้สนับสนุนพร็อกซี HTTP.
- HTTPServer เมื่อมีการเรียกใช้ในโหมด SSL, จับมือ SSL อยู่ในขณะนี้ไม่ปิดกั้น.
- ขนาดเล็กหลายแก้ไขข้อผิดพลาดและการปรับปรุงเอกสาร
- บันทึกย้อนกลับเข้ากันได้:
- ขณะที่ผู้ใช้ส่วนใหญ่ของพายุทอร์นาโดไม่ควรมีการจัดการกับโมดูล stack_context โดยตรงผู้ใช้สระว่ายน้ำด้ายคนและโครงสร้างที่คล้ายกันอาจต้องใช้ stack_context.wrap และ / หรือ NullContext เพื่อหลีกเลี่ยงการรั่วไหลของหน่วยความจำ.
- AsyncHTTPClient ใหม่ยังคงทำงานร่วมกับรุ่น libcurl 7.16.x แต่มีประสิทธิภาพดีขึ้นเมื่อทั้งสอง libcurl และ pycurl อย่างน้อยรุ่น 7.18.2.
- การทำธุรกรรม OAuth เริ่มต้นภายใต้รุ่นก่อนหน้าของโมดูลรับรองความถูกต้องไม่สามารถเสร็จสมบูรณ์ภายใต้โมดูลใหม่ นี้ใช้เฉพาะกับกระบวนการอนุญาตเริ่มต้น; ครั้งหนึ่งเคยเป็นสัญลักษณ์ที่ได้รับอนุญาตออกโทเค็นที่ทำงานร่วมกับรุ่นใดอย่างหนึ่ง.
ต้องการ
- งูหลาม 2.6 หรือสูงกว่า
ความคิดเห็นที่ไม่พบ