Django Admin实现上传图片校验功能
Django 为未来的开发人员提供了许多功能:一个成熟的标准库,一个活跃的用户社区,以及 Python 语言的所有好处。虽然其他 Web 框架也声称能提供同样的内容,但 Django 的独特之处在于它内置了管理应用程序 —— admin。
admin 提供了开箱即用的高级 Create-Read-Update-Delete (CRUD) 功能,减少了重复工作所需的时间。这是许多 Web 应用程序的关键所在,程序员可以在开发时快速浏览他们的数据库模型;非技术最终用户可以在部署时使用 admin 添加和编辑站点内容。
我的 models里有个ImageField字段,用来保存用户头像,希望通过Django Admin上传时校验头像大小,如果太大就报错,并且不保存。
网上有不少方法,有的通过第三方软件实现,有的通过自己写form验证,我觉得太复杂了,本身的要求也不高,只想要最简单的方法。
下面的方法是通过覆盖 admin.ModelAdmin 的 save_model()来校验图片大小,如果图片大于20K,就报错并且不保存:
from django.contrib import messages class YourModeAdmin(admin.ModelAdmin): ... def save_model(self, request, obj, form, change): #不保存大图片 if obj.picture and obj.picture.size > 20480: messages.set_level(request, messages.ERROR) messages.error(request, 'The picture\'s too large. It\'s supposed smaller than 20K.') else: obj.save()
最后show一下实现好的django网站,感谢 andrew liu 的在线教程:
以上内容给大家介绍了Django Admin实现上传图片校验功能的相关知识,希望对大家以上帮助!
相关推荐
-
Django实现图片文字同时提交的方法
本文实例讲述了Django实现图片文字同时提交的方法.分享给大家供大家参考.具体分析如下: jQuery为我们网站开发解决了很多问题,使我们的网站用户体验大大的提高了.举个简单的例子,我们用AJAX技术来实现对表单的异步提交,使用户在体验上有了很大的改观,用户在提交数据的同时还可以干一些其他的事情. 不过,今天在开发中遇到一个特别头痛的问题,刚开始不知道,以为可以实现,纠结了将近4个小时之久,但结果很是令人失望. 问题是这样的:为了提高用户体验,我决定使用AJAX异步提交,于是我用jQuery的
-
go语言实现将重要数据写入图片中
原理:将数据的二进制形式写入图像红色通道数据二进制的低位 只支持png格式的输出 写入数据 go run shadow.go -in="c.jpg" -data="hide me" -out="out.png" 读取数据 go run shadow.go -in="out.png" 复制代码 代码如下: package main import ( "errors" "flag&qu
-
golang image图片处理示例
本文实例讲述了golang image图片处理方法.分享给大家供大家参考,具体如下: golang处理图片挺简单的,我是过功能挺简单的,没有过一个缩略图方法. 复制代码 代码如下: package main import ( "fmt" "os" "image" "image/color" "image/draw" "image/jpeg"
-
golang实现http服务器处理静态文件示例
本文实例讲述了golang实现http服务器处理静态文件的方法.分享给大家供大家参考,具体如下: 新版本更精简: 复制代码 代码如下: package main import ( "flag" "log" "net/http" "os" "io" "path" "strconv" ) var dir string
-
go语言实现抓取高清图片
看到有很多python 的,然后写了个go 的,可以抓取高清图片 getp.go 复制代码 代码如下: package main import ( "io/ioutil" "log" "net/http" "os" "regexp" "strconv" "strings" "sync"
-
golang守护进程用法示例
本文实例讲述了golang守护进程用法.分享给大家供大家参考,具体如下: 用node写了一个socket后台服务,可是有时候会挂,node一个异常就game over了,所以写了一个守候. 复制代码 代码如下: package main import ( "log" "os" "os/exec" "time" ) func main() { lf,
-
golang使用sort接口实现排序示例
本文实例讲述了golang使用sort接口实现排序的方法.分享给大家供大家参考,具体如下: 今天看见群里再讨论排序的sort.Interface的实现,有童鞋一直搞不定,我就上手了一下,哦耶搞定了,代码放在这里. 其实很简单sort.Interface借口有三个方法,给自己的struct实现这三个方法,然后用将自己的结构体传给sort.Sort方法就排序完成. 当然sort包也有几个常用的方法sort.Float64Slice sort.IntSlise sort.StringSlise,呵呵
-
golang基于websocket实现的简易聊天室程序
本文实例讲述了golang基于websocket实现的简易聊天室.分享给大家供大家参考,具体如下: 先说点无关的,最近忙于工作没有更新博客,今天休息顺便把golang websocket研究了一下,挺好玩的,写了一个聊天室,分享给大家. websocket包 : code.google.com/p/go.net/websocket 文档 : http://go.pkgdoc.org/code.google.com/p/go.net/websocket 首先安装websocket包 复制代码 代码
-
Go语言图片处理和生成缩略图的方法
本文实例讲述了Go语言图片处理和生成缩略图的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "fmt" "os" "image" "image/color" "image/draw" "image/jpeg" ) func main() { f1, err := os
-
GO语言实现批量压缩图片和水印
前段时间想做个图片站,就用手机照了很多相片,但是要一个个用PS去压缩修改尺寸太麻烦了.最后想到了用golang去实现,算是边学边练吧.其中用到了github.com/nfnt/resize这个第三方库,仅仅支持JPG图片格式. 复制代码 代码如下: package main import ( "fmt" "github.com/nfnt/resize" "image" "image/draw"
-
go语言读取json并下载高清妹子图片
学了一天golang,一边看文档一边写的go读取分析json并下载图片 json api为爱壁纸HD mac 1920x1200版本,高清妹子图 总结:go+json=shit package main import ( "fmt" "io" "io/ioutil" "net/http" "os" "path/filepath" "strconv" //"e
-
golang实现通过smtp发送电子邮件的方法
本文实例讲述了golang实现通过smtp发送电子邮件的方法.分享给大家供大家参考,具体如下: 今天写了一个公司的邮件发送后台服务,php只需要把邮件存入数据库,然后golang写的mailservice就会吧邮件发送出去.这个公司的代码就不发出来的,以为带有公司的业务逻辑,我把代码整理了一下发布出来供大家参考.呵呵 复制代码 代码如下: package main import ( "fmt" "net/mail" "net/smt
-
Django中实现点击图片链接强制直接下载的方法
本文实例讲述了Django中实现点击图片链接强制直接下载的方法.分享给大家供大家参考.具体分析如下: 当用户点击图片连接时,默认为在浏览器中直接开打图片,这段代码可以让图片链接变成下载 这段代码也非常适合下载大文件,基本不会消耗内存,每次只读取一部分数据到内存,然后提供下载 def Download(request): def readFile(fn, buf_size=262144): f = open(fn, "rb") while True: c = f.read(buf_siz
随机推荐
- 利用百度地图API获取当前位置信息的实例
- ThinkPHP多表联合查询的常用方法
- python连接mysql实例分享
- SQLSERVER Pager store procedure分页存储过程
- 九招技巧让你更高效地使用Outlook的图文教程
- 奇趣实用网站收集帖 转载
- windows liunx两个系统修改默认启动项
- 上周方法病毒来源竟然为ad.pchome.net原来被挂马
- 无法使用GHOST及避免出现A:\GHOSTERR.TXT的解决方法
- 一行代码实现纯数据json对象的深度克隆实现思路
- Java/JS获取flash高宽的具体方法
- php 网页游戏开发入门教程一(webgame+design)
- 使用WordPress发送电子邮件的相关PHP函数用法解析
- Python urllib、urllib2、httplib抓取网页代码实例
- C#线程间不能调用剪切板的解决方法
- C++中Operator类型强制转换成员函数解析
- jQuery获取单击节点对象的方法
- js下用层来实现select的title提示属性
- 传奇完全私服修改方案
- C#实现简单加减乘除计算器