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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python协程框架_FastPy3.0 发布,高性能 python 协程web框架

發布時間:2023/12/31 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python协程框架_FastPy3.0 发布,高性能 python 协程web框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FastPy3.0 發布了,FastPy是python領域一個高性能的web框架,底層封裝gevent協程模型,使得python原生庫操作mysql或者http時自動變成異步模式,使用上又具有django、webpy的易用性特點。

本次版本更新增加了gevent協程模式下數據庫mysql連接池的使用例子,結合pymysql+gevent的特點,可以使得原本同步的mysql操作自動變為異步模式。對django、webpy等web開發讀者有一定的參考價值 。

用戶文檔:

1、啟動:

指定監聽端口即可啟動

python fastpy.py 8992

2、快速編寫cgi,支持運行時修改,無需重啟server

在fastpy.py同一目錄下

隨便建一個python 文件

例如:

example.py:#-*-?coding:utf-8?-*-

import?sys

#定義一個同名example類

#定義一個tt函數:

reload(sys)

sys.setdefaultencoding('utf8')

FastpyAutoUpdate=True

class?example():

def?tt(self,?request,?response_head):

#print?request.form

#print?request.getdic

#fileitem?=?request.filedic["upload_file"]

#fileitem.filename

#fileitem.file.read()

return?"ccb"+request.path

則訪問該函數的url為 http://ip:port/example.tt

修改后保存,即可訪問,無需重啟

FastpyAutoUpdate 屬性可控制需不需要熱部署

FastpyAutoUpdate=true 支持熱部署,修改無需重啟

FastpyAutoUpdate=false 則不支持熱部署,修改需要重啟

tt函數必須帶兩個參數

request:表示請求的數據 默認帶以下屬性

headers: 頭部 (字典)

form:? post參數,包括form表單 (字典)

getdic: url參數 (字典)

filedic: form表單中文件 (字典)

rfile: 原始http content內容? (字符串)

action: python文件名 (這里為example)

method: 函數方法??? (這里為tt)

command:? (get or post)

path: url (字符串)

http_version: http版本號 (http 1.1)

response_head: 表示response內容的頭部

例如如果要返回用gzip壓縮

則增加頭部

response_head["Content-Encoding"] = "gzip"

除了直接return作為response內容外

fastpy還支持 request.ret(res) 的方式返回內容,以支持異步調用

例如:def?readfile(request,?response_head):

content?=?open("a.txt").read()

request.ret(content)

class?example():

def?tt(self,?request,?response_head):

#do?some?thind?prepare

thread.start_new_thread(readfile,(request,response_head))

新起一個線程去讀文件,然后原來的處理線程就可以繼續去處理別的請求了,

等到文件讀完調用request.ret(res)返回給客戶端

在WithGevent目錄里 我們提供了協程方式,

將同步的調用變成異步(為什么這樣讀者可以查詢gevent spawn原理,

里面提供協程下轉發http和數據庫連接池的例子)

3、支持超大文件上傳下載

默認靜態文件(包括html,js、css、圖片、文件等)放在static文件夾下

html和js、css會自動壓縮加速

例如把a.jpg放到static文件夾下

訪問的url為 http://ip:port/static/a.jpg

支持etag 客戶端緩存功能

(server 使用sendfile進行文件發送,不占內存且快速)

4、支持網頁模板編寫

創建一個模板 template.html

$title

$contents

則對應的函數:def?template(request,response_head):

t?=?Template(file="template.html")

t.title??=?"my?title"

t.contents??=?"my?contents"

return?str(t)

模板實現使用了python最快速Cheetah開源模板,

性能約為webpy django thinkphp等模板的10倍以上:

http://my.oschina.net/whp/blog/112296

5、支持http/https透明代理

python proxy.py 8995

啟動后再瀏覽器配置代理即可使用,可以彌補nginx 不支持https代理的不足

總結

以上是生活随笔為你收集整理的python协程框架_FastPy3.0 发布,高性能 python 协程web框架的全部內容,希望文章能夠幫你解決所遇到的問題。

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