创建一个名为 studenttest 的项目与一个名为 student 的应用程序
django-admin startproject studenttest  python manage.py startapp student
打开 student/views.py 文件,创建 uploadimage()视图函数
def uploadimage(request): return render(request,"student/file.html")
打开 student/urls.py 文件,配置 url(注意这个最后面的,要记得添加,养成良好习惯)
url(r"^file/$",views.uploadimage),
在 templates/student/目录下创建模板 file.html。在模板中定义上传表单
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>表单内容</title>
</head>
<body><form method="post" action="/handleimage/" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="image"><br> <input type="submit" value="提交"> </form>
</body>
</html>

④打开 student/views.py 文件,创建 handle()视图函数,用于接收表单保存图片。request 对象的 FILES 属性用 于接收请求的文件,包括图片内容。
request.FILES.get(name)
通过<input>标签的 name 属性值获得图片对象。
对象.chunks()
返回图片对象的数据值,类型为生成器对象。若要获取所有数据内容,则需要进行
遍历处理。
对象.name
返回图片对象的文件名。
对象.file
获取的二进制数据
配置handle()视图函数的代码:
from django.conf import settings
from django.http import HttpResponse
from .models import PictrueInfo
def handle(request):image = request.FILES.get("image") # 图片名 image_name = image.name # 图片内容 image_content = image.chunks() # 写入文件 path = "%s/student/%s"%(settings.MEDIA_ROOT,image_name)with open(path,"wb") as fs: for temp in image_content: fs.write(temp)# 图片路径名写入数据库 PictrueInfo.objects.create(picture="student/%s"%image_name) return HttpResponse("OK")
打开 student/urls.py 文件,配置 url
url(r"^handleimage/$",views.handle),

运行服务器,在浏览器中(注:当选择文件后点击按钮上传图片即可)输入如下网址:

http://127.0.0.1:8000/file/

当然127.0.0.1也可以换成localhost

可在pycharm中的项目中检查图片是否上传成功  media>>student

接下来是在网页中显示图片,打开 student/views.py 文件,创建 showpic()视图函数

# 批量显示图片
def showpic(request): picturelist = PictrueInfo.objects.all() return render(request,"student/picture.html",{"picturelist":picturelist})
需要提醒的是,每操作完一个视图函数,都需要修改相应的url配置
打开 student/urls.py 文件,配置 url
url(r"^show/$",views.showpic),
在 templates/student/目录下创建模板 picture.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"> <title>批量显示图片</title>
</head>
<body>{% for picture in picturelist %} <img src="/static/media/{{ picture.picture }}" width="200px" height="150px"> {% endfor %}
</body>
</html>
运行服务器,点击编译器控制台中的如下网址http://127.0.0.1:8000,登陆后添加/show/,
即http://127.0.0.1:8000/show/
即可查看刚刚上传的图片一起显示了。


以上就是Django框架的一个小应用,有兴趣的朋友可以自行操作。

Django之自定义 form 表单上传图片相关推荐

  1. Django框架 之 Form表单和Ajax上传文件

    Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...

  2. 利用form表单上传图片,图片保存到本地,得到图片名字(后期可以将图片名字存进数据库)

    利用form表单上传图片,图片保存到本地,得到图片名字(后期可以将图片名字存进数据库) html部分:enctype="multipart/form-data" 一定要加! < ...

  3. 前端form表单上传图片等信息,python后端接收

    前端form表单上传图片等信息,python后端接收. 最近总需要做关于图片上传的东西.一直百度,这次想自己记录一下. HTML代码: <form class="box" a ...

  4. 3 django系列之Form表单在前端web界面渲染与入库保存

    author: 温柔易淡(Leo),欢迎技术交流与拍砖 preface 我们在前端写表单的时候,其实可以使用django自带的forms功能来实现,特别是在处理 修改已经存在数据 的场景特别好用,下面 ...

  5. antd自定义form表单控件

    用 getFieldDecorator 方法包裹的表单控件会自动添加 value (或由 valuePropName 指定的属性名) 和 onChange (或由 trigger 指定的属性名)属性, ...

  6. ios form表单上传图片

    1.使用微博开发的一个"发送带图片微博"的接口来测试,这是接口地址,这里面明确说明需要使用multipart/form-data格式提交图片.关于使用微博开放平台api.授权之类的 ...

  7. python表单管理系统_python3开发进阶-Django框架的Form表单系统和基本操作

    {% csrf_token %} 用户名 密码 {{ error_msg }}

  8. 框架生成的HTML修改,Django框架form表单验证 修改html标签的样式

    经过前面的学习,我们大致可以知道CharField.EmailField等等以Field结尾的方法,只能帮助我们对用户发来的信息做验证,不能生成html标签.字段本身自己虽然只做验证,但是我们可以通过 ...

  9. Django入门教程(八)Form表单

    有时候我们需要在前台用 get 或 post 方法提交一些数据,所以需要用到 html 表单的知识. 1.创建项目,选择File–>New project–>Django ①根据个人需要, ...

最新文章

  1. TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement.
  2. mysql创建函数1418_Mysql中创建函数报“ERROR 1418 ”的解决方法
  3. CentOS7中通过npm的方式安装Node-RED
  4. react提交数据到数据库_React型关系数据库事务
  5. Ant Design Pro v4 is Here
  6. 【leetcode】416. Partition Equal Subset Sum
  7. 一文读懂 K8s 持久化存储 | 凌云时刻
  8. 什么是软件研发费用定额?
  9. 【IC验证】Questasim使用指导
  10. springCloud 授权服务器
  11. Cadence Capture CIS / OrCAD Capture 原理图中显示封装“Show Footprint”的问题
  12. c语言 (3×3)矩阵转置
  13. <script>alert(1)</script>怎么在页面显示且不出现功能
  14. 简易验收管理系统的设计(php)
  15. 组合数学——Nim取子游戏 太有趣了
  16. (升级版)构建狂拽炫酷屌的MySQL监控平台
  17. GNSS原理及技术(二)——卫星定位原理
  18. 服装企业如何通过知识管理提升创新能力?
  19. 给图像添加噪声(椒盐噪声,高斯噪声)
  20. 线性箭头用css3,css3实现小箭头各种图形效果

热门文章

  1. 自己制作Chrome绿色版本。
  2. 在服务器上安装jdk
  3. windows11 显示文件后缀名
  4. 解决物理机为ubuntu与virtualbox客户机为windows10间剪切板不能用的问题
  5. “五小”成果技术报告 野外小队信息管理系统Ver1.00
  6. 使用STM32F4浮点运算(FPU)功能开启+使用DSP库
  7. 各位同意转载博文的善意,是否被恶意利用?文章被转载了,该不该收钱?
  8. IC测试原理-存储器测试
  9. 学习TDD:TDD的好处
  10. 操作系统-虚拟内存技术