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. go语言学习入门篇 2--轻量级线程的实现

    很多有过 JVM 相关语言工作经验的程序员或许都遇到过如下问题: 超出 thread 限制导致内存溢出.在作者的笔记本的 linux 上运行,这种情况一般发生在创建了 11500 个左右的 threa ...

  2. 接口(interface)与抽象类(abstract class)两者的异同

    首先说明一下,JDK1.8以后接口可以有默认方法和静态方法以及私有方法. 一.概念: 接口(interface):是抽象类的变体,其中所有的方法都是抽象的且不能有方法体,而且只能定义 static f ...

  3. TypeSciprt webpack配置

    初始化 初始化项目 npm init -y 安装依赖 npm install ... --save-dev 依赖包列表 名称 作用 webpack 构建工具webpack webpack-cli we ...

  4. 如何选择 Linux 操作系统版本?

    一般来讲,桌面用户首选 Ubuntu :服务器首选 RHEL 或 CentOS ,两者中首选 CentOS .根据具体要求:· 安全性要求较高,则选择 Debian 或者 FreeBSD .· 需要使 ...

  5. char型变量中能不能存储一个中文字符?为什么?

    char型变量是用来存储Unicode编码的字符的,Unicode编码字符集中包含了汉字,因此char型变量中可以存储汉字.不过,如果某个特殊的汉字没有被包含在Unicode编码字符集中,那么,这个c ...

  6. vue解除双向绑定?

    let obj = JSON.parse(JSON.stringify(this.temp1));

  7. 解释AOP模块 ?

    AOP模块用于发给我们的Spring应用做面向切面的开发, 很多支持由AOP联盟提供,这样就确保了Spring和其他AOP框架的共通性.这个模块将元数据编程引入Spring.

  8. phpstorm 快捷生成函数

    在函数上一行键入 /** /** * @param $a * @param $b * @return mixed */ function abc($a, $b) { $c = $a + $b; ret ...

  9. gradle构建scala

    1. 在目录下创建build.gradle文件,内容为: apply plugin: 'idea' apply plugin: 'scala' repositories { mavenLocal() ...

  10. Spring Cloud 解决了哪些问题?

    在使用 Spring Boot 开发分布式微服务时,我们面临的问题很少由 Spring Cloud解决.与分布式系统相关的复杂性 – 包括网络问题,延迟开销,带宽问题,安 全问题.处理服务发现的能力 ...