Pylons 入門例項教程 表單和檔案上傳

2021-05-23 15:59:01 字數 1502 閱讀 5793

繼續延用上篇裡面的 hello 工程,在 hicontroller 裡新增 form 方法:

def form(self):

return render('/form.mako')

加完以後可以訪問:http://127.0.0.1:5000/hi/form,會報錯。

server error,根據報錯內容大致就知道模板檔案不存在了。如果有其他錯誤,也可以通過這個頁面檢視,當然還有很強大的 debug 個功能哦。當然正式環境一般都是關閉這個功能的。這個,你懂得。。。

好吧,寫乙個表單的模板,只包含乙個簡單的文字框和提交按鈕示例。

再新增乙個 submit 方法來處理表單提交,

def submit(self):

return "hello, name: %s" % request.params['name']

request.params 包含了表單或者url提交的引數,建議 post 資料參照下面的上傳部分。想獲取更詳細的列表,可以檢視文件或者自己手動 dir()查閱。

下面嘗試一下檔案上傳,首先在 development.ini 新增乙個變數,用來存放檔案上傳後的資料夾。

upload_dir = %(here)s/upload

%(here) 啟動後 server 會替換到當前目錄位址,上面的位址就是當前路徑下的upload資料夾。

修改一下剛才的表單,加乙個 file 上傳,注意 multipart/form-data 這句,上傳必須。

修改 submit 方法,新增檔案內容:

def submit(self):

name = request.post['name']

myfile = request.post['file']

import os

import shutil

from pylons import config

local_file = open(local_name, "wb")

shutil.copyfileobj(myfile.file, local_file)

myfile.file.close()

local_file.close()

return "hello, name: %s, upload: %s" % (name, myfile.filename)

裡面 import 部分這裡僅僅為了示例,正式的**請放入程式開頭部分,post 內容可以從 request.post 獲取。

smallfish@debian:~/workspace/python/hello$ mkdir upload
ok,到這裡程式部分都已經修改完成。重新訪問一下:http://127.0.0.1:5000/hi/form

嘗試一下上傳,上傳後可以在 upload 資料夾下看到檔案了吧。。

當然這裡只是示例,還需要處理一下上傳的名字,防止有特殊符號哦。

awk例項教程

1.awk語法規則 awk 2.顯示最近登入的5個帳號 last n 5 awk root root root dmtsai root awk工作流程是這樣的 讀入有 n 換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,0則表示所有域,1表示第乙個域,n表示第n個域。預設域分隔符是 ...

CSS reflow例項教程

frame主要的動作有三個 構造frame,以建立物件樹 dom樹 reflow,以確定物件位置,或者www.cppcns.com是呼叫mozilla的layout 這裡是指原始碼的實現 繪製,以便物件能顯示在螢幕上 總的來說,reflow就是載入內容樹 在html中就是dom樹 和建立或更新fra...

php小偷例項教程

以 http mtv.8391.com 為例,偷取mtv名稱 歌手 路徑 1 對原 進行 分析 檢視其原檔案,判斷出呼叫mtv路徑的檔案 利用 檢視程式,取得 http mtv.8391.com yxwen.asp?id 3488頁面 3488為隨機,只是了解頁面 2 對要偷取的頁面進行 分析 ht...