Pylons 入门实例教程 – 表单和文件上传
来源:互联网 发布:天猫魔盒如何安装网络 编辑:程序博客网 时间:2024/05/17 09:16
继续上一篇《Pylons 入门实例教程 – Hello》,现在开始讲在 Pylons 里如何提交表单和上传文件。
继续延用上篇里面的 hello 工程,在 HiController 里添加 form 方法:
def form(self): return render('/form.mako')
加完以后可以访问:http://127.0.0.1:5000/hi/form,会报错。
Server Error,根据报错内容大致就知道模板文件不存在了。如果有其他错误,也可以通过这个页面查看,当然还有很强大的 Debug 个功能哦。当然正式环境一般都是关闭这个功能的。这个,你懂得。。。
好吧,写一个表单的模板,只包含一个简单的文本框和提交按钮示例。
<form action="/hi/submit" method="post">name: <input type="text" name="name" /><br /><input type="submit" value="submit" /></form>
再添加一个 submit 方法来处理表单提交,
def submit(self): return "hello, name: %s" % request.params['name']
request.params 包含了表单或者URL提交的参数,建议 POST 数据参照下面的上传部分。想获取更详细的列表,可以查看文档或者自己手动 dir()查阅。
下面尝试一下文件上传,首先在 development.ini 添加一个变量,用来存放文件上传后的文件夹。
[app:main]upload_dir = %(here)s/upload
%(here) 启动后 server 会替换到当前目录地址,上面的地址就是当前路径下的upload文件夹。
修改一下刚才的表单,加一个 file 上传,注意 multipart/form-data 这句,上传必须。
<form action="/hi/submit" method="post" enctype= "multipart/form-data">name: <input type="text" name="name" /><br />file: <input type="file" name="file" /><br /><input type="submit" value="submit" /></form>
修改 submit 方法,添加文件内容:
def submit(self): name = request.POST['name'] myfile = request.POST['file'] import os import shutil from pylons import config local_name = os.path.join(config['app_conf']['upload_dir'], myfile.filename) 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 获取。
config['app_conf']['upload_dir'] 就是刚才配置里 development.ini 定义的地址。这个目录需要自己手动创建哦。
smallfish@debian:~/workspace/python/hello$ mkdir upload
OK,到这里程序部分都已经修改完成。重新访问一下:http://127.0.0.1:5000/hi/form
尝试一下上传,上传后可以在 upload 文件夹下看到文件了吧。。
当然这里只是示例,还需要处理一下上传的名字,防止有特殊符号哦。
http://chenxiaoyu.org/blog/archives/306
- Pylons 入门实例教程 – 表单和文件上传
- Pylons 入门实例教程 – Hello
- Pylons 入门实例教程 – 数据库操作
- Pylons 入门实例教程 – cookie 和 session
- Pylons 入门实例教程 – 发布应用
- httpclient模拟表单上传参数和文件
- ajax提交表单和文件上传
- Pylons架构网站开发入门实例教程
- [go语言]同时上传表单字段和文件
- 使用Python Requests上传表单数据和文件
- servlet接受form表单d值和文件上传
- Ajax上传带有普通input和文件的表单Form
- html5表单和文件
- MVC和文件上传
- SpringMVC简单入门 源码jar包下载和文件上传
- SpringMVC简单入门 源码jar包下载和文件上传
- servlet文件上传2——复合表单提交(数据获取和文件上传)
- 文件上传和文件下载
- {reuseaddr, true}选项的使用
- 解决RealPlayer11崩溃的问题
- 现代软件工程系列 学生读后感 梦断代码 DTSlob (1)
- Pylons 入门实例教程 – Hello
- 吐血整理 Delphi系列书籍 118本(全)
- Pylons 入门实例教程 – 表单和文件上传
- Pylons 入门实例教程 – 数据库操作
- 现代软件工程系列 学生读后感 梦断代码 DTSlob (2)
- C++学习1
- Socket错误
- Pylons 入门实例教程 – cookie 和 session
- 一致性hash算法 - consistent hashin
- Pylons 入门实例教程 – 发布应用
- web.py 数据库操作指南