Często zadawane pytania: Ogólne

Dlaczego ten projekt istnieje?

Django grew from a very practical need: World Online, a newspaper web operation, is responsible for building intensive web applications on journalism deadlines. In the fast-paced newsroom, World Online often has only a matter of hours to take a complicated web application from concept to public launch.

At the same time, the World Online web developers have consistently been perfectionists when it comes to following best practices of web development.

In fall 2003, the World Online developers (Adrian Holovaty and Simon Willison) ditched PHP and began using Python to develop its websites. As they built intensive, richly interactive sites such as Lawrence.com, they began to extract a generic web development framework that let them build web applications more and more quickly. They tweaked this framework constantly, adding improvements over two years.

Latem 2005 World Online postanowiło z-open-source’ować wynikowe oprogramowanie, Django. Django nie byłoby możliwe bez mnóstwa projektów open-source’owych – Apachea, Pythona i PostgreSQL-a, wymieniając tylko kilka – i jesteśmy zachwyceni mogąc oddać coś społeczności open-source.

Co znaczy „Django” i jak wymawiać tę nazwę?

Django zostało nazwane imieniem Django Reinhardta, gitarzysty gypsy jazz z lat 30. do wczesnych 50. XX wieku. Do dnia dzisiejszego jest on uważany za jednego z najlepszych gitarzystów jazzowych wszechczasów.

Posłuchaj jego muzyki. Spodoba ci się.

Django wymawia się jako dżan-go. Rymuje się z tan-go. Akcentujemy pierwszą sylabę.

Nagraliśmy też klip audio z wymową.

Czy Django jest stabilne?

Tak, jest całkiem stabilne. Firmy takie jak Disqus, Instagram, Pinterest i Mozilla używają Django od wielu lat. Strony budowane na Django przetrwały skoki odwiedzin rzędu ponad 50 tysięcy odsłon na sekundę.

Czy Django jest skalowalne?

Tak. W porównaniu z czasem developmentu, sprzęt jest tani. Właśnie dlatego Django jest zaprojektowane tak, aby wykorzystać jego potencjał tak bardzo, jak to możliwe.

Django uses a „shared-nothing” architecture, which means you can add hardware at any level – database servers, caching servers or web/application servers.

Framework czysto oddziela komponenty takie jak warstwa bazy danych i warstwa aplikacji. I dostarcza je w prostym-ale-potężnym frameworku cache’owania.

Kto za tym stoi?

Django was originally developed at World Online, the web department of a newspaper in Lawrence, Kansas, USA. Django’s now run by an international team of volunteers.

Jak licencjonowane jest Django?

Django udostępniony jest na 3-klauzulowej licencji BSD. Jest to licencja tzw. open source, która przydziela szeroki wachlarz uprawnień do modyfikacji i redystrybuowania Django.

Dlaczego Django zawiera pliki licencyjne samego Pythona?

Django zawiera kod pochodzący z biblioteki standardowej Pythona. Python z kolei dystrybuowany jest na zasadach własnej licencji open source. Kopia licencji Pythona zawarta jest w Django dla zgodności z zasadami Pythona.

Jakie strony używają Django?

DjangoSites.org posiada stale rosnącą listę stron działających dzięki Django.

Django wygląda, jakby było frameworkiem MVC, ale Kontroler nazywacie „widokiem” a Widok „szablonem”. Dlaczego nie używacie standardowych nazw?

Cóż, standardowe nazwy są sporne.

W naszej interpretacji MVC „widok” opisuje dane, które zostaną zaprezentowane użytkownikowi. Nie jest istotne jak dane wyglądają, ale kiedy są one prezentowane. Widok opisuje jakie dane widzisz, nie jak je zobaczyć. To subtelna różnica.

Zatem w naszym przypadku „widok” to pythonowa funkcja callbackowa dla poszczególnego URL-a, gdyż ta właśnie funkcja definiuje, jakie dane są prezentowane.

Ponadto, rozsądne jest odseparowanie zawartości od prezentacji – co realizowane jest przez szablony. W django „widok” opisuje, jakie dane są prezentowane, ale widok standardowo odwołuje się do szablonu, który opisuje jak dane są prezentowane.

Gdzie w takim razie pasuje „kontroler”? W przypadku Django to najprawdopodobniej sam framework: machineria, która wysyła zapytanie do odpowiedniego widoku, na podstawie konfiguracji URL Django.

Jeśli jesteś żądny akronimów, możesz mówić, że Django to framework „MTV” – to znaczy „model”, „szablon” („template”) i „widok” („view”). Taki podział nadaje o wiele więcej sensu.

W końcu chodzi o wykonywanie swojej roboty. I, niezależnie jak to nazwiemy, Django wykonuje robotę w sposób, który jest dla nas najlogiczniejszy.

<Framework X> posiada <funkcję Y> – dlaczego Django nie?

We’re well aware that there are other awesome web frameworks out there, and we’re not averse to borrowing ideas where appropriate. However, Django was developed precisely because we were unhappy with the status quo, so please be aware that „because <Framework X> does it” is not going to be sufficient reason to add a given feature to Django.

Dlaczego napisaliście całość Django od podstaw zamiast użyć innych bibliotek Pythona?

When Django was originally written, Adrian and Simon spent quite a bit of time exploring the various Python web frameworks available.

Naszym zdaniem żaden z nich nie był wystarczająco dobrej jakości.

Jesteśmy ostrożni. Możesz nawet nazwać nas perfekcjonistami. (Z deadline’ami.)

Z czasem natknęliśmy się na otwarte biblioteki, które robiły rzeczy, które już zaimplementowaliśmy. Uspokajający był fakt, że inni rozwiązują podobne problemy w podobny sposób, ale było za późno, aby integrować zewnętrzny kod: już napisaliśmy, przetestowaliśmy i zaimplementowaliśmy fragmenty naszego frameworka w kilku produkcyjnych rozwiązaniach – i nasz własny kod w sposób wyśmienity spełniał nasze oczekiwania.

W większości przypadków jednak okazywało się, że istniejące frameworki/narzędzia nieuchronnie miały jakieś fundamentalne, fatalne błędy, które uczyniły nas przeczulonymi. Żadne narzędzie nie pasuje do naszych filozofii w 100%.

Tak jak mówiliśmy: Jesteśmy ostrożni.

Udokumentowaliśmy nasze filozofie na stronie filozofii projektowych.

Czy Django jest systemem zarządzania treścią (CMS-em)?

No, Django is not a CMS, or any sort of „turnkey product” in and of itself. It’s a web framework; it’s a programming tool that lets you build websites.

Na przykład nie ma wiele sensu porównywać Django do czegoś podobnego do Drupala, ponieważ Django jest czymś, co używasz, by tworzyć rzeczy takie jak Drupal.

Tak, automatyczny panel administracyjny Django jest fantastyczny i pozwala oszczędzić czas – ale panel jest jednym modułem frameworka Django. Co więcej, pomimo że Django ma udogodnienia do budowania „CMS-owych” aplikacji, nie znaczy to, że jest mniej odpowiednie do budowania „nie-CMS-owych” aplikacji (cokolwiek to znaczy!).

Jak mogę pobrać dokumentację Django, aby czytać ją offline?

The Django docs are available in the docs directory of each Django tarball release. These docs are in reST (reStructuredText) format, and each text file corresponds to a web page on the official Django site.

Jako że dokumentacja jest przechowywana w kontroli wersji, możesz przeglądać zmiany dokumentacji tak samo jak zmiany w kodzie.

Technicznie rzecz biorąc, dokumentacja na stronie Django jest generowana z ostatnich wersji rozwojowych tych dokumentów reST, więc dokumentacja na stronach Django może oferować więcej informacji niż dokumentacja, która jest załączona do najnowszego wydania Django.

Jak mogę cytować Django?

Trudno jest podać oficjalny format cytowania z dwóch powodów: formaty cytowań mogą różnić się ogromnie między publikacjami, oraz standardy cytowania oprogramowania wciąż są przedmiotem pewnej debaty.

Na przykład styl APA, narzuciłby coś takiego:

Django (Version 1.5) [Computer Software]. (2013). Retrieved from https://www.djangoproject.com/.

Jedynym prawdziwym przewodnikiem jest to, co zaakceptuje twój wydawca. Zdobądź więc kopię wskazówek wydawcy i wypełnij puste pola najlepiej jak możesz.

Jeśli wskazówki stylu cytowań wymagają nazwy wydawcy, użyj „Django Software Foundation”.

Jeśli potrzebujesz lokalizacji publikacji, użyj „Lawrence, Kansas”.

If you need a web address, use https://www.djangoproject.com/.

Jeśli potrzebujesz nazwy, po prostu użyj „Django” bez żadnego sloganu.

Jeśli potrzebujesz daty publikacji, użyj roku wydania wersji do której się odnosisz (np. 2013 dla v1.5)

Back to Top