Django шаг за шагом

👁 57 просмотров

В данной ленте статей будут обсуждаться моменты использования фреймворка на Python для WEB — разработки  — Django. Весь цикл статей предполагают, что у читателя нет опыта написания на Django и что он не программировал на Python, но хоть какой-то опыт программирования у него есть. Так что, курс подойдет для любого читателя, интересующийся WEB — разработкой на Python для WEB.

Часть 4. Python/Django и Hello World. Структура проекта Django и создание приложений

👁 89 просмотров

Цикл статей «Django шаг за шагом»

Информация, которая будет дана в данном посте, исходя из заголовка, будет актуальная для версий Django 1.9.x и Python 3.4.x, что будут соответствовать последним версиям на момент написания поста. Для проверки версии Django — фреймворка существует замечательная команда:

python -c "import django; print(django.get_version())"

В мире так принято, что перед делом, надо знать, что делаешь и подходить нужно со знанием дела и, поэтому, это тот самый момент, когда пора понимать основу структуры проекта на Django. И, как уже отмечали, проект на Django — целое, которое составлено из отдельных частей(приложений, модулей, пакетов и т.п.), что дает ему гибкость в работе и продуктивность в использовании кода, соответственно. Создав проект мы должны, далее, уже создать приложения, которые будут выполнять в проекте ту или иную функцию.

Перед тем, как добавить новое приложение к проекту мы должны проделать шаги из серии прошлых частей постов, а именно:

  • установить интерпретатор Python;
  • установить менеджер пакетов pip;
  • установить модуль создания виртуальных  сред virtualenv через менеджера пакетов pip, что поможет нам управлять проектом находясь в UNIX — подобной среде;
  • создать виртуальную среду (например, test) и активировать его;
  • установить фреймворк Django через менеджера пакетов pip из активированной виртуальной среды;
  • создать новый проект(например, mysite) в текущей виртуальной среде.

Итак, проект под названием mysite у нас есть, осталось только добавить приложения к этому проекту. Но, перед этим, нужно разобраться со структурой. На данный момент, структура пустого проекта такова

django-proj-structure-for-post

По порядку разберем каждую папку и файл начального проекта, который не содержит приложений:

  • Внешняя папка mysite/ — эта директория является корневой папкой нашего сайта и просто контейнером, где будут создаваться наши приложения и файлы для управления проектом. Название данной директории ничего не значит для Django и его можно поменять на свое усмотрение;
  • manage.py — инструмент управления из командной строки при помощи которого можно управлять проектом различными путями. В частности, при помощи данного инструмента запускается наш проект на сервере Python. Про этот инструмент можно почитать дополнительно вот тут;
  • внутренняя директория mysite/ — это текущий и единственный, на данный момент, пакет Python в нашем проекте. Имя данного пакета. в дальнейшем, будет использовано для импорта внутренней структуры кода, к примеру, для импорта mysite.urls;
  • mysite/__init__.py — этот пустой файл предназначен для указания и регистрации пакетов. Наличие данного файла в директории mysite/ говорит Python, чтобы он различал эту директорию в виде пакета. Дополнительно об этом можно почитать тут;
  • mysite/settings.py — это файл установок и конфигурации текущего проекта Django;
  • mysite/urls.py — это URL — декларации текущего Django — проекта или, иначе говоря,“таблица контента” вашего Django-проекта. Дополнительно об этом можно почитать тут;
  • mysite/wsgi.py — точки входа для WSGI-совместимого веб-сервера. Подробно об этом тут.

После того, как разобрали начальную структуру пустого проекта, давайте создадим какое-нибудь(например, блог) приложение через команду:


python manage.py startapp blog 

После выполнения данной команды в корневой папке проекта появится новая директория blog/, которая будет содержать свой список файлов

django-proj-app-structure-for-post

Раскроем суть каждой папки и файла в приложении:

  • migrations/ — папка, в которой будут храниться миграции базы данных;
  • _init_.py — указание Python, чтобы он обработал папку приложения в виде пакета проекта;
  • admin.py — здесь хранятся настройки стандартной административной панели;
  • models.py — файл, в котором будут модели приложения;
  • test.py — песочница юнит-тестов;
  • views.py — файл для хранения видов.

Суть структуры приложения проекта на Django сводится к тому, что оно работает частично по образу MVC, но существенно отличается от этой модели хотябы потому, что контроллеры в MVC — это URL  Django.

Первая программа на LWUIT для Java ME

👁 48 просмотров

Цикл статей «Учебник Java ME и LWUIT»

Lightweight UI Toolkit — это легкая библиотека виджетов, вдохновленная из Swing, но спроектирована специально для девайсов, таких, как мобильные телефоны и телеприставки. Lightweight UI Toolkit поддерживает подключаемые, тематизированные иерархии компонентов, контейнеров и абстракции, лежащие в основе GUI. Термин «lightweight»(легкий) указывает на то, что виджеты в библиотеке прорисовываются в Java — исходнике, без нативного рендеринга. Внутренние интерфейсы и абстрактные классы предоставляют абстракцию интерфейсов и API, лежащие в основе профиля конфигурации. Это дает возможность портировать и мигрировать для обеих текущих и будущих профилей устройств. К примеру. Ниже, на рисунке представлена сокращенная иерархия абстракции классов LWUIT

lwuit-classes-simple-sample-ierarh

Библиотека Lightweight UI Toolkit очень строгая и не содержит в себе абстракцию системных сервисов, таких как сеть и память. LWUIT, также, не содержит реализацию нативных графических классов, посредством чего, нельзя и решать проблемы, связанные с UI кардинальными какими-то способами.

Ниже представлена первая программа, которая написана на чистом LWUIT

 

package lwuithello;
import com.sun.lwuit.Display;
import com.sun.lwuit.Form;
import com.sun.lwuit.Label;
import com.sun.lwuit.layouts.BorderLayout;
import com.sun.lwuit.plaf.UIManager;
import com.sun.lwuit.util.Resources;
import javax.microedition.midlet.MIDletStateChangeException;
public class Midlet extends javax.microedition.midlet.MIDlet {
    public void startApp() {
        //Выполняется при старте
        Display.init(this);//Инициализируем дисплей
        //Включаем к программе файл ресурсов
        try {
               Resources r = Resources.open("/res/myresource.res");
               UIManager.getInstance().setThemeProps(r.getTheme(r.getThemeResourceNames()[0]));
        } catch (java.io.IOException e) {}
        //Настройка и показ формы
        Form f = new Form();
        f.setTitle("Hello World");
        f.setLayout(new BorderLayout());
        f.addComponent(BorderLayout.CENTER, new Label("I am a Label"));
        f.show();
     }
    public void pauseApp() {
        //Выполняется в режиме паузы
    }
    protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
        //Выполняется при выходе
    }
}

 

Включение библиотеки LWUIT к проекту

👁 56 просмотров

Цикл статей «Учебник Java ME и LWUIT»

LWUIT — это сборка в виде библиотеки в формате *.jar и прежде, чем использовать весь функционал и возможности LWUIT в нашей программе нам необходимо его, сначала, скачать, обсудить сопутствующие инструменты и включить в проект Java ME.

Для скачивания LWUIT заходим на официальную страницу ORACLE. Перед загрузкой потребуется создание аккаунта на сайте ORACLE и согласиться с лицензией распространения ПО. На момент написания данной статьи, актуальной являлась версия LWUIT 1.5. В архиве вместе с LWUIT находятся несколько полезных инструментов, о которых мы сейчас поговорим.

Открываем архив с проектом и видим в нем несколько папок

LWUIT-zip-archive-ofarticle-img

В папке apps находятся демонстрационные программки, написанные на LWUIT, в папке docs находятся справочные материалы и руководства к использованию LWUIT, в папке lib находятся несколько версий библиотек для написания программ под специфичные задачи для разных платформ, а в папке resource editor находится немаловажная десктопная программа для создания внешних ресурсов для программы, которая способна создавать и изменять интерфейс, стили и схему прорисовки всех элементов, начиная от кнопок и заканчивая формами.

Редактор ресурсов LWUIT

Редактор ресурсов (resource editor) для LWUIT — это обычная компьютерная программа, написанная для платформы Java SE. Запустим ее для ознакомления, зайдя в папку resource editor и нажав на исполняемый файл ResourceEditor.jar

lwuit-res-editor-ofarticle-img

После открытия редактора можно сразу же приступить творить красивый дизайн для нашего проекта Java ME. Редактор позволяет создавать ресурсы, как из существующих шаблонов, которые встроены в программу, так и с нуля, поэтому, в любом случае можно не «потеряться» на начальном этапе проектирования. Рабочая область редактора ресурсов можно поделить на 3 части.

  1. Дерево проекта ресурса;
  2. панель редактирования элементов управления ресурса;
  3. Интерактивный просмотр измененных данных прямо в программе, не имея собранный Java ME проект.

lwuit-res-editor-main-win-ofarticle-img

Пока что сохраним наш ресурс под именем myresource.res где-нибудь, он нам пригодится далее при сборке Java ME приложения для демонстрации живого примера.

Подключение LWUIT к проекту Java ME в NetBeans

Подключение библиотеки LWUIT к проекту Java ME происходит обычным образом. Для этого, сначала создаем проект Java ME с названием LWUITHello

lwuit-add-lib-to-project-from-properties-ofarticle-img

Для подключения библиотеки заходим в папку lib, загруженного до этого архива, и копируем библиотеку LWUIT_MIDP.jar в папку нашего проекта в удобное место и далее заходим в свойства нашего проекта в NetBeans через левую кнопку клавиши мыши, открываем дерево Build и выбираем узел Libraries & Resources и в правой части через кнопку Add Jar/Zip… выбираем библиотеку LWUIT_MIDP.jar, которую мы добавили в папку нашего проекта, жмем «ОК» и все, теперь можно работать спокойно с LWUIT , он у нас уже доступен.

 

 

 

Введение в LWUIT

👁 31 просмотров

Цикл статей «Учебник Java ME и LWUIT»

Библиотека LWUIT(Lightweight UI Toolkit) помогает разрабатывать привлекательный графический пользовательский интерфейс (GUI) для приложений, создаваемые для мобильных телефонов и других устройств с поддержкой Java ME платформы и конфигурации CLDC с профилем MIDP 2.0 и выше.

modern-interface-of-java-me-lwuit-lib

LWUIT поддерживает визуальные компоненты и другие пользовательские ингредиенты интерфейса, такие как тематизация, перемещения, анимации и многое другое.

По сути дела, можно и обходиться без использования LWUIT, но это чревато с трудностями, которые не позволят нам создавать привлекательный и удобный интерфейс управления приложением, что, на данный момент, является необходимым постулатом для удачного продвижения программного продукта в массы.

Инструменты разработки и отладки для Java ME

👁 38 просмотров

Цикл статей «Учебник Java ME и LWUIT»

Есть немало инструментов разработки для Java ME платформы. Основными из них можно назвать:

  • IDE NetBeans от сообщества Java — разработчиков;
  • IDE Eclipse — проект, финансируемый IBM;
  • IDE IntelliJ IDEA — коммерческий продукт от Jet Brains;
  • IDE JDeveloper — собственный продукт компании Oracle.

Все эти среды разработки имеют свои плюсы и минусы. Принципиальной разницы на чем создавать проект — нет, так как для всех этих сред разработки есть плагины Java ME и каждый из них можно интегрировать с Java ME SDK и дело тут чисто в том, что вам по душе и на чем привычно писать код.

В данном учебнике, давая дань постам данного сайта, которые уже написаны на NetBeans, будет использована IDE NetBeans. Для эмуляции приложения и проверки кода есть встроенный эмулятор, который предоставляет с инструментами разработки JME SDK.