分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

django 图片上传与显示

发布时间:2023-09-06 01:48责任编辑:赖小花关键词:django

由于图片上传的需要,学习了一波上传

1. 上传

前端代码

<form action="写上相应的定向位置" method="post" enctype="multipart/form-data"> ???{% csrf_token %} ???<input type="file" id="btn_file" name="pic1" /> ???<br/> ???<input type="submit" value="确定" /></form>

 后台代码

def add_image(request): ???if request.method == "POST": ???????picture = request.FILES[‘pic1‘] ???????fname = ‘%s\\pictures\\%s‘ % (settings.MEDIA_ROOT, picture.name) ???????with open(fname, ‘wb‘) as pic: ???????????for c in picture.chunks(): ???????????????pic.write(c) ???????return HttpResponse("ok") ???else: ???????return HttpResponse("error")

 其中有一部分用到了settings中的设置(整个项目的settings)

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))MEDIA_ROOT = os.path.join(BASE_DIR, "media")

这样 图片上传便完成了,效果如下

2.显示图片

我的做法是在数据库中存储相应图片的位置,然后将其显示

但是直观想法便是直接利用路径调用图片,但在django中不可行,因为django关于路径的管理会跳转到url.py中去寻找解决方案

import django.views.staticurl(r‘^media/pictures/(?P<path>.*)‘, django.views.static.serve, {‘document_root‘: ‘d:/douban/Douban/media/pictures‘}),

 这样每次遇到media/picture/的路径,他便会到‘document_root’后的值去找,而该值可由setting.py中的BASE_DIR与相对路径构成

 改为

url(r‘^media/pictures/(?P<path>.*)‘, django.views.static.serve, {‘document_root‘: DouBan.settings.BASE_DIR+‘/media/pictures‘}),

 完成,效果如图

django 图片上传与显示

原文地址:https://www.cnblogs.com/Phoenix-blog/p/8732676.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved