Показать изображение с другого сайта по шаблону Django - PullRequest
0 голосов
/ 05 января 2019

Я здесь интересуюсь одной проблемой в течение 2 дней и до сих пор не могу найти решение. Проблема в том, что у меня есть один URL сайта, например "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». Я также хочу хранить эти значения Image Name отдельно в моделях базы данных с определенными полями, такими как FacultyID, CourseID, Datetime и аналогичным образом. Изображение должно быть сохранено на сервере или в другом месте. Теперь мне нужно отобразить эти изображения с веб-сайта на моем шаблоне Django. Я попробовал несколько подходов для этого. Сначала я попытался удалить данные этого сайта и сохранить их в текстовом файле на моем локальном компьютере. Но после этого я понимаю, как использовать эти данные для отображения изображений.

Теперь, пожалуйста, помогите мне найти правильный подход к этой проблеме в Django-Python. Забудьте о моем подходе и предложите мне что-нибудь, что принесет результаты.

Я жду ответов. Пожалуйста, помогите и вытащите меня из этого.

1 Ответ

0 голосов
/ 05 января 2019

Учитывая, что вы, возможно, уже читали базовый учебник по Django, я не буду объяснять все основы ... если вам просто нужно разобрать эту информацию и показать ее на экране, вам понадобятся основы учебника по Django о макете ... I не буду все объяснять ради краткости ...

если вы еще не читали, пожалуйста, прочитайте этот урок на Django docs: Написание вашего первого приложения Django

Но вам нужно будет сделать что-то вроде этого:

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, чтобы получить массив точно так, как вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...