<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-2288246019824540336.post1664879026296355853..comments</id><updated>2009-07-26T12:59:04.047+02:00</updated><category term='google friend connect'/><category term='lighttpd'/><category term='tools'/><category term='php'/><category term='website'/><category term='pluf'/><category term='django'/><category term='full text search'/><category term='gae'/><category term='Google Translator Toolkit'/><category term='browsers'/><category term='software development'/><category term='kay framework'/><category term='podsumowanie'/><category term='android'/><category term='Firefox'/><category term='mobile widgets'/><category term='css'/><category term='scrum'/><category term='node js'/><category term='agile'/><category term='multilingual'/><category term='python'/><category term='markdown'/><category term='nginx'/><category term='webhosting'/><category term='outage'/><category term='source code'/><category term='pomysły'/><category term='phonegap'/><category term='JavaScript'/><category term='gae optymalizacja'/><category term='work'/><category term='optymalizacja'/><category term='dokumentacja'/><category term='management'/><category term='przepisymm'/><title type='text'>Comments on Rafał Jońca [Blog]: Google App Engine po darmowych obiadkach</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.rafaljonca.org/feeds/1664879026296355853/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2288246019824540336/1664879026296355853/comments/default'/><link rel='alternate' type='text/html' href='http://blog.rafaljonca.org/2009/07/google-app-engine-po-darmowych.html'/><author><name>Rafał Jońca</name><uri>http://www.blogger.com/profile/17092318145522896345</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_b2OEki9BZao/TSc1LrUPTEI/AAAAAAAAAag/ojcomIJl5SE/S220/cv.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2288246019824540336.post-2189342975412159242</id><published>2009-07-26T12:59:04.047+02:00</published><updated>2009-07-26T12:59:04.047+02:00</updated><title type='text'>Niestety, w modelu File jak powyżej pobiera się ws...</title><content type='html'>Niestety, w modelu File jak powyżej pobiera się wszystko, co jest w danym elemencie (czyli także potencjalne duże dane binarne). Zdecydowanie lepiej wrzucić Bloba do osobnego modelu. Osobiście polecałbym model danych binarnych, który nie zawiera ReferenceProperty, ale korzysta z klucza będącego podkluczem podstawowych danych. W tej sytuacji dostęp do danych binarnych będzie szybszy (odczyt po kluczu zamiast zapytania).&lt;br /&gt;&lt;br /&gt;class FileData(db.Model):&lt;br /&gt;    data = db.BlobProperty()&lt;br /&gt;&lt;br /&gt;fd = FileData(parent=file)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2288246019824540336/1664879026296355853/comments/default/2189342975412159242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2288246019824540336/1664879026296355853/comments/default/2189342975412159242'/><link rel='alternate' type='text/html' href='http://blog.rafaljonca.org/2009/07/google-app-engine-po-darmowych.html?showComment=1248605944047#c2189342975412159242' title=''/><author><name>Rafał Jońca</name><uri>http://www.blogger.com/profile/17092318145522896345</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_b2OEki9BZao/SfX3I0WKniI/AAAAAAAAAI0/P5KKgYRHNlo/s1600-R/AIbEiAIAAABECMPo8uCq97rW2gEiC3ZjYXJkX3Bob3RvKigxYzU0NDU3ZTlmYjNkYzY4ZTRiYWJjNjQxMTI5YTI0YTk5NDZjNWJmMAFQR69AhWb9jjHDN8sq7i9Yo7aPAw'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.rafaljonca.org/2009/07/google-app-engine-po-darmowych.html' ref='tag:blogger.com,1999:blog-2288246019824540336.post-1664879026296355853' source='http://www.blogger.com/feeds/2288246019824540336/posts/default/1664879026296355853' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1305510241'/></entry><entry><id>tag:blogger.com,1999:blog-2288246019824540336.post-928989938563686518</id><published>2009-07-24T18:25:08.481+02:00</published><updated>2009-07-24T18:25:08.481+02:00</updated><title type='text'>A jak ma się sprawa w przypadku BlobProperty?
Czy ...</title><content type='html'>A jak ma się sprawa w przypadku BlobProperty?&lt;br /&gt;Czy jeśli np. mam takie modele:&lt;br /&gt;&lt;br /&gt;class Article(db.Model):&lt;br /&gt;    title = db.StringProperty()&lt;br /&gt;    text = db.TextProperty() &lt;br /&gt;    &lt;br /&gt;Class File(db.Model):&lt;br /&gt;    name = db.StringProperty()&lt;br /&gt;    size = db.IntegerProperty()&lt;br /&gt;    mime = db.StringProperty()&lt;br /&gt;    data = db.BlobProperty()&lt;br /&gt;    article = db.ReferenceProperty(Article)&lt;br /&gt;    &lt;br /&gt;I teraz gdy chcę wyświetlić 1 artykuł i nazwy plików jakie są do niego załączone:&lt;br /&gt;&lt;br /&gt;article = Article.all().get()&lt;br /&gt;for file in article.file_set&lt;br /&gt;    print file.name&lt;br /&gt;    print file.size&lt;br /&gt;    &lt;br /&gt;To czy pobierając file.name, file.size także pobierana jest do pamięci zawartość pola data, które może mieć 1MB, czy może ma to miejsce dopiero w momencie uzyskania do niego dostępu czyli file.data???&lt;br /&gt;Zauważyłem, że w wielu przykładach jest to właśnie tak rozwiązywane, ale martwi mnie czy za każdym razem nie wczytują się niepotrzebne rzeczy.&lt;br /&gt;Czy nie lepiej pole z BlobProperty wrzucić do osobnego modelu?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2288246019824540336/1664879026296355853/comments/default/928989938563686518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2288246019824540336/1664879026296355853/comments/default/928989938563686518'/><link rel='alternate' type='text/html' href='http://blog.rafaljonca.org/2009/07/google-app-engine-po-darmowych.html?showComment=1248452708481#c928989938563686518' title=''/><author><name>Denial</name><uri>http://www.blogger.com/profile/01081927109177165089</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.rafaljonca.org/2009/07/google-app-engine-po-darmowych.html' ref='tag:blogger.com,1999:blog-2288246019824540336.post-1664879026296355853' source='http://www.blogger.com/feeds/2288246019824540336/posts/default/1664879026296355853' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1613345179'/></entry></feed>
