# Τεκμηρίωση του Django - 5.2.8

# Συχνές Ερωτήσεις: Γενικά

## Γιατί υπάρχει το Django;

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.

Το καλοκαίρι του 2005, η World Online αποφάσισε να μετατρέψει αυτό το λογισμικό σε ανοιχτού κώδικα, το Django. Το Django δεν θα ήταν δυνατόν να δημιουργηθεί χωρίς την πληθώρα ανοικτού λογισμικού projects – όπως Apache, Python, και PostgreSQL – και είμαστε ενθουσιασμένοι που μπορέσαμε να δώσουμε κάτι πίσω στην κοινότητα.

## Τι σημαίνει «Django» και πως προφέρεται;

Το Django ονομάστηκε έτσι από τον Django Reinhardt, έναν κιθαρίστα της jazz manouche σκηνής από τη δεκαετία του 1930 μέχρι τις αρχές της δεκαετίας του 1950. Μέχρι σήμερα θεωρείται ένας από τους μεγαλύτερους κιθαρίστες όλων των εποχών.

Ακούστε τη μουσική του. Θα σας αρέσει.

Το Django προφέρεται ως JANG-oh. Κάνει ρίμα με το FANG-oh. Το «D» δεν προφέρεται.

Έχουμε, επίσης, ηχογραφήσει την προφορά του.

## Είναι το Django σταθερό;

Ναι, είναι αρκετά σταθερό. Εταιρίες όπως Disqus, Instagram, Pinterest, και Mozilla χρησιμοποιούν το Django για πολλά χρόνια. Οι ιστοσελίδες που χτίστηκαν βάση του Django έχουν επισκεψιμότητα σε ώρα αιχμής πάνω από 50 χιλιάδες requests το δευτερόλεπτο.

## Κλιμακώνεται το Django;

Φυσικά. Εν συγκρίσει με το χρόνο ανάπτυξης, το hardware είναι φθηνό και επομένως το Django είναι σχεδιασμένο να εκμεταλλεύεται όσο hardware του προσθέσετε.

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

Το framework ξεχωρίζει πολύ καθαρά τα components μεταξύ τους όπως το επίπεδο του database και του application. Επίσης, δίνεται με ένα πολύ απλό αλλά και ισχυρό παράλληλα cache framework.

## Ποιος είναι πίσω απ” αυτό;

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.

## How is Django licensed?

Django is distributed under the 3-clause BSD license. This is an open source license granting broad permissions to modify and redistribute Django.

## Why does Django include Python’s license file?

Django includes code from the Python standard library. Python is distributed under a permissive open source license. A copy of the Python license is included with Django for compliance with Python’s terms.

## Ποιες ιστοσελίδες χρησιμοποιούν το Django;

BuiltWithDjango.com features a constantly growing list of Django-powered sites.

## Το Django φαίνεται να είναι ένα MVC framework, αλλά εσείς καλείτε τον Controller ως «view» και το View ως «template». Γιατί δεν χρησιμοποιείτε τα συνήθη ονόματα;

Ξέρετε, τα συνήθη ονόματα είναι διαπραγματεύσιμα.

Στη δική μας ερμηνεία του MVC, το «view» περιγράφει τα δεδομένα τα οποία προβάλλονται στον χρήστη. Δεν είναι απαραίτητα το πως δείχνουν τα δεδομένα αλλά ποια δεδομένα προβάλλονται. Το view περιγράφει ποια data βλέπετε, όχι το πως τα βλέπετε. Αποτελεί μια λεπτή διάκριση.

Επομένως, στη δικιά μας περίπτωση, ένα «view» είναι μια Python callback συνάρτηση για ένα συγκεκριμένο URL, επειδή αυτή η callback συνάρτηση περιγράφει ποια data θα προβληθούν.

Επιπροσθέτως, είναι λογικό να διαχωρίζουμε το περιεχόμενο από την παρουσίαση – όπου κάπου εδώ έρχεται η έννοια των templates. Στο Django, το «view» περιγράφει ποια data θα προβληθούν, αλλά ένα view συνήθως αναθέτει σε ένα template την προβολή των δεδομένων – το πως, δηλαδή, θα προβληθούν τα data.

Σύμφωνα με τα παραπάνω, που κολλάει ο «controller»; Στην περίπτωση του Django, είναι μάλλον το ίδιο το framework: ο μηχανισμός που στέλνει το request στο κατάλληλο view, σύμφωνα με τη διαμόρφωση των Django URLs.

Αν διψάτε για ακρωνύμια, θα λέγατε μάλλον ότι το Django είναι ένα «MTV» framework – δηλαδή, «model», «template», και «view.» Αυτή η ανάλυση είναι πιο κατανοητή.

At the end of the day, it comes down to getting stuff done. And, regardless of how things are named, Django gets stuff done in a way that’s most logical to us.

## Το <Framework X> κάνει το <feature Y> – γιατί όχι το Django?

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.

## Γιατί γράψατε το Django από την αρχή, αντί να χρησιμοποιήσετε ήδη υπάρχουσες Python βιβλιοθήκες;

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

Κατά τη γνώμη μας, κανένα από αυτά δεν μας κάλυπτε.

Είμαστε επιλεκτικοί. Μπορείτε, επίσης, να μας προσφωνείτε τελειομανείς. (με προθεσμίες.)

Με τον καιρό,συναντήσαμε κάποιες ανοικτού λογισμικού βιβλιοθήκες οι οποίες έκαναν πράγματα τα οποία είχαμε ήδη υλοποιήσει. Ήταν καθησυχαστικό να βλέπεις άλλους ανθρώπους να λύνουν παρόμοια προβλήματα με παρόμοιους τρόπους αλλά ήταν ήδη αργά: είχαμε ήδη γράψει, τεστάρει και υλοποιήσει τα δικά μας κομμάτια του framework με ποικίλες ρυθμίσεις σε παραγωγικό περιβάλλον – και ο κώδικας μας ικανοποιούσε τις ανάγκες μας εξαιρετικά.

Σε πολλές περιπτώσεις, ωστόσο, βρήκαμε ότι κάποια frameworks/tools είχαν αναπόφευκτα μερικά θεμελιώδη μοιραία ελαττώματα που μας έφεραν τάση προς εμετό. Κανένα εργαλείο δεν ταιριάζει στις φιλοσοφίες μας 100%.

Όπως είπαμε: είμαστε επιλεκτικοί.

Έχουμε τεκμηριώσει τις φιλοσοφίες μας στο άρθρο φιλοσοφίες σχεδιασμού.

## Είναι το Django ένα content-management-system (CMS);

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.

Για παράδειγμα, δεν βγάζει και πολύ νόημα να συγκρίνετε π.χ το Django με το Drupal, επειδή το Django είναι κάτι που χρησιμοποιείς για να δημιουργήσεις πράγματα όπως το Drupal.

Yes, Django’s automatic admin site is fantastic and timesaving – but the admin site is one module of Django the framework. Furthermore, although Django has special conveniences for building «CMS-y» apps, that doesn’t mean it’s not just as appropriate for building «non-CMS-y» apps (whatever that means!).

## Πως μπορώ να κατεβάσω το Django documentation για να το διαβάζω εκτός δικτύου;

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.

Because the documentation is stored in revision control, you can browse documentation changes just like you can browse code changes.

Τεχνικώς, τα docs της ιστοσελίδας του Django παράγονται από τις τελευταίες development εκδόσεις αυτών των reST αρχείων, επομένως τα docs στο revision control προσφέρουν περισσότερη πληροφορία από αυτή που έρχεται με την τελευταία διανομή του Django.

## Πως μπορώ να αναφερθώ στο Django;

Είναι δύσκολο να δώσουμε μία επίσημη μορφή αναφοράς για δύο λόγους: οι μορφές αναφοράς διαφέρουν σημαντικά ανάμεσα σε εκδόσεις και τα στάνταρντ των αναφορών για το λογισμικό είναι ακόμη υπό διαπραγμάτευση.

For example, APA style, would dictate something like:

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

Ωστόσο, ο μόνος αληθινός οδηγός είναι αυτό που θα αποδεχόταν ο εκδότης σας. Οπότε, δημιουργήστε ένα αντίγραφο από αυτές τις κατευθυντήριες γραμμές και γεμίστε τα κενά στο μέγιστο των δυνατοτήτων σας.

Αν ο οδηγός του στυλ αναφοράς σας απαιτεί όνομα εκδότη, τότε χρησιμοποιήστε το «Django Software Foundation».

Αν χρειάζεστε τοποθεσία έκδοσης, χρησιμοποιήστε την «Lawrence, Kansas».

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

Αν χρειάζεστε όνομα, χρησιμοποιήστε απλά το «Django».

Αν χρειάζεστε ημερομηνία έκδοσης, χρησιμοποιήστε το έτος της διανομής της έκδοσης Django που χρησιμοποιείτε (πχ 2016 για την έκδοση v1.10)

## Where can I find more Django resources?

The Steering Council maintains a collection of Django third-party packages, organizations and resources at https://www.djangoproject.com/community/ecosystem/.

That page will be updated to contain links to various Django content such as podcasts, videos, conferences, blogs, books, and learning resources. It also features popular, robust, community-maintained packages.