<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>FLLOG &#187; dajax</title> <atom:link href="http://www.michalklich.com/tag/dajax/feed/" rel="self" type="application/rss+xml" /><link>http://www.michalklich.com</link> <description>Fedora Linux Blog</description> <lastBuildDate>Wed, 01 Jun 2011 18:44:40 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.4</generator> <item><title>Dajax odpicuje Django!</title><link>http://www.michalklich.com/2010/08/05/dajax-odpicuje-django/</link> <comments>http://www.michalklich.com/2010/08/05/dajax-odpicuje-django/#comments</comments> <pubDate>Thu, 05 Aug 2010 19:28:44 +0000</pubDate> <dc:creator>Michał</dc:creator> <category><![CDATA[programowanie]]></category> <category><![CDATA[dajax]]></category> <category><![CDATA[django]]></category><guid
isPermaLink="false">http://www.michalklich.com/?p=768</guid> <description><![CDATA[Jestem fanem Django. Obiecałem, że opiszę jak odpicować aplikację zrobioną przy użyciu Django. Dzisiaj opiszę jak zaimplementować ajax przy użyciu Dajax (abstrahując to ich logo jest naprawdę dobre). Przechodzimy do rzeczy, opisane krok po kroku jak zainstalować i zaimplementować. Ja kod dodatkowych aplikacji trzymam w katalogu projektu zamiast je instalować i mogę się do nich [...]<p><a
href="http://www.michalklich.com/2010/08/05/dajax-odpicuje-django/">Dajax odpicuje Django!</a> to wpis z <a
href="http://www.michalklich.com">FLLOGa</a></p> ]]></description> <content:encoded><![CDATA[<p><strong>Jestem fanem Django</strong>. Obiecałem, że opiszę jak odpicować aplikację zrobioną przy użyciu <a
href="http://www.djangoproject.com/">Django</a>. Dzisiaj opiszę jak zaimplementować ajax przy użyciu <a
href="http://dajaxproject.com/">Dajax</a> (abstrahując to ich logo jest naprawdę dobre). Przechodzimy do rzeczy, opisane krok po kroku jak zainstalować i zaimplementować.<span
id="more-768"></span><br
/> Ja kod dodatkowych aplikacji trzymam w katalogu projektu zamiast je instalować i mogę się do nich odwoływać w settings.py tak samo jakby były zainstalowane. Jest to dla mnie wygodniejsze bo mogę je po prostu przenieść na serwer bez uprzedniej instalacji i tak w tym tutorialu postąpię. Z miłą chęcią posłucham uwag jeśli ktoś robi inaczej bo człowiek całe życie się uczy.</p><ol><li>Instalacja Dajaxice</li><p>Pobieramy kod ze strony <a
href="http://github.com/jorgebastida/django-dajaxice/downloads">http://github.com/jorgebastida/django-dajaxice/downloads</a> i rozpakowujemy do katalogu z aplikacją. Następnie edytujemy plik settings.py naszego projektu i dodajemy dajaxice do listy aplikacji.</p><pre class="brush: python; title: ; notranslate">INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'dajaxice',
...)</pre><p>Następnie upewniamy się, że TEMPLATE_LOADERS w tym samym pliku wygląda tak</p><pre class="brush: python; title: ; notranslate">TEMPLATE_LOADERS = (
	'django.template.loaders.filesystem.load_template_source',
	'django.template.loaders.app_directories.load_template_source',
	'django.template.loaders.eggs.load_template_source',
)</pre><p>Ostatni wpis w pliku settings.py wygląda tak</p><pre class="brush: python; title: ; notranslate">DAJAXICE_MEDIA_PREFIX=&quot;dajaxice&quot;</pre><p>Co stworzy nam adres o postaci http://www.domena.pl/dajaxice. Zostawiamy ten plik i przechodzimy do urls.py. Ten wpis nie jest do końca potrzebny, ja go nie posiadam i u mnie działa to bezbłędnie.</p><pre class="brush: python; title: ; notranslate">
from dajaxice.core import dajaxice_autodiscover
dajaxice_autodiscover()
</pre><p>Dodajemy linijkę do listy urli aby to mogło zadziałać</p><pre class="brush: python; title: ; notranslate">(r'^%s/' % settings.DAJAXICE_MEDIA_PREFIX, include('dajaxice.urls')),</pre><p>oraz import</p><pre class="brush: python; title: ; notranslate">
from django.conf import settings
</pre><p>Koniec instalacji dajaxice. Kolejny element do dajax.</p><li>Instalacja Dajax</li><p>Kod jest do pobrania ze strony <a
href="http://github.com/jorgebastida/django-dajax/downloads">http://github.com/jorgebastida/django-dajax/downloads</a>. Rozpakowujemy i dorzucamy wpis do settings.py.</p><pre class="brush: python; title: ; notranslate">INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'dajaxice',
    'dajax',
    ...
)</pre><p>Koniec instalacji, teraz przechodzimy do mięsa czyli jak to wszystko zakodować.</p><li>KOD</li><p>Zakładam, że posiadasz jakąś aplikację w której chcesz dołożyć dajax. W swoim pliku bazowym, tym którego używasz w tagu {%extends%} dołóż dwa dodatkowe tagi (oczywiście, jeśli chcesz korzystać z dobrodziejstw Dajax na wszystkich swoich podstronach)</p><pre class="brush: python; title: ; notranslate">{% load dajaxice_templatetags %}</pre><p>oraz w <em>head</em></p><pre class="brush: python; title: ; notranslate">{% dajaxice_js_import %}</pre><p>a także import wybranego przez Ciebie pliku, w zależności od używanego frameworka js. Może to być jQuery, Prototype, MooTools lub Dojo.<br
/> Import oczywiście należy wsadzić do <em>head</em>. Ja wybrałem jQuery.</p><pre class="brush: xml; title: ; notranslate">&lt;script src=&quot;{{ MEDIA_URL }}/js/jquery.dajax.core.js&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;</pre><p> Powyższy plik znajduje się w katalogu z instalacją dajax i należy go skopiować do swojego katalogu site_media.<br
/> Już prawie koniec, jedyna rzecz jaka pozostała to napisać trochę kodu pythona odpowiedzialnego za ajax. Autorzy i ja się dołączam do nich radzą cały kod umieszczać w pliku ajax.py. Podam przykład funkcji dodającej dwie liczby, oczywiście możliwości są nieskończone.</p><pre class="brush: python; title: ; notranslate">
def dodawanie(request, a, b):
    dajax = Dajax()
    result = int(a) + int(b)
    dajax.assign('#koniec','value',str(result))
    return dajax.json()</pre><p>dajax.assign przypisze do obiektu DOM o id równym wynik wartość zmiennej result która jest wynikiem funkcji dodawanie. <em>Zachęcam do obejrzenia pliku dajax.core.js, odpowiedniego dla wybranego frameworka aby dowiedzieć się jakie jeszcze funkcje są dostępne.</em><br
/> Funkcję wywołujemy z poziomu javascript wpisując po prostu</p><pre class="brush: jscript; title: ; notranslate">Dajaxice.aplikacja.funkcja('Dajax.process', {'a': wartosc1, 'b': wartosc2})</pre><p>Każda funkcja stworzona przez nas w ajax.py musi znaleźć się w pliku settings.py. W tym wypadku będzie to wyglądać tak:</p><pre class="brush: python; title: ; notranslate">
DAJAXICE_FUNCTIONS = (
    'aplikacja.ajax.nazwa_funkcji'
)
</pre></ol><p>Koniec. W tym momencie powinieneś wiedzieć jak zaimplementować Dajax i cieszyć się odpicowanym Django. Jeśli nie rozumiesz to ja się nie zdziwię bo kiepski ze mnie nauczyciel. Wszelkie pytania proszę zamieszczać w komentarzach, postaram się na nie odpowiedzieć w miarę moich skromnych możliwości.<br
/> Pokój</p><p><a
href="http://www.michalklich.com/2010/08/05/dajax-odpicuje-django/">Dajax odpicuje Django!</a> to wpis z <a
href="http://www.michalklich.com">FLLOGa</a></p> ]]></content:encoded> <wfw:commentRss>http://www.michalklich.com/2010/08/05/dajax-odpicuje-django/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Dajax i jquery 1.4.2</title><link>http://www.michalklich.com/2010/07/05/dajax-i-jquery-1-4-2/</link> <comments>http://www.michalklich.com/2010/07/05/dajax-i-jquery-1-4-2/#comments</comments> <pubDate>Mon, 05 Jul 2010 21:28:11 +0000</pubDate> <dc:creator>Michał</dc:creator> <category><![CDATA[fedora]]></category> <category><![CDATA[programowanie]]></category> <category><![CDATA[dajax]]></category> <category><![CDATA[django]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[jquery]]></category> <category><![CDATA[python]]></category><guid
isPermaLink="false">http://www.michalklich.com/?p=751</guid> <description><![CDATA[Siedzę nad dużą aktualizacją mojego amatorskiego projektu www.gdziebylkaziu.pl i zaplanowałem sobie dorzucić trochę ajaxa do map google. Szperając po internecie znalazłem http://dajaxproject.com i zakochałem się, dzięki temu mogę wszystkie proste funkcjonalności ajax napisać w &#8230; pythonie! Cieszę się ponieważ pomimo tego, że javascript jest ok to wolę pythona, oj wolę. Przechodzimy do rzeczy. Ostrzegam rozwiązanie [...]<p><a
href="http://www.michalklich.com/2010/07/05/dajax-i-jquery-1-4-2/">Dajax i jquery 1.4.2</a> to wpis z <a
href="http://www.michalklich.com">FLLOGa</a></p> ]]></description> <content:encoded><![CDATA[<p>Siedzę nad dużą aktualizacją mojego amatorskiego projektu <a
href="http://www.gdziebylkaziu.pl" target="_self">www.gdziebylkaziu.pl</a> i zaplanowałem sobie dorzucić trochę ajaxa do map google. Szperając po internecie znalazłem <a
href="http://dajaxproject.com/">http://dajaxproject.com</a> i zakochałem się, dzięki temu mogę wszystkie proste funkcjonalności ajax napisać w &#8230; pythonie! <img
src='http://www.michalklich.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Cieszę się ponieważ pomimo tego, że javascript jest ok to wolę pythona, oj wolę. Przechodzimy do rzeczy. Ostrzegam rozwiązanie jest banalne i pewnie wiele osób na to wpadło.<span
id="more-751"></span>Na stronie <a
href="http://wiki.github.com/jorgebastida/django-dajax/" target="_self">dajaxproject</a> jak byk stoi, że wspierane są biblioteki jQuery 1.3.2 ale ja jestem niedowiarkiem, po prostu uważałem, że zmiany w stosunku do wersji 1.4.2 nie są aż tak duże. No ale się pomyliłem bo nie chciało działać. Funkcje jQuery <em>addClass()</em> lub <em>removeClass()</em> były wykonywane ale z parametrem którego nie akceptowały (zbadałem i wersja 1.3.2 nie ma takiego problemu). Rozwiązanie było proste jak drut a mianowicie skonwertować obiekty do łańcucha znaków czyli <em>toString()</em>. A teraz gdzie to zmieniamy, kod znajduje się w pliku <em>jquery.dajax.core.js</em>. Szukamy linijek</p><pre class="brush: jscript; title: ; notranslate">case 'addcc':
case 'remcc':
</pre><p>I do wywołań funkcji <em>addClass()</em> oraz <em>removeClass()</em> dodajemy <em>toString()</em></p><pre class="brush: jscript; title: ; notranslate">
case 'addcc':
jQuery.each(elem.val,function(){
$(elem.id).addClass(this.toString());
});
break;

case 'remcc':
jQuery.each(elem.val,function(){
$(elem.id).removeClass(this.toString());
});
break;
</pre><p>Prawda, że banalne. Następnie opiszę w jaki sposób używać dajax, jest to równie proste jak ten fix.</p><p><a
href="http://www.michalklich.com/2010/07/05/dajax-i-jquery-1-4-2/">Dajax i jquery 1.4.2</a> to wpis z <a
href="http://www.michalklich.com">FLLOGa</a></p> ]]></content:encoded> <wfw:commentRss>http://www.michalklich.com/2010/07/05/dajax-i-jquery-1-4-2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Served from: www.michalklich.com @ 2012-02-07 07:39:06 by W3 Total Cache -->
