Я создаю сайт, используя django
. Я загружаю веб-страницы, используя StreamingHttpResponse
, дополнительная информация здесь .
Мой views
код:
from django.http.response import StreamingHttpResponse
class SearchNews:
def get(self, request):
response = StreamingHttpResponse(self._load_stream(request))
return response
def _load_stream(self, request):
query = request.GET.get('query', '')
yield loader.get_template('news_results_part1.html').render({
'request': request,
'query': query,
})
api = SearchNews()
results = api.search(query)
yield loader.get_template('news_results_part2.html').render({
'request': request,
'query': query,
'results': results,
})
У меня две html части, первая часть включает только заголовок, а вторая часть содержит результаты поиска.
Первый html код детали:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>
{{ query }}
</title>
<style>
{% include 'internal_static/css/search_results.css' %}
</style>
</head>
<body>
<div class="border-bottom clearfix">
<div class="max-width-large w-100 padding-left-lg">
{% include 'header.html' with query=query %}
</div>
</div>
и второй html код детали:
<div>
{% if extra_info.correct_query %}
<div class="correct-query-wrapper padding-left-lg max-width-large pt-3 clear-both w-100 text-right">
<span class="float-right text-danger">did you mean?</span>
<span class="p-2 font-italic">
<a href="{% url 'search' %}?query={{ correct_query }}">
{{ correct_query }}
</a>
</span>
</div>
{% endif %}
<div class="padding-left-lg clearfix result-cart-wrapper max-width-large clear-both">
{% include 'result_carts.html' with query=query %}
</div>
</div>
</body>
</html>
Когда я запускаю проект в localhost
все в порядке, и браузер показывает полное содержимое первой части, а после получения результатов поиска показывает вторую часть. Но когда я развертываю проект на сервере, браузер показывает только небольшую часть первой части, а после получения второй части завершает первую часть и показывает вторую часть вместе.
Как это исправить?