Nano Hash - криптовалюты, майнинг, программирование

Django сохраняет состояние и объекты для использования в нескольких представлениях

Я новичок в ООП и веб-разработке и привыкаю к ​​определению объектов и тому подобному для хранения данных. У меня также есть небольшой опыт создания базовых html-сайтов и управления состоянием с использованием React и JS. Однако в настоящее время я создаю веб-сайт Django, чтобы практиковать свои навыки ООП и навыки Django, и я столкнулся с небольшой загвоздкой.

Когда загружается домашняя страница моего веб-сайта, выполняется выборка в API, который извлекает JSON с сервера с такими сведениями, как название, автор и дата публикации. Я перебираю JSON и создаю серию объектов Post(), содержащих эту информацию. Объекты Post (которые на данный момент содержатся в списке) затем передаются в метод рендеринга в функции в моем views.py, а затем повторяются, и свойство title отображается на странице html в виде ссылки. Я хочу сохранить другие свойства (автора и дату публикации) в качестве метаданных каким-то образом в фоновом режиме. Информация всегда поступает из API, и я не хочу хранить ее в модели на БД. Я хочу использовать эту информацию метаданных в других представлениях и т. д. (я хочу, чтобы она по крайней мере была доступна, когда пользователь находится на главной странице и когда он нажимает на ссылку, созданную объектом, я хотел бы, чтобы вся информация объекта Post была передана в новый страница). Однако прямо сейчас, после отображения страницы, объектов больше нет, потому что метод, создавший их, уже завершил работу.

Какую всеобъемлющую базовую концепцию Django, ООП или веб-разработки я не понимаю, чтобы иметь какое-то «состояние» на моем сайте Django? В частности, я хочу иметь возможность «передавать» временную информацию от представления к представлению. Я думаю создать класс (что-то вроде ContentManager) для управления всем состоянием, но я не знаю, где он будет жить. Все кажется довольно статичным с точки зрения просмотров. Я работал с веб-фреймворками, такими как React, которые управляют состоянием. Так что, возможно, отсюда я взял эту идею.

Это кажется такой простой базовой концепцией, но было сложно найти именно то, что я хотел бы сделать, погуглив это. Большинство вещей говорят об использовании моделей. Во всяком случае достаточно бессвязных. Спасибо за помощь в продвижении!


Ответы:


1

Вы можете использовать session для этого . Например:

def load_api(request):
    data = requests.get('/your/api')
    # handle your API response some how
    meta_data = data.get('meta_data')
    request.session['meta_data'] = meta_data
    return HttpResponse('Your View')

Покажите этот meta_data в другом представлении:

def show_meta_data(request):
    data = request.session.get('meta_data')
    return render(request, 'template', data)

Кроме того, вы можете удалить эти метаданные из сеанса:

 del request.session['meta_data']

Или django.contrib.auth.logout() он будет очищен, так как использует flush.

10.01.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..