File uploads в django 3

Posted by dobrych Tue, 01 Jul 2008 16:39:00 GMT

ДА! Это наконец-то случилось! Иван может петь победоносную песню, он так долго боролся за решение этого вопроса!

By default, if an uploaded file is smaller than 2.5 megabytes, Django will hold the entire contents of the upload in memory. This means that saving the file involves only a read from memory and a write to disk and thus is very fast. However, if an uploaded file is too large, Django will write the uploaded file to a temporary file stored in your system’s temporary directory.

Полная дока по новому аплоаду — Django | File Uploads | Django Documentation.

Загрузка (upload) файлов на сервер с помощью Adobe AIR и JavaScript

Posted by dobrych Fri, 13 Jun 2008 09:24:00 GMT

Я давно планировал начать серию статей про фронтенд разработку, т.е. про JavaScript, CSS и HTML. Про верстку писать — уже «баян», тем более это не очень мне интересно. Так что буду стараться разбирать наиболее редкие и уникаьные примеры.

Adobe AIR logo

Adobe AIR — тема этой статьи. Тема не обзорная, а вполне кокретная. Итак, как сделаь загрузку файлов на сервер с помощью AIR и JavaScript. Оказалось есть нюансы, которые в документации не освещены.

Пример.

// что и куда будем заливать
var url = "http://img31.picoodle.com/upload.php";
var pictureFile = new air.File('/path/to/local.file');

// устанавливаем переменные и их значения для http запроса, как в html форме
var variables = new air.URLVariables();
variables.op = 'upload';

// настраиваем парметры http-запроса
var tmpRequest = new air.URLRequest(url);
tmpRequest.method = air.URLRequestMethod.POST;
mpRequest.contentType = 'multipart/form-data'; // это тип для загрузки файлов
tmpRequest.data = variables;
air.sendToURL(tmpRequest);

// аттач ивентов для прогресс бара и завершения загрузки
pictureFile.addEventListener(air.ProgressEvent.PROGRESS, callback_for_upload_progress);
pictureFile.addEventListener(air.DataEvent.UPLOAD_COMPLETE_DATA, callback_for_upload_finish); 

// выполняем загрузку файла на сервер (отличается от простых http-запросов).
pictureFile.upload(tmpRequest, 'pic', false);

Вот про ивент air.DataEvent.UPLOAD_COMPLETE_DATA в доке нигде не написано, я выцепил его из примера, написанного для Flex на AcionScript. Пример рабочий, опробывал. Его нужно дополнить хендлерами ивентов. Для примера:

function callback_for_upload_progress(event) { 
    var loaded = event.bytesLoaded; 
    var total = event.bytesTotal; 
    var pct = Math.ceil( ( loaded / total ) * 100 ); 
    air.trace('Uploaded ' + pct.toString() + '%');
}

function callback_for_upload_finish(event) {
    Console.log('File upload complete');
    air.trace(event.data); // вывод ответа сервера на консоль air (режим отладки)
}

Эта заметка для тех, кто уже хоть немного знаком с AIR. В следующем обзоре я пожалуй напишу пример для работы с файлами. Если нужно сделать пример «с нуля» для начинающих, напишите, попробую. Хотя я считаю, что в официальной доке как раз неплохо написано с чего начать.

Я почти уверен, что у вас есть не мало вопросов по этой новой теме. Пишите в комментах, мне будет более понятно на что больше стоит обратить внимание.

Про меня 3

Posted by dobrych Tue, 10 Jun 2008 22:56:00 GMT

Решил обновить страницу автора (тобишь о себе). Делаю копи-паст в ленту. Постоянная ссылка на страницу «Об авторе».

Об авторе

Зовут меня Илья, можно по-дружески — Илюха. Позывной в сети (всякие соц. сети, мессенджеры итп) — dobrych. Так что можете смело мне писать в Gmail/GTalk на dobrych [a] gmail.com и в Skype с тем же логином.

С программированием связан профессионально уже 7 лет, но в жизни много всего интересного помимо работы. Последнее время я все больше стараюсь заниматься творчеством — фотографией и музыкой. И чаще проводить время со своей веселой семейкой. Да, кто не знает, я — счастливый муж(ик) и отец двоих уматных детишек! :-)

Мне очень нравится писать, поэтому с Сентября 2006 я — блоггер. Планирую в будующем делать новые контент-проекты, скорее всего в формате медиа-блогов. Набегами пишу в Twitter / dobrych.

Мне очень близки идеи дауншифтинга, поэтому я не спешно подыскиваю интересные варианты для миграции. Меня совершенно не устраивает ситуация в странах СНГ с неразвитостью регионов/провинции. Поэтому, буду рад любой интересной информации по теме.

Еще я пользовтель Mac (macbook pro). Это не понты и не дань моде, а просто хороший инструмент в моих руках. Делюсь опытом работы с Mac в отдельном блоге — Appleworms

Далее в перемешку.

Мне нравится:

  • минимализм в дизайне;
  • беспроводные устройства;
  • смотреть старое кино;
  • слушать инди-музыку;
  • катать детей на шее;
  • путешествовать;
  • работать с компьютером в командной строке;
  • рассказывать;

Не воспринимаю:

  • снобов;
  • шансон, попсу и эмо;
  • виндовз.

Линкотека №3. «Как ляжет карта». 3

Posted by dobrych Thu, 22 May 2008 20:29:00 GMT

Как я вчера обещал, начинаю активнее добавлять контент :-)

Третий выпуск «Линкотеки» посвящен картографии и Google maps в частности. К слову, тема вообще очень интересная и популярная. Я, честно говоря, недооценивал ее увлекательность и предлагаемые возможности, пока не столкнулся с ней в одном их своих новых проектов. В блогах все чаще можно услышать новомодную фразу гео-тегирование, а на разных социальных сервисах все чаще предлагают привязать какую-то виртуальную информацию к географическим координатам. Так что будте готовы наваять свой код, когда столкнетесь с необходимостью работать с гео-данными.

  • Mapstraction — JavaScript библиотека для работы с многими картографическими сервисами через единый API.

  • Modest Maps — Библиотека для работы с картографическими сервисами на ActionScript (v2 / v3) и Python.

  • cfis — Блог Charlie Savage, разработчика GIS систем. Много информации общего характера для понимания тонкостей картографического софта, плюс примеры кода.

  • Google maps. Snap to Polyline (example) — Пример JavaScript кода для привязки курсора к полигонам и полилиниям в Google maps.

  • Google maps. Resizable Polygons (example) — Пример JavaScript кода для создания полигонов с возможностью ресайзинга в Google maps.

  • Take Control of Your Maps — Отличный обзор картографического (GIS) софта для построения веб-приложений от «A List Apart».

  • jMaps jQuery plugin — Плагин к jQuery для базовой работы с Google maps.

  • GeoDjango — Отдельная ветка django, отлично заточенная на работу с гео-данными (GIS). Фич очень много, советую хотя бы ради интереса ознакомится. Главным я считаю полную интеграция с PostgreSQL PostGIS на уровне ORM.

  • django-geo — В отличии от GeoDjango, облегченный вариант для интеграции гео-данных в ваш django-проект.

На этом, пожалуй остановлюсь. Если тема GIS и работы с гео-данными интересна, дайте знать. Если нет, то я не буду закидывать вас неинтересным контентом. Просто есть мысли в следующих постах привести некоторые куски кода по теме с объяснениями.

GIS in web (links)

Есть ли жизнь на Марсе? 2

Posted by dobrych Tue, 20 May 2008 22:56:00 GMT

Привет, уважаемый читатель! Я уже месяц как не обновлял свой блог, но это совсем не значит, что «жизни на Марсе нет». :-)

За этот месяц в реальной жизни у меня случилось несколько важных изменений, благодаря которым я отложил свои «виртуальные» дела на некоторое время. Итак:

  • поменял работу;
  • отметил свой «четвертак» (25-летие);
  • решил некоторые личные накопившиеся вопросы.

Теперь маленький анонс:

  • В связи с новой работой и новыми задачами, расширяю свой технически-профессиональный кругозор; теперь кроме python и django, второй основной темой моих постов будет frontend-разработка (в частности JavaScript, Adobe AIR и может Flex).
  • Накопилось много интересных ссылок, так что обязательно в скором — Линкотека.
  • В одном из проектов мы используем Google Maps, поэтому скорее всего будут заметки и про картографию.
  • И конечно более подробно напишу о моем завершившемся проекте и о новых двух.

Так что, как говорят «там» — stay tuned! :-)

Есть ли жизнь на Марсе?

Еще немного про php 20

Posted by dobrych Sat, 05 Apr 2008 17:18:00 GMT

Тему я зацепил острую, так что будем наяривать дальше :-). Не думайте, что тематика блога сменится на php vs *. Нет, скажу пару мыслей и дам несколько ссылок. Думаю на ближайшее будующее этого хватит.

Итак, читайте пост Николая про субъективные причины выбора языка Python для веб-разработки — Блог компании SmartWeb: Почему Python (Муки выбора). Коменты пестрят конечно, но обратите внимание, что ребята целой командой писали до этого на Java, а не на php.

Советую послушать подкаст Димы ЧестныхPython против PHP. С юмором и по теме.

И немного наблюдений от себя. Последнии пару недель я получил достаточно много разного фидбека по теме корявости php. Так что получилась некоторая закономерность в общении. Итак, немного фактов.

  • Примерно 50% утверждавших, что php «рулит», не знают никакого другого языка программирования.
  • Около 20% счастливы от самого факта перехода с enterprise (Java, .NET) технологии на динамический язык (php) и пока не осознали, что его им мало.
  • Около 25-30% процентов считают отсутствие поддержки python или ruby хостинг-провайдерами причиной для торможения личного развития, как программиста.
  • Больше половины писавших на каком-то другом языке программирования перед php, долго на php не задерживаются.

И в довесок хочу дать ссылку на хорошую новую документацию, точнее даже набор примеров работы на python с мелкими задачами — Python-by-example. Оглавление разбито по python-модулям. Ну и конечно, если кто-то решил ознакомиться с python или собирается начать писать что-то на нем, и при этом не знает с чего начать, могу посоветовать книгу В глубь языка Python. Я в свое время начал с придуманной мной самим задачи и официальной документации :-)

UAWEB 2008. Моя презентация к докладу + фото. 5

Posted by dobrych Fri, 28 Mar 2008 18:26:00 GMT

Спасибо всем, кто подошел ко мне познакомиться/пообщаться, было очень интересно. Все пропустившие ждите видео с докладами...

Пока что не готов ничего написать толкового про саму конференцию, сделаю это позже. Но впечатления однозначно позитивные! Материал моего выступления смотрите в pdf и в Flash.

Updated: сегодня обработал фото, выбрал получше которые и залил. Кому будут нужны версии с бОльшим разрешением — пишите в комментах имя файла, я вышлю.

Архив zip 12 Мб

UAWEB 2008 5

Posted by dobrych Wed, 26 Mar 2008 22:13:00 GMT

Я буду говорить про django в пятницу 28-ого на конференции UAWEB-2008. Хотелось бы завести новые знакомства. Мое фото справа в сайдбаре. Подходите — буду рад пообщаться!

Постараюсь писать с конференции по мере возможности. И выкладывать фото. После выходных попробую сделать отчет.

Update: Смотрите фото, залил несколько на фламбер — UAWEB 2008. Буду по мере обработки докладывать.

Пять инструментов 7

Posted by dobrych Tue, 04 Mar 2008 15:48:00 GMT

Долго не мог принять эстфаету от Ивана — 5 инструментов хе-хе. Загруз был последнее время, но буду исправляться. Написал свой скупой список из пяти наиболее используемых инструментов в работе. Кого что-то заинтересует более подробно — спросите в комментариях, с удовольствием расскажу.

  1. MacBookPro — это действительно инструмент, такой как рубанок, дрель или лопата :-) Отличное устройство, я использую его мощь на полную катушку. Не буду особо распыляться как все круто, т.к. пиара маков в сети куча и без меня...

  2. Из софта — TextMate. Это мега-удобный редактор. Программирую и пишу статьи в нем.

  3. Шелл (shell) или терминал или командная строка — это то, что позволяет мне работать с файлами и процессами на компе эффективно.

  4. Firebug — наше все для дебага javascript/ajax и css.

  5. Зеленый чай с лимоном (особенно в холодное время года). Горячее меня бодрит и заставляет мозги думать лучше, плюс кофеин и витамин C из лимона поднимают тонус.

Линкотека №2 6

Posted by dobrych Tue, 26 Feb 2008 07:04:00 GMT

Готова вторая подборка интересных ссылок с моими комментариями.

  • Google GData Authentication decorator — пример кода для работы с документами google на python (удобный декоратор).
  • Control Suite : High Quality Controls & Widgets for Prototype — интересный набор контролов и виджетов для javascript библиотеки Prototype.
  • FastInit: a faster window.onload — готвый javascript код (кроссбраузерный) для убыстренной инициализации и вызова js-скриптов. Очень удобно использовать вместо window.onload.
  • Cross-Fade Anything — еще одна javascript библиотека для создания слайд-шоу эффекта в Prototype.
  • Ext JS - JavaScript Library — очередной javascript тулкит для создания rich ui. Особенность в том, что он позволяет строить оконные интерфейсы aka browser OS.
  • LightWindow — реинкарнация популярного Lightbox JS. Позволяет делать js popup с любым контентом, в отличии от lightbox, который позволяет делать popup только картинки.

PS: если вы использовали что-то из указанного в ссылках — поделитесь, пожалуйста. Думаю многим будет интересно узнать чужое мнение.

Older posts: 1 2 3 4