Using django upload images and display
Django展示图片
上传图片参考前两个,现在只考虑将图片返回到前端展示(同样只是用django,因为ajax等掌握不熟练XD,过几天一定要拿js重新完成一次这些功能!)
这个算是前两个(upload-files-by-django part1和pload-files-by-django part2)的延申,代码已经上传至github,这里只记录一下遇到的问题。
Q1.
问题原因:在forms.py文件和models.py文件的CharField字段没有设置必要参数max_length
。
解决方法:补充上即可。
Q2.
问题原因:在app display中的urls.py文件中命名空间的关键词设置错误,将app_name
记成了namespace
。同时在前端页面index.html中使用了命名空间。
Q3.
问题原因:没有在form表单中添加{%csrf_token%}
解决方法:补上即可。
Q4.
问题原因:views.py中方法定义错误,返回的不是文件名而是数据库中的文件对象
解决方法:
view.py修改之后
from re import U from django.shortcuts import render from .models import UploadImages from .forms import ImageIdentify def upload(request): tmpimg = ImageIdentify(request.POST,request.FILES) if tmpimg.is_valid(): imgname = request.FILES['image'].name image = >UploadImages(imagename=imgname,images=request.FILES['image']) image.save() def display(): content = UploadImages.objects.all() namelist = [] for con in content: temp=con.get_img_name() namelist.append(temp) if namelist == []: return [] else: return namelist def index(request): if request.method == 'POST': upload(request) content = display() print(content) return render(request,'index.html',{'content':content})
最后
原测试项目已经上传至githun仓库(little-test-main),并且在我的硬盘上进行了备份~
总体这个感觉已经是非常熟练~ 不愧于弄了那么久,同时算是对django的熟悉程度更深了一层。