Py学习  »  Raphael Schubert  »  全部回复
回复总数  1
6 年前
回复了 Raphael Schubert 创建的主题 » 在Django模板上显示来自其他网站的图像

考虑到你可能已经读过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 返回一个数组。