[python] Django - AJAX & vypisování textového streamu

Jirka Vejrazka jirka.vejrazka na gmail.com
Středa Květen 11 10:55:30 CEST 2011


Prvni napad, strela od boku. Nesouvisi to s CSRF protection?


   Jirka

On 10/05/2011, Martin Stiborský <martin.stiborsky at gmail.com> wrote:
> Ahoj,
> nevěděl jsem úplně jistě jak tohle vlákno nazvat, tak snad to bude tak
> nějak sedět.
> Chci v Djangu takovou věc. View provádí nějakou akci a v jejím průběhu
> vypisuje textový log o tom, jak mu to jde. Tyhle informace chci
> postupně zobrazovat v administraci.
> Ono to je celé jenom takový cukr, ale líbilo se mi to jako nápad,
> akorát jsem se se na tom docela zaseknul.
> Vymyslel jsem něco takového (a nakonec i vygooglil, že samozřejmě
> nejsem první :) http://goo.gl/Pdpj0 )...
>
> Takhle vypadá views.py:
>
> from django.shortcuts import render_to_response
> from django.http import HttpResponse
> from django.views.decorators.http import condition
> import time
>
> def index(request):
>   return render_to_response("foo/index.html", {})
>
> @condition(etag_func=None)
> def getData(request):
>   resp = HttpResponse(foo())
>   return resp
>
> def foo():
>     for x in range(1, 11):
>         yield "%s <br/>" % x
>         time.sleep(1)
>
> A v šabloně mám jednoduchý java script, využívá JQuery…
>
> function getFooData() {
>     $.ajax({
>         type: 'POST',
>         url: 'getData/',
>         dataType: "json",
>         success: function(data) {
>             var $container = $("#messages");
>
>             $container.append("Data: " + data);
>             }
>             });
>
>     setTimeout("getFooData()", 2000);
> }
>
> Podobný postup jsem našel různě po internetu, blbé je, že to nefunguje
> tak, jak si představuju. Když to spustím, tak django na konzoli píše u
> /getData/ html kód 403/Forbidden...
> Myslel jsem, že je něco shnilého v django-nonrel, se kterým si hraju
> na google app engine, tak jsem to otestoval na django 1.3 a
> nefungovalo to úplně stejně :)
> Pokud máte někdo nápad, kde je problém, nebo proč je to principiálně
> blbě, dejte vědět.
>
> Děkuji.
>
> --
> S pozdravem
> Martin Stiborský
>
> Jabber: stibi at njs.netlab.cz
> _______________________________________________
> Python mailing list
> Python at py.cz
> http://www.py.cz/mailman/listinfo/python


Další informace o konferenci Python