10 užitečných balíčků pro Django
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

10 užitečných balíčků pro Django10 užitečných balíčků pro Django

 

10 užitečných balíčků pro Django

Google       Google       18. 9. 2013       17 560×

Každý z nás staví na odkazu svých předků. I programátoři. Nehrajte si proto na supermany a využijte to, co ostatní nabízí. Článek přináší přehled deseti zajímavých balíčků pro framework Django, které vám mohou ubrat bezesných nocí pomalého vývoje.

Reklama
Reklama

Pokud začínáte tento článek číst a nemáte přesnou představu, co to vlastně Django je, doporučuji se nejdříve podívat na český web o tomto frameworku, případně na oficiální dokumentaci. Pokud jste naopak ostřílení veteráni, nebude pro vás většina z projektů patrně neznámá. Máte-li své odlišné oblíbence, neváhejte se o ně podělit v diskuzi.

Každý z níže uvedených balíčků by měl jít bez problému nainstalovat pomocí nástroje pip.

pip install nazev-balicku

Pro většinu balíčků musíte ještě vykonat kromě instalace pár kroků navíc - patrně to bude přidání do INSTALLED_APPS. O tom, co vše musíte provést, aby aplikace fungovala, se dočtete na oficiálních stránkách projektů.

Autor článku je zároveň autorem některých ze zde uvedených projektů. ​

1. sorl-thumbnail

Balíček, který staví na knihovně PIL a nabízí jednoduché API pro vytváření náhledů a různých zmenšenin obrázků. Samozřejmostí je také ořezávání do potřebného formátu.

Ukázka nějčastějšího využití v šablonách:

{% load thumbnail %}

{% thumbnail item.image "100x100" crop="center" as im %}
    <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}

Více příkladů naleznete v dokumentaci projektu.

2. django-less

Pokud jste příznivci různých preprocesorů pro CSS, jistě oceníte jejich podporu v Djangu. Mým oblíbencem je Less, proto také uvádím tento balíček. Existují samozřejmě i cesty, jak použít jiné nástroje - v tom vám lépe než poradí Google.

Použití django-less je naprosto jednoduché - použít můžete jak inline styly, tak externí soubor.

{% load less %}

<!-- inline vlozeni stylu -->
<style>
  {% inlineless %}
    #header {
      h1 {
        font-size: 26px;
        font-weight: bold;
      }
      p { font-size: 12px;
        a { text-decoration: none;
          &:hover { border-width: 1px }
        }
      }
    }
  {% endless %}
</style>

<!-- externi soubor -->
<link rel="stylesheet" href="{{ STATIC_URL}}{% less "path/to/styles.less" %}" />

3. django-guardian

Ačkoli Django poskytuje základní správu oprávnění hned v základní instalaci, na mnoho komplexnějších věcí přestává stačit. Pokud budete chtít například per object oprávnění, budete muset sáhnout po nějakém rozšíření. 

A právě jedním z těchto nástrojů je django-guardian. Kromě možnosti přidat jednotlivá oprávnění ke každému objektu vám poskytne vylepšené API, integraci do administrace Djanga a pár užitečných dekorátorů a template tagů. Protože nasazení této aplikace není úplně triviální, místo uvedení příkladů použití vás rovnou odkáži na oficiální dokumentaci.

4. cstypo

Nástroj, který pomáhá na text aplikovat základní česká typografická pravidla. Krom záměny tří teček na výpustku, převedení uvozovek a použití správných pomlček a spojovníků vám také přidá nedělitelné mezery za jednoznakové předložky, zformátuje data atd. 

Zpracovat dokáže jak obyčejný text, tak HTML dokument:

{% load cstags %}

{{ text|typify }}                # zpracování obyčejného textu (výchozí)
{{ text|typify:'txt' }}          # ...

{{ text|typify:'html' }}         # zpracování html
{{ text|typify:'html'|safe }}    

5. django-embed-video

Jak vložit do stránek video z YouTube nebo z Vimeo by z hlavy dokázal říct správně asi málokdo. Triviálním řešením je zkopírovat kód pro sdílení a upravit potřebné atributy. Elegantnějším řešením je použít django-embed-video. To vám kromě základního zobrazení pomocí template tagů nabídne i práci s náhledy.

{% load embed_video_tags %}

{{ 'http://www.youtube.com/watch?v=guXyvo2FfLs'|embed:'large' }}

6. django-extensions

Základní nabídka příkazů je v Djangu sice pro většinu potřeb dostačující, občas ale budete potřebovat něco extra. A je velká šance, že se vám bude hodit právě tento projekt. Nabízí toho celou řadu, od generování grafů z modelů, přes upravený vývojový server až po vylepšený shell.

python manage.py export_emails > adresses.txt

7. django-floppyforms

Práce s formuláři bývá v Djangu často kostrbatá. Psaní čistého HTML je zdlouhavé, výchozí generování formulářů je špatně přizpůsobitelné a různé přesouvání z šablon do formulářových tříd také není ideální. Rozumným kompromisem se zdá být právě django-floppyforms

Nejužitečnější vlastností je asi vytváření šablon pro jednotlivé prvky formuláře, díky čemuž lze snadno používat různé HTML frameworky, např. Bootstrap. Kromě toho nabízí HTML5 tagy, vlastní form fieldy a widgety pro práci s mapami (ve spolupráci s GeoDjangem).

Pro použití je opět nejlepší prostudovat dokumentaci.

8. django-debug-toolbar

Django debug toolbar

Odladit aplikaci, aby pracovala správně a rychle, bývá někdy obtížnější než její napsání. Vypořádat se s tímto nepříjemným úkolem vám pomůže django-debug-toolbar, který ve formě postranního panelu poskytne snadný přístup k nejrůznějším interním informacím, nastavení, SQL dotazům a dalším.

Kromě toho je možné rozšířit ho o externí panely - informace o Memcache, MongoDB nebo například o validátor HTML.

9. lettuce

Kdo ještě nepíše testy, měl by co nejrychleji začít. Kromě unittestů lze psát i funkcionální testy, ve kterých simulujete pohyb uživatele po webu a kontrolujete, zda vše funguje, tak jak má. Nejde o nic složitějšího, než obyčejné "proklikání" webu, které ověří, jestli se po úpravě něco nerozsypalo. Jediný rozdíl je v tom, že to provedete automaticky.

Právě toto dělá lettuce. Jedná se o projekt inspirovaný nástrojem Cucumber, známým ze světa Ruby. Propojení s Djangem není obtížné a díky podpoře různých backendů je možné rozběhat tyto testy i na serveru bez grafického prostředí (např. pomocí PhantomJS).

Feature: Working with contributors settings
    Scenario: Change name
        Given I log in as "joe@home.com" with password "joe2013athome"
        And I go to "/my/settings/"
        And I write "Joe" to "first_name"
        And I write "Novak" to "last_name"
        And I click to "#submit-id-save"
        Then there is "#messages .alert.alert-success"
        And I see "Joe" in "#id_first_name"
        And I see "Novak" in "#id_last_name"
        And I write "Joe Allen" to "first_name"
        And I write "Smith" to "last_name"
        And I click to "#submit-id-save"
        Then there is "#messages .alert.alert-success"
        And I see "Joe Allen" in "#id_first_name"
        And I see "Smith" in "#id_last_name"

10. south

Ač jsem south nechal až na konec, jedná se o velmi důležitý nástroj, bez kterého se obejdete jen stěží. Umožní vám totiž provádět migrace databáze - přidávat a ubírat položky v modelech, měnit jejich názvy apod. Podporuje i migraci dat, různé před a po migrační signály, podporu vlastních polí a další. I zde vás odkáži na pročtení manuálu.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Tagy:
3 názory  —  3 nové  
Hlasování bylo ukončeno    
12 hlasů
Google
(fotka) Juda KaletaAutor programuje v PHP a Pythonu, má velmi rád Linux a svobodný software. Také občas vyrazí do terénu s fotoaparátem. Většinu takto získaného materiálu publikuje na svém blogu.
Web     Facebook     LinkedIn    

Nové články

Obrázek ke článku Nový IT hráč na českém trhu

Nový IT hráč na českém trhu

V roce 2015 otevřela v Praze na Pankráci v budově City Tower své kanceláře společnost EPAM Systems (NYSE:EPAM), jejíž centrála se nachází v USA. Společnost byla založená v roce 1993 a od té doby prošla velkým vývojem a stále roste.

Reklama
Reklama
Obrázek ke článku České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace (CRA) pořádají druhý ročník CRA IoT Hackathonů. Zájemci z řad vývojářů a fanoušků moderních technologií mohou změřit své síly a během jediného dne sestrojit co nejzajímavější funkční prototyp zařízení, které bude komunikovat prostřednictvím sítě LoRa. CRA IoT Hackathony se letos uskuteční ve dvou fázích, na jaře a na podzim, v různých městech České republiky. Jarní běh se odstartuje 31. března v Brně a 7. dubna v Praze.

Obrázek ke článku Cloud computing je využíván stále intenzivněji

Cloud computing je využíván stále intenzivněji

Využívání cloud computingu nabývá na intenzitě. Jen v letošním roce vzroste podle analytiků trh se službami veřejného cloudu o 18 %, přičemž o téměř 37 % vzrostou služby typu IaaS. Růst o více než pětinu pak čeká služby poskytování softwaru formou služby, tedy SaaS. Aktuálním trendům v oblasti využívání cloudu se bude věnovat konference Cloud computing v praxi, která se koná 23. března. 2017 v pražském Kongresovém centru Vavruška na Karlově náměstí 5.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý