W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
CherryPy是基于多線程概念設(shè)計的。 每次開發(fā)人員在CherryPy命名空間中獲取或設(shè)置值時,都會在多線程環(huán)境中完成。
cherrypy.request和cherrypy.response都是線程數(shù)據(jù)容器,這意味著您的應(yīng)用程序通過知道在運行時通過它們代理哪個請求來獨立地調(diào)用它們。
使用線程模式的應(yīng)用程序服務(wù)器不被高度重視,因為線程的使用被視為增加了由于同步要求而導(dǎo)致問題的可能性。
其他選擇包括 -
每個請求都由自己的Python進程處理。 在這里,可以認為服務(wù)器的性能和穩(wěn)定性更好。
在這里,接受新連接并將數(shù)據(jù)發(fā)送回客戶端是從請求過程異步完成的。 該技術(shù)以其效率而著稱。
CherryPy社區(qū)希望更靈活,并且可以感謝調(diào)度員的其他解決方案。 CherryPy 3提供了其他內(nèi)置調(diào)度程序,并提供了一種編寫和使用自己的調(diào)度程序的簡單方法。
在某些應(yīng)用程序中,URI與操作無關(guān),操作由資源上的服務(wù)器執(zhí)行。
例如, http://xyz.com/album/delete/10
URI包含客戶端希望執(zhí)行的操作。
默認情況下,CherryPy調(diào)度程序?qū)⒁韵铝蟹绞接成?-
album.delete(12)
上面提到的調(diào)度員是正確提到的,但可以通過以下方式獨立 -
http://xyz.com/album/10
用戶可能想知道服務(wù)器如何調(diào)度確切的頁面。 此信息由HTTP請求本身承載。 當(dāng)有來自客戶端到服務(wù)器的請求時,CherryPy看起來是最合適的處理程序,處理程序是URI所針對的資源的表示。
DELETE /album/12 HTTP/1.1
以下是調(diào)度所需方法的參數(shù)列表 -
讓我們舉一個例子來了解它是如何工作的 -
import random
import string
import cherrypy
class StringMaker(object):
@cherrypy.expose
def index(self):
return "Hello! How are you?"
@cherrypy.expose
def generate(self, length=9):
return ''.join(random.sample(string.hexdigits, int(length)))
if __name__ == '__main__':
按照下面給出的步驟獲取上述代碼的輸出 -
Step 1 - 將上述文件另存為tutRoutes.py 。
Step 2 - 訪問以下網(wǎng)址 -
http://localhost:8080/generate?length=10
Step 3 - 您將收到以下輸出 -
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: