Py学习  »  Django

在Django模板上显示来自其他网站的图像

Anonymous • 5 年前 • 1617 次点击  

两天来我一直在想一个问题,但还是没有找到解决办法。 问题是,我有一个网址,例如“www.something.org/abc/xyz/”。在这个网站上有一个网址列表,其中包含一些JPG格式的图片。这些网址类似于“2019仈01仈03仈11仈12仈..>”,当我单击它时,它会打开为“www.something.org/abc/xyz/2019仈01仈12仈648626仈155仈72_.jpg”。我还希望将这些图像名称值分别存储在数据库模型中,其中包含FacultyID、CourseID、Datetime等字段。映像必须存储在服务器或其他位置。现在我要做的是,我必须在我的Django模板上显示这些来自网站的图片。为此,我尝试了几种方法。首先,我试图废弃这个网站的数据,并将其存储在本地机器上的文本文件中。但在那之后,我不知道如何使用这些数据来显示图像。

现在请帮助我在Django-Python中找到解决此问题的正确方法。忘了我的方法,给我一些能实现结果的建议。

我在等答案。请帮忙把我弄出来。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50621
 
1617 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Raphael Schubert
Reply   •   1 楼
Raphael Schubert    6 年前

考虑到你可能已经读过Django基础教程,我不会解释所有的基础知识。。。如果您只需要解析这些信息并在视图上显示,您将需要Django布局教程的基础知识。。。为了简洁起见,我不会解释所有的事情。。。

如果您还没有阅读,请阅读本关于Django docs的教程: Writing your first Django app

但你需要这样做:

def my_view(request):
    return render("my_view_name.html", {
        "images":[... array of images ...]
    })

在视图中执行以下操作:

{% for each image on images %}
    {{ image.url }}
{% end foreach %}

教程的这一部分非常简单。

关于解析URL以提取信息,可以使用如下函数:

import datetime

image_url = "https://www.myawesome.url/2019_01_03_11_12_12_648626_155_72_6372_6835.jpg"

def extract_infos(url):

  __cleaned_url = url.replace("https://www.myawesome.url/", "").replace(".jpg", "")
  __infos = __cleaned_url.split('_')
  return {
    "datetime": datetime.datetime.strptime(
      "{}-{}-{} {}:{}:{}".format(
        __infos[0], __infos[1], __infos[2], __infos[3], __infos[4], __infos[5]
        ), "%Y-%m-%d %H:%M:%S"),
    "id": __infos[6],
    "extra": [__infos[7], __infos[8], __infos[9], __infos[10]]
  }

print(extract_infos(image_url))
# will print this
# {'datetime': datetime.datetime(2019, 1, 3, 11, 12, 12), 'id': '648626', 'extra': ['155', '72', '6372', '6835']}

使用这个函数,现在,您可以创建Django模型并保存它。。。由于我不知道每个数字是什么,我创建了一个称为 id extra 用其他数字组成一个小数组。。。但是你可以重写函数 extract_infos 返回一个数组。