700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Django之自定义 form 表单上传图片

Django之自定义 form 表单上传图片

时间:2023-11-17 12:54:49

相关推荐

Django之自定义 form 表单上传图片

创建一个名为 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 属性用 于接收请求的文件,包括图片内容。 配置handle()视图函数的代码:

from django.conf import settings from django.http import HttpResponse from .models import PictrueInfodef 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框架的一个小应用,有兴趣的朋友可以自行操作。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。