首页 > 其他 > 详细

Django显示本地图片,注意事项

时间:2020-09-05 13:49:31      阅读:66      评论:0      收藏:0      [点我收藏+]

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

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

from django.urls import path,re_path
from django.views.static import serve


urlpatterns = [
    path(rsimilar_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显示本地图片,注意事项

原文:https://www.cnblogs.com/chunfang/p/13617841.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!