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

时间:2019-01-05 05:33:00

标签: django database python-3.x

我在这里想知道自2天以来的一个问题,但仍然没有找到解决方案。 问题是,我有一个网站网址,例如“ www.something.org/abc/xyz/”。在此网站上有一个URL列表,其中包含一些JPG格式的图像。此URL例如,例如“ 2019_01_03_11_12_12 _ ..>”,当我单击它时,它将以“ www.something.org/abc/xyz/2019_01_03_11_12_12_648626_155_72_6372_6835.jpg”打开。我还想将这些图像名称值分别存储在具有某些字段(例如FacultyID,CourseID,Datetime等)的数据库模型中。图像必须存储在服务器或其他位置。现在我要做的是,必须在Django模板上显示网站上的这些图像。我尝试了几种方法来做到这一点。首先,我尝试删除此网站数据,并将其存储在本地计算机上的文本文件中。但是之后,我将了解如何使用这些数据来显示图像。

现在,请帮助我在Django-Python中找到解决此问题的正确方法。忘掉我的方法,并建议我一些可以完成结果的事情。

我正在等待答案。请帮助,让我摆脱困境。

1 个答案:

答案 0 :(得分:0)

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

如果您还没有阅读,请阅读有关Django文档的本教程: 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模型并将其保存...由于我不清楚每个数字是什么,我创建了一个名为idextra的小模式还有一个带有其他数字的小数组...但是您可以重写函数extract_infos以完全根据需要返回一个数组。