前面一篇写了上传到Flask后台,但是我不熟悉Flask,原先想学习一下,据说是轻量级。

但是我发现,学习会浪费我大量的时间,因为我并不是以这个为生的,我的目标只是要完成功能,让我自己能尽早使用起来,而且用户只有我一个,因此还是回到Django吧。

相对来说,我更熟悉Django,而且Django的文档真的很齐全,查什么东西都很方便,很快就可以把功能完成。

前台的JS代码基本上差不多,唯一需要考虑的是注意Django的MEDIA_URL, MEDIA_ROOT,我搞懂这些花了点时间。

代码片段如下:

在JS中,我把图片数据post到pasteupload/这个地址

 x.open('POST', '/ss9/pasteupload/');
x.send(BlobFile);

在Django的app中的 url.py中表明用paste_upload方法处理。

 urlpatterns = patterns('ss9.views',
url(r'^$', 'index'),
url(r'^examples/(?P<ex_name>\w+)/$', 'show_example' ),
4 url(r'^pasteupload/$', 'paste_upload'),
url(r'^addmodifynode/$', 'add_modify_node'),
)

在view中,代码还没有做出错处理。因为还没有想好如何处理,是返回一个错误的状态给client端呢,还是返回一个失败的图像地址给client端? 暂时还是以完成功能为主,专业的程序员可不要学我这种业余人士的做法哈。

 from django.http import HttpRequest, HttpResponse, Http404
from django.shortcuts import render_to_response, get_object_or_404
from ss9.models import *
from tinynote.settings import MEDIA_ROOT
import datetime def paste_upload(request):
if request.body:
print len(request.body)
imgdata = request.read() now = datetime.datetime.now()
fname = "pasted_image_" + now.strftime("%Y%m%d%H%M%S") + ".png" file = open( MEDIA_ROOT + "/image/paste_image/" + fname, 'wb')
file.write(imgdata)
file.close() imgsrc = "/media/image/paste_image/" + fname
return HttpResponse( imgsrc, content_type='application/text')

Django处理raw data的方式是通过request.body 和 request.read() 。而正常的form是通过request.POST['name'] 这样来获得的。

最新文章

  1. CSSText属性批量修改样式
  2. maven buid 导出项目依赖的jar包问题
  3. hadoop常用命令
  4. NSDate 时间比较...等
  5. hdu4609 3-idiots
  6. Redis简介及3.0.2编译安装
  7. SOA之(4)——服务实现的途径
  8. 20个 Unix/Linux 命令技巧
  9. 存储过程--表变量和while简单运用
  10. lua迭代器和仿制药for
  11. swfupload多文件上传[附源码]
  12. 【AtCoder】ARC071
  13. 转载 用Python实现设计模式——工厂模式
  14. 利用cookies跳过登陆验证码
  15. Git 配置命令设置
  16. listView 解决焦点冲突问题 item项和子控件之间的冲突
  17. linux磁盘空间查看inode
  18. 【Zookeeper】源码分析之Watcher机制(二)之WatchManager
  19. linux 101 hacks 4stat diff ac
  20. VMware12 中安装MS-DOS 7.10

热门文章

  1. SDAutoLayout的使用
  2. (转)Oracle分区表和索引的创建与管理
  3. HttpSampler进行模拟webservice接口
  4. Java中的强制转换
  5. MongoDB 学习笔记(五):固定集合、GridFS文件系统与服务器端脚本
  6. JS 输名字随机弹出
  7. JS 100内与7相关的数
  8. BZOJ 2527 [POI2011]MET-Meteors (整体二分+树状数组)
  9. Jenkins持续构建打包后端服务流程详解
  10. 04springMVC数据类型转换