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框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 表达开心快乐的文案大全100个
- 下一篇: python 清空文件夹_Python初