Django: вернуть StreamingHttpResponse на существующей HTML-странице
Поскольку для каждой проблемы лучше иметь один вопрос, наберитесь терпения, если он похож на другую частьеще один мой вопрос связаны с тем же проектом.
Ситуация:
У меня есть форма на HTML, в которой я могу установить номер, и когда он представлен, это вызовviews.stream_response
которые передают значениеstream.py и он возвращаетStreamingHttpResponse и появляется «виртуальная» пустая страница браузера (/ Stream_response /) в котором я могу видеть прогрессивное число каждую секунду доm
:
1
2
3
..
m
stream.py
import time
def streamx(m):
lista = []
x=0
while len(lista) < m:
x = x + 1
time.sleep(1)
lista.append(x)
yield "<div>%s</div>\n" % x
print(lista[-1])
return (x)
---ОБНОВИТЬ---
views.py
def stream_response(request):
test = InputNumeroForm()
if request.method == 'POST':
test = InputNumeroForm(data=request.POST)
if test.is_valid():
m = test.cleaned_data['numero']
print (test)
print("m = ", m)
#resp = StreamingHttpResponse(stream_response_generator(m))
resp = StreamingHttpResponse(stream.streamx(m))
return resp
return render(request, 'homepage/provadata.html',{'user.username': request, 'test': test}, context_instance = RequestContext(request))
urls.py
...
url(r'^homepage/provadata/Главная / provadata.html
<form id="numero" action="/stream_response_bis/" method="POST">
{% csrf_token %}
{{test}}
<input type="submit" value="to view" />
</form>
//{{ris}}
Я пытался сделать ответ render_to, чтобы остаться наГлавная / provadata.html и видеть прогрессивные списки, ноstream.py не запускается и вижу только введенный номерm в командной строке.
Я пробовал сЭТОТ предложение вviews.py
def stream_response_generator(m):
ris = stream.streamx(m)
yield loader.get_template('homepage/provadata.html').render(Context({'ris': ris}))
(добавление{{ris}}
в шаблон и
resp = StreamingHttpResponse(stream_response_generator(m))
вstream_response функция) но я получаю по шаблону:
<generator object streamx at 0x0000000004BEB870>
И в командной строке он печатает входное значение, но больше не передает параметр в stream.py.
Так..Как я могу решить эту проблему?
, views.provadata),
url(r'^stream_response/Главная / provadata.html
<form id="numero" action="/stream_response_bis/" method="POST">
{% csrf_token %}
{{test}}
<input type="submit" value="to view" />
</form>
//{{ris}}
Я пытался сделать ответ render_to, чтобы остаться наГлавная / provadata.html и видеть прогрессивные списки, ноstream.py не запускается и вижу только введенный номерm в командной строке.
Я пробовал сЭТОТ предложение вviews.py
def stream_response_generator(m):
ris = stream.streamx(m)
yield loader.get_template('homepage/provadata.html').render(Context({'ris': ris}))
(добавление{{ris}}
в шаблон и
resp = StreamingHttpResponse(stream_response_generator(m))
вstream_response функция) но я получаю по шаблону:
<generator object streamx at 0x0000000004BEB870>
И в командной строке он печатает входное значение, но больше не передает параметр в stream.py.
Так..Как я могу решить эту проблему?
, views.stream_response, name='stream_response'),
...
Главная / provadata.html
<form id="numero" action="/stream_response_bis/" method="POST">
{% csrf_token %}
{{test}}
<input type="submit" value="to view" />
</form>
//{{ris}}
Я пытался сделать ответ render_to, чтобы остаться наГлавная / provadata.html и видеть прогрессивные списки, ноstream.py не запускается и вижу только введенный номерm в командной строке.
Я пробовал сЭТОТ предложение вviews.py
def stream_response_generator(m):
ris = stream.streamx(m)
yield loader.get_template('homepage/provadata.html').render(Context({'ris': ris}))
(добавление{{ris}}
в шаблон иresp = StreamingHttpResponse(stream_response_generator(m))
вstream_response функция) но я получаю по шаблону:
<generator object streamx at 0x0000000004BEB870>
И в командной строке он печатает входное значение, но больше не передает параметр в stream.py.
Так..Как я могу решить эту проблему?