hi-nginx會自動處理表單,是以,在hi.py架構裡,要做的就是直接使用這些資料。
表單資料一般用GET和POST方法送出。hi-nginx會把這些資料解析出來,放在form成員變量裡。對python來說,要做的就是使用has_form和get_form方法取出想要的資料。
例如路由如下:
@app.route('^/form/?$',['GET','POST'])
def form(req,res,param):
name='None'
if req.has_form('name'):
name=req.get_form('name')
res.content('{}={}'.format('name',name))
res.status(200)
上面的路由表示可以使用get和post兩種方法向/form送出名為name的資料。可以用curl測試下:
curl -i http://localhost:8080/form?name=123
或者
curl -i -d 'name=123' http://localhost:8080/form

hi.py處理表單的方式就是這麼直接簡單。
以上路由還可以直接處理檔案上傳,隻需把name了解為上傳檔案的臨時位址就可以了:
echo 'test upload file' > name.file
curl -i -F'[email protected]' http://localhost:8080/form
上圖表示當我們把檔案name.file上傳給/form時,該檔案會被暫時儲存在hi-nginx安裝目錄下的temp目錄中,檔案名為temp/94ffcfe29b03c0c7368a2fdd842d54ca.file。是以,我們要做的僅僅是把該檔案移動到想要的位址去就行了。
因為檔案有大小,伺服器也會對檔案大小做出限制,是以最好是使用nginx的client_max_body_size,比如
client_max_body_size 100k;
指令限制檔案上傳的大小限制。