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

# Εγχειρίδιο Django

Όλα όσα χρειάζεται να ξέρετε για το Django.

## Μέρη για βοήθεια

Έχετε κάποιο πρόβλημα; Θα χαρούμε να σας βοηθήσουμε!

- Δοκιμάστε το άρθρο Συχνές ερωτήσεις (FAQ) – έχει τις απαντήσεις στις πιο συνηθισμένες ερωτήσεις.

- Μήπως ψάχνετε κάτι συγκεκριμένο; Δείτε στα Ευρετήριο, στο Ευρετήριο μονάδων ή στον αναλυτικό πίνακα περιεχομένων.

- Μπορείτε να ψάξετε για πληροφορίες στα αρχεία του mailing list των django-users ή να ρωτήσετε εκεί.

- Εναλλακτικά, μπορείτε να ρωτήσετε στο κανάλι #django του IRC ή να ψάξετε τα IRC logs για να δείτε αν ερώτηση σας έχει απαντηθεί στο παρελθόν.

- Αναφέρετε τυχόν bugs του Django στον ticket tracker.

## Πως είναι δομημένο το documentation

Το Django έχει πολύ documentation. Μια επισκόπηση της οργάνωσης του θα σας βοηθήσει να γνωρίζετε πού να ψάξετε για κάτι συγκεκριμένο:

- Οι οδηγοί (tutorials) μας θα σας οδηγήσουν βήμα-βήμα στη δημιουργία μιας Web εφαρμογής (Web application). Ξεκινήστε από εκεί εάν είστε καινούργιοι στο Django ή στο Web application development. Επίσης ρίξτε μια ματιά στα “Πρώτα βήματα” πιο κάτω.

- Το άρθρο χρησιμοποιώντας το Django συζητά επιγραμματικά για βασικά θέματα και έννοιες και παρέχει χρήσιμες πληροφορίες και τεκμηριώσεις.

- Οι οδηγοί αναφορών περιέχουν τεχνικές αναφορές για τα API και άλλες πτυχές του μηχανισμού του Django. Περιγράφουν πώς λειτουργεί και πώς να το χρησιμοποιήσετε αλλά προϋποθέτει ότι έχετε γνώση βασικών θεμάτων σχετικά με το Django.

- Οι οδηγοί how-to είναι συνταγές. Σας καθοδηγούν μέσα από βήματα για την επίλυση κοινών προβλημάτων. Είναι πιο προχωρημένα από τα tutorials και προϋποθέτουν ότι έχετε γνώση του τρόπου λειτουργίας του Django.

## Πρώτα βήματα

Είστε καινούργιος στο Django ή στον προγραμματισμό; Αυτό είναι το κατάλληλο μέρος για να αρχίσετε!

- Από την αρχή: Επισκόπηση | Εγκατάσταση

- Οδηγοί: Μέρος 1: Requests και responses | Μέρος 2: Μοντέλα και το site διαχείρισης | Μέρος 3: Τα views και τα templates | Μέρος 4: Φόρμες και τα generic views | Μέρος 5: Τεστ | Μέρος 6: Στατικά αρχεία | Μέρος 7: Παραμετροποιώντας το site διαχείρισης

- Οδηγοί για προχωρημένους: Πως να γράψετε επαναχρησιμοποιήσιμα apps | Γράφοντας το πρώτο σας patch για το Django

## Το επίπεδο του μοντέλου (model layer)

Το Django παρέχει ένα αφηρημένο layer (τα μοντέλα – “models”) για τη δόμηση και το χειρισμό των δεδομένων της Web εφαρμογής σας. Μάθετε περισσότερα παρακάτω:

- Μοντέλα: Εισαγωγή στα μοντέλα | Τύποι πεδίων | Ευρετήρια (indexes) | Επιλογές Meta | Η κλάση Model

- QuerySets: Πραγματοποιώντας queries | QuerySet API | Lookup expressions

- Model instances: Μέθοδοι του instance | Τρόποι πρόσβασης σε συσχετισμένα objects

- Migrations: Εισαγωγή στα migrations | Λειτουργίες των migrations | SchemaEditor | Γράφοντας migrations

- Για προχωρημένους: Managers | Raw SQL | Transactions | Aggregation | Εύρεση | Προσαρμοσμένα πεδία (fields) μοντέλων | Πολλαπλές βάσεις δεδομένων | Προσαρμοσμένα lookups | Query Expressions | Conditional Expressions | Συναρτήσεις βάσης δεδομένων

- Διάφορα: Υποστηριζόμενες βάσεις δεδομένων | Απαρχαιωμένες βάσεις δεδομένων | Παρέχοντας αρχικές τιμές στα μοντέλα σας | Βελτιστοποίηση πρόσβασης στη βάση δεδομένων | Συγκεκριμένα features για την PostgreSQL

## Το επίπεδο του view

Το Django έχει την έννοια των “views” για να αναπαραστήσει τη λογική η οποία είναι υπεύθυνη για την επεξεργασία του request του χρήστη και της επιστροφής ενός response. Βρείτε όλα όσα θα θέλατε να μάθετε για τα views παρακάτω:

- The basics: URLconfs | View functions | Shortcuts | Decorators

- Αναφορά: Built-in Views | Request/response objects | TemplateResponse objects

- Ανέβασμα αρχείων: Επισκόπηση | File objects | Storage API | Διαχειρίζοντας τα αρχεία | Προσαρμοσμένο storage

- Class-based views: Επισκόπηση | Built-in views για εμφάνιση | Built-in views για επεξεργασία | Χρησιμοποιώντας mixins | Αναφορά του API | Flattened index

- Για προχωρημένους: Δημιουργώντας CSV | Δημιουργώντας PDF

- Middleware: Επισκόπηση | Built-in middleware classes

## Το επίπεδο template

Το επίπεδο template παρέχει ένα φιλικό προς τον designer συντακτικό για να γίνει render η πληροφορία που παρουσιάζεται στον χρήστη. Μάθετε πως αυτό το συντακτικό μπορεί να χρησιμοποιηθεί από τους designers και πως μπορεί να επεκταθεί από τους προγραμματιστές:

- Τα βασικά: Επισκόπηση

- Για τους designers: Επισκόπηση της γλώσσας | Built-in tags και φίλτρα (filters) | Humanization

- Για τους προγραμματιστές: Template API | Προσαρμοσμένα tags και φίλτρα (filters)

## Φόρμες

Το Django παρέχει ένα πλούσιο framework για να σας διευκολύνει με την δημιουργία των φορμών και τον χειρισμό των δεδομένων των φορμών (form data).

- Τα βασικά: Επισκόπηση | Form API | Built-in πεδία (fields) | Built-in widgets

- Για προχωρημένους: Φόρμες για μοντέλα | Ενσωματώνοντας αρχεία πολυμέσων | Formsets | Προσαρμοσμένo validation

## Η διαδικασία της ανάπτυξης (development proccess)

Μάθετε για τα διάφορα components και εργαλεία του Django προκειμένου να σας βοηθήσουν στην ανάπτυξη και στο testing της εφαρμογής σας:

- Ρυθμίσεις: Επισκόπηση | Πλήρης λίστα με τις ρυθμίσεις

- Εφαρμογές: Επισκόπηση

- Exceptions: Επισκόπηση

- django-admin και manage.py: Επισκόπηση | Προσθέτοντας δικές σας διαχειριστικές εντολές

- Τεστ: Εισαγωγή | Γράφοντας και τρέχοντας τα τεστ | Συμπεριλαμβανόμενα εργαλεία για τεστ | Θέματα για προχωρημένους

- Deployment: Επισκόπηση | WSGI servers | Production server και static files | Αναφορά σφάλματος μέσω email

## Το site διαχείρισης

Βρείτε όλα όσα θα θέλατε να μάθετε σχετικά με το αυτοματοποιημένο διαχειριστικό site του Django, ένα από τα πιο δημοφιλή features του Django:

- Το site διαχείρισης

- Ενέργειες (actions) admin

- Γεννήτρια documentation του admin

## Ασφάλεια

Η ασφάλεια είναι ένα θέμα υψίστης σημασίας στην ανάπτυξη των Web εφαρμογών. Το Django παρέχει πολλαπλά προστατευτικά εργαλεία και μηχανισμούς:

- Επισκόπηση ασφάλειας

- Αποκαλυφθέντα θέματα ασφαλείας στο Django

- Προστασία από clickjacking

- Προστασία από Cross Site Request Forgery

- Cryptographic signing
- Security Middleware

## Internationalization και localization

Το Django προσφέρει ένα ισχυρό και σταθερό framework όσον αφορά το internationalization και το localization προκειμένου να σας βοηθήσει στην ανάπτυξη εφαρμογών σε πολλές γλώσσες και περιοχές ανά τον κόσμο:

- Επισκόπηση | Internationalization | Localization | Localized Web UI formatting και form input

- Ζώνες ώρας (time zones)

## Απόδοση και βελτιστοποίηση

Υπάρχουν πολλές τεχνικές και εργαλεία που μπορούν να σας βοηθήσουν στο να κάνετε τον κώδικα σας πιο αποτελεσματικό και γρήγορο, χρησιμοποιώντας λιγότερους πόρους από το σύστημα σας.

- Επισκόπηση απόδοσης και βελτιστοποίησης

## Συμβατότητα Python

Το Django προσπαθεί να είναι συμβατό με πολλές εφαρμογές και εκδόσεις της Python:

- Υποστήριξη Jython

- Συμβατότητα Python 3

## Γεωγραφικό framework

Το GeoDjango σκοπεύει να γίνει ένα παγκόσμιο γεωγραφικό (geographic) Web framework. Ο στόχος του είναι να κάνει όσο το δυνατόν πιο εύκολη τη συγγραφή GIS Web εφαρμογών και να εκμεταλλευτεί τη δύναμη των χωρικά ενεργοποιημένων δεδομένων (spatially enabled data).

## Κοινά εργαλεία web application

Το Django προσφέρει πολλά εργαλεία τα οποία χρησιμοποιούνται συχνά στην ανάπτυξη Web εφαρμογών:

- Authentication: Επισκόπηση | Χρησιμοποιώντας το σύστημα authentication | Διαχείριση password | Παραμετροποιώντας το authentication | API Reference

- Caching
- Logging

- Αποστολή emails

- Syndication feeds (RSS/Atom)

- Σελιδοποίηση (pagination)

- Messages framework
- Serialization
- Sessions
- Sitemaps

- Διαχείριση των στατικών αρχείων

- Data validation

## Άλλες κύριες λειτουργίες

Μάθετε για άλλες κύριες λειτουργίες του Django framework:

- Conditional content processing

- Content types και generic relations

- Flatpages

- Ανακατευθύνσεις (redirects)

- Signals
- System check framework

- Το framework sites

- Το unicode στο Django

## Το ανοιχτού κώδικα project Django

Μάθετε για τη διαδικασία ανάπτυξης του Django project και το πώς μπορείτε να συνεισφέρετε:

- Κοινότητα: Πώς να συμμετάσχετε | Η διαδικασία της κυκλοφορίας εκδόσεων | Οργάνωση ομάδων | Γνωρίστε την ομάδα | Καθήκοντα των ομάδων | Το repository του πηγαίου κώδικα του Django | Πολιτικές ασφαλείας | Mailing lists

- Φιλοσοφίες σχεδιασμού κώδικα: Επισκόπηση

- Documentation: Σχετικά με αυτό το εγχειρίδιο

- Διανομές του Django από τρίτους: Επισκόπηση

- Το Django μέσα στο πέρασμα του χρόνου: Σταθερότητα του API | Release notes και συμβουλές αναβάθμισης | Χρονοδιάγραμμα των deprecations