Процесс бесконечного цикла внутри приложения Django
Мне нужно сделать процесс внутри моего приложения django, который сразу после запуска приложения будет случайным образом брать одну запись из таблицы Products
(которая содержит, например, название, цену и рейтинг) и помещать ее в другую таблицу с именем SingleProduct
.
Процесс должен работать в бесконечном цикле и заменять один продукт в таблице SingleProduct
каждые 15 минут.
Как я могу делать такие вещи? Что я должен искать?
Для чего мне это нужно? Я хочу отображать некоторый случайный товар из базы данных на главной странице каждые 15 минут.
Для этого можно использовать Ajax.
Вот пример:
В вашем шаблоне: Импортируйте JQuery:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
Затем внизу вы можете сделать что-то вроде этого
{% block script %}
<script type="text/javascript">
const interval = setInterval(function() {
// If you wish to refresh the page after calling the function
// uncomment the line below
// location.reload();
$.ajax({
type: "GET",
url: '{% url 'homepage' %}',
success: function() {
console.log('{{randomint}}')
}
});
}, 1000) // this is in milisenconds, 1000 = 1sec
</script>
{% endblock %}
Это вызовет url
"'homepage'
" каждую секунду,
url:
path('', views.homepage, name='homepage'),
view:
def homepage(request):
template = loader.get_template('jsondata.html')
#
# put your code here
#
randomint = randint(1, 100) # this is just for example purposes
context = {
'randomint': randomint,
}
return HttpResponse(template.render(context, request))
Примечание: Это просто пример и не будет работать из коробки...
Надеюсь, это в некоторой степени отвечает на ваш вопрос.
Дополнительная информация: Django URL в Ajax