1、在url.py文件中的配置

导入相关的库,在Python2.0后,要用re_path

from django.urls import path,re_path
from django.views.static import serve urlpatterns = [
path(r'similar_img/',app06_views.file_receiving),
re_path(r'^static/(?P<path>.*)$', serve, {'document_root': 'C:/Users/Administrator/Desktop/Django_ALL2/project_all/static'}),
]

static文件夹是放图片等文件的,serve是导入的库,document_root后面的路径是存放图片文件的文件夹路径

static文件夹内部可以建立文件夹,如图片库文件夹(database)、上传的图片存放文件夹(image)

2、在view.py文件中的配置

 1 def file_receiving(request):
2 if request.method == 'GET':
3 return render(request,'similar_img.html')
4 elif request.method == 'POST':
5 file1 = request.FILES.get('upfile')
6 print(file1.name)
7 file1_path = './static/image/'+file1.name
8 # file1_path = os.path.join(r'./app06_similar_img/receive_img',file1.name)
9 f = open(file1_path,mode='wb')
10 for data in file1.chunks():
11 f.write(data)
12 f.close()
13 #调用搜索相似产品图片函数,并呈现页面
14 sim_img_datas = search_img(os.getcwd()+'\\static\\image\\'+file1.name)
15 print(type(sim_img_datas),sim_img_datas)
16 # sim_img_datas['result'] = []
17
18 if sim_img_datas['result']:
19 sim_img_data = []
20 for item in sim_img_datas['result']:
21 sim_img_data1 = []
22 sim_img_data1.append(item['score'])#相似度得分
23 img_name = json.loads(item['brief'])
24 sim_img_data1.append(img_name['name'])#相似图片名称
25
26 sim_img_data.append(sim_img_data1)
27 else:
28 sim_img_data = [['0','没有查找到相似图片']]
29
30 print(sim_img_data)
31 success = ['上传成功!']
32 # os.remove(file1_path)
33 database_path = '/static/database/'+file1.name#去掉那个点,才能显示图片
34 return render(request, 'similar_img.html',{'success': success[0],'file1_path':database_path,'sim_img_datas':sim_img_data})
35 else:
36 return redirect('/similar_img/')

注意:返回给前端页面的本地文件路径是个相对路径,并且没有点

3、前端页面的配置

相对路径放在img标签的src属性中

 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Title</title>
6 </head>
7 <body>
8 <h1>Cichic相似图片搜索</h1>
9 <hr><br>
10 <div style="width: 500px">
11 <span style="text-align: center">
12 <form action="/similar_img/" method="POST" enctype="multipart/form-data">
13 <input type="file" name="upfile"/>
14 <input type="submit" value="搜索Cichic相似图片"/>
15 </form>
16 <div style="color:#FF0000;">{{ success }}</div>
17 </span>
18 <span>
19 <h3>上传文件的图片</h3>
20 <a href="{{ file1_path }}" target="_blank" >
21 <img width="60px" height="80px" class="lazyload" alt="展示需要搜索的相似图片" src={{ file1_path }}>
22 </a>
23 </span>
24 </div>
25 <hr><br>
26 <h3>相似图片展示</h3>
27 <div>
28 <table border="1" rules="all" style=" text-align:left">
29 {% for sim_img_data1 in sim_img_datas %}
30 <tr>
31 <td>相似度:{{ sim_img_data1.0 }}</td>
32 <td>图片名称:{{ sim_img_data1.1 }}</td>
33 <td>
34 <a href="/static/database/{{ sim_img_data1.1 }}" target="_blank" >
35 <img width="60px" height="80px" class="lazyload" src="/static/database/{{ sim_img_data1.1 }}">
36 </a>
37 </td>
38 </tr>
39 {% endfor %}
40 </table>
41 </div>
42
43 </body>
44 </html>

Django显示本地图片,注意事项的更多相关文章

  1. Android ImageView显示本地图片

    Android ImageView 显示本地图片 布局文件 <?xml version="1.0" encoding="utf-8"?> <R ...

  2. Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

    版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/1873 ...

  3. Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果

    大家好!过完年回来到现在差不多一个月没写文章了,一是觉得不知道写哪些方面的文章,没有好的题材来写,二是因为自己的一些私事给耽误了,所以过完年的第一篇文章到现在才发表出来,2014年我还是会继续在CSD ...

  4. Atitit. html 使用js显示本地图片的设计方案.doc

    Atitit. html 使用js显示本地图片的设计方案.doc 1.  Local mode  是可以的..web模式走有的不能兰.1 2. IE8.0 显示本地图片 img.src=本地图片路径无 ...

  5. Atitit. IE8.0 显示本地图片预览解决方案 img.src=本地图片路径无效的解决方案

    Atitit. IE8.0 显示本地图片预览解决方案 img.src=本地图片路径无效的解决方案 1. IE8.0 显示本地图片 img.src=本地图片路径无效的解决方案1 1.1. div来完成  ...

  6. 在InternetExplorer.Application中显示本地图片

    忘记了,喜欢一个人的感觉 Demon's Blog  »  程序设计  »  在InternetExplorer.Application中显示本地图片 « 对VBS效率的再思考——处理二进制数据 Wo ...

  7. Slog71_选取、上传和显示本地图片GET !(微信小程序之云开发-全栈时代3)

    ArthurSlog SLog-71 Year·1 Guangzhou·China Sep 12th 2018 ArthurSlog Page GitHub NPM Package Page 掘金主页 ...

  8. tomcat中显示本地图片①(未解决)

    <本模块文仅作为学习过程中的自我总结,有需要可参看,欢迎指导与提出建议,很多地方可能断章取义,理解不到位,虚心求学.谢谢!> 资料查阅原因:2018/7/10(做项目中显示详情页面,从数据 ...

  9. SpringBoot之显示本地图片范例

    controller // 扫描指定目录下的图片进行展示 @RequestMapping("/showPics") public ModelAndView showPics(Mod ...

随机推荐

  1. xx局点FusionCloud6.3type1修改配额占用

    问题描述: SC中配额占用跟实际资源使用不一致 SC界面显示参数: 实例已使用:35 内存已使用:440G VCPU已使用:220 云硬盘已使用:11850G/56个 SC实际统计参数: 实例已使用: ...

  2. CSC3100

    其实是存一下代码 1. AVL的java实现 维护一下每个点左右子树深度差,差绝对值大于2就转,转的方式和treap, splay转的方式差不多.旋转操作可以使两端差归零变得更平衡. 虽然平衡但转的次 ...

  3. 介绍Collection框架的结构?

    随意发挥题,天南海北谁便谈,只要让别觉得你知识渊博,理解透彻即可.

  4. 为什么要用 Spring Boot?

    Spring Boot 优点非常多,如:独立运行简化配置自动配置无代码生成和XML配置应用监控上手容易Spring Boot 集这么多优点于一身,还有理由不使用它呢?

  5. Java 中用到的线程调度算法是什么?

    抢占式.一个线程用完 CPU 之后,操作系统会根据线程优先级.线程饥饿情况等 数据算出一个总的优先级并分配下一个时间片给某个线程执行.

  6. String s = new String(“xyz”);创建了几个字符串对象?

    两个对象,一个是静态区的"xyz",一个是用 new 创建在堆上的对象.

  7. 学习zabbix(五)

    前言 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix组件主要分两个: zabbix-server和zabbix-agent.支持的监控协议有I ...

  8. vsftd及虚拟用户

    临时需要搭建一个ftp,突然忘记怎么搞了,重新整一下,以后备用 vsftd及虚拟用户 1.安装vsftpd yum install vsftpd 2.添加用户(用于虚拟用户映射) adduser se ...

  9. idea常见设置一

    1.顶部执行栏调整 原: 设置:勾选view==>toolbar 后: 这个一看其实没有什么太大的作用,但是你看这个按钮 这个按钮就是File==>Settings,这样会稍微方便点,只要 ...

  10. CommonsCollection2反序列链学习

    CommonsCollection2 1.前置知识 CmonnosCollection2需要用到Javassist和PriorityQueue 1.1.Javassist Javassist是一个开源 ...