Изработка на сайт с Django

изработка на сайт с django

Изработка на сайт с Django
5 (100%) 20 гласа
Django e известен framework за създаване на динамични уеб приложения и сайтове. Базира се на MVC шаблона и е напълно безплатен за ползване и инсталиране. Използваме Django за проекти на наши клиенти за създаването на сложни уеб системи, които трябва да включват разнообразни функционалности. Разработен е в САЩ от Django Software Foundation и се поддържа активно от community.

Системата се базира изцяло на езика за програмиране Python. Това гарантира лесното четене и разбиране на програмния код, както и възможността за надграждане и поддръжка на готовото уеб приложение.

Изработка на сайт с Django

Използваме за разработка Django за създаването както на статични сайтове, които имат административен панел и възможност за редакция на съдържанието, така и за сложни и големи портали, които трябва да се справят със сериозен трафик и натоварване.

Някои от ключовите елементи за уеб приложенията на Django:

  • сайтовете се зареждат много бързо, понеже не се ползват излишни кодови фрагменти. За разлика от често използвани CMS платформи за изграждане на малки статични сайтове, Django предоставя възможност използване само на най-необходимото, за да се зареждат страниците светкавично, без излишен товар;
  • администрацията позволява промяна на елементи от дизайна и съдържанието на уеб приложението. Това изцяло зависи от разработчиците, но платформата го поддържа напълно;
  • има възможност за свързване с различни външни системи;
  • на разположение са библиотеки за почти всичко, необходимо е единствено да се включат;
  • приложенията може да се надграждат съвсем лесно с времето. Практически няма ограничения за допълнителните функционалности, който може да има Django сайт.

Поддръжка на Django приложение

Грижим се за поддръжката на различни уеб базирани приложения, написани на Python и на базата на Django. Поддръжката често се състои в:

  • инсталиране на допълнителни апликации (apps);
  • конфигуриране на основния settings.py файл;
  • настройка на URL адресите на апликация, чрез urls.py;
  • дефиниране на различни модели за обмен на информация с базата данни;
  • генериране и настройка на форми през forms.py;
  • дизайн и промяна на изгледи и шаблони.

Ако имате нужда от надстройка или промяна на уеб апликация на Django, можете да се свържете с нас през контактната форма.

ORM

Техниката за Object-relational mapping е много добре имплементирана в Django. Предоставя се възможност за боравене с база данни по един много лесен и интуитивен начин.

Ето един семпъл пример за извличане на данни за страница, чрез използването на ID:

try:
    current_page = Page.objects.get(pk=page_id)
except Page.DoesNotExist:
    raise Http404("Page does not exist")

Част от типовете бази данни, които може да се свържат с Django приложение са:

  • SQLite;
  • PostgreSQL;
  • MySQL;
  • Oracle.

В зависимост от конкретната ситуация – изборът на тип на базата данни е от изключително значение за производителността на платформата.

Хостинг за Django

Възможно е използването на споделен хостинг на уеб приложения на Python. В по-голямата част от случаите се ползва модулът flup за Python.

Инсталацията на flup става чрез следната команда:

pip install flup

Като за целта е добра практика да се използва virtualenv (Виртуална среда).

Предимства

Има много предимства, които правят Django предпочитан framework за изработка на скалируеми уеб приложения на Python. Част от тях са:

  • възможност за неограничено развитие на проекта;
  • четим и лесен за разбиране Python код;
  • сигурност и стабилност на системата;
  • голяма общност и бързо намиране на решение на всеки проблем;
  • бързина на зареждане при правилна оптимизация на модулите;

Кподдръжка на django приложениеато основен недостатък може да се отбележи фактът, че системата не е предназначена за начинаещи. За тази цел е необходимо да се свържете с фирма с програмисти с опит в разработката с Python (контактна форма). Добрата новина е, че управлението на съдържанието и други малки корекции в сайта може да се правят през административния панел.

Част от големите, световноизвестни компании, които използват Django са Instagram, Mozilla,Bitbucket, Disqus, The Washington Times.

Версии

В зависимост от версията на Python, която желаете да ползвате, както и от вашия хостинг е необходимо да изберете подходяща версия на Django. Някои от версиите вече не се поддържат официално от общността.

django версии и поддръжка

Нови версии излизат приблизително на всеки 8 месеца, като се предоставят security update-и няколко години след това. Този факт гарантира сериозната поддръжка и положителен тренд на развитие на системата.

За някои уеб проекти е необходимо използването на последната версия на framework-a, но в общия случай е достатъчна и по-стара версия. Например версия 1.6.5 се използва активно, макар вече да не се поддържа официално. Въпреки липсата на официална поддръжка, системите работят без забележими дефекти и са напълно функционални.

Към края на 2017 се очаква да бъде лансирана версия 2 на Django. Очакват се значителни подобрения свързани със скоростта и сигурността, както и много допълнителни удобства за разработчиците.

Официалният сайт за изтегляне на Django, както и  последните налични версии може да бъдат разгледани тук: https://www.djangoproject.com/download/.

Структура на Django приложение

В посочения пример е описана примерна структура на проект с две приложения blog и users, както и с две среди за разработка dev и prod.

myproject/
    manage.py
    myproject/
        __init__.py
        urls.py
        wsgi.py
        settings/
            __init__.py
            base.py
            dev.py
            prod.py
    blog/
        __init__.py
        models.py
        managers.py
        views.py
        urls.py
        templates/
            blog/
                base.html
                list.html
                detail.html
        static/
           …
        tests/
            __init__.py
            test_models.py
            test_managers.py
            test_views.py
    users/
        __init__.py
        models.py
        views.py
        urls.py
        templates/
            users/
                base.html
                list.html
                detail.html
        static/
            …
        tests/
            __init__.py
            test_models.py
            test_views.py
     static/
         css/
             …
         js/
             …
     templates/
         base.html
         index.html
     requirements/
         base.txt
         dev.txt
         test.txt
         prod.txt