Αν και πολλά Προγραμματιστές Django θα μπορούσε να θεωρήσει βλασφημία, μερικές φορές είναι πραγματικά απαραίτητο να αναπτυχθεί Τζάνγκο εφαρμογές σε Windows / IIS, ειδικά όταν εργάζεστε με έναν πελάτη που έχει βασίσει την υποδομή του γύρω από το οικοσύστημα των Windows. Το τμήμα «βλασφημία» προέρχεται από το Django που έχει στοχευτεί πραγματικά στο περιβάλλον Unix, βασισμένος σε μεγάλο βαθμό σε χαρακτηριστικά όπως WSGI , FastCGI και εργαλεία γραμμής εντολών, τα οποία είναι ξένα για τα Windows. Ευτυχώς, η συμβατότητα Django / IIS βελτιώνεται, χάρη στην προσθήκη χαρακτηριστικών (που διαφορετικά θα ήταν λάσπη) τόσο στις πλευρές των Windows όσο και στα Python + Django της εξίσωσης, βοηθώντας έτσι στην επίλυση ζητημάτων συμβατότητας μεταξύ αυτών των δύο διαφορετικών τεχνικών κόσμων.
Αυτό το σύντομο, εστιασμένο σεμινάριο σας καθοδηγεί στη βασική εγκατάσταση ενός έργου Django στα Windows. Καλύπτει την εγκατάσταση Python, Django και συναφών εργαλείων, συμπεριλαμβανομένης της εκτέλεσης του έργου Django τόσο αυτόνομου όσο και ως διακομιστή FastCGI. Το τελευταίο είναι όλο και πιο σημαντικό, παρεμπιπτόντως, από τότε Οι υπηρεσίες IIS υποστηρίζουν επίσημα το FastCGI (στο IIS 7+, απλώς εγκαταστήστε τη δυνατότητα CGI).
Σημείωση: Αυτό το σεμινάριο προορίζεται για όσους έχουν λειτουργική κατανόηση των Windows και είναι εξοικειωμένοι με την κονσόλα διαχείρισης IIS. Η έκδοση των IIS που χρησιμοποιείται σε αυτό το σεμινάριο είναι 8.5, αλλά οι περιγραφές και οι τεχνικές είναι παρόμοιες σε προηγούμενες εκδόσεις. Το σεμινάριο βασίζεται στα Python 2.7 και Django 1.7, καθώς αυτές είναι οι εκδόσεις που χρησιμοποιώ για τα έργα μου. Μπορείτε να βρείτε άλλο Εκμάθηση Django εδώ .
Επαγγελματική συμβουλή: Εάν πρόκειται να αναπτύξετε πολλά έργα Django (ή ακόμα και απλά Python) ή εάν είστε προγραμματιστής, θα πρέπει να κοιτάξετε virtualenv , ένα εργαλείο για τη δημιουργία απομονωμένων περιβαλλόντων Python.
Πρώτα, κατεβάστε το Python . Παρέχονται τόσο προγράμματα εγκατάστασης 32-bit όσο και 64-bit MSI και θα πρέπει να επιλέξετε αυτό που είναι κατάλληλο για το μηχάνημα στο οποίο εγκαθιστάτε.
πώς να φτιάξετε μια προσομοίωση Μόντε ΚάρλοΤα βασικά του PIP
Είναι σημαντικό να εγκαταστήσετε το Python 2.7.9 ή μεταγενέστερη έκδοση, καθώς οι εκδόσεις Python που ξεκινούν με 2.7.9 περιλαμβάνουν ΚΟΥΚΟΥΤΣΙ , η διαχείριση βιβλιοθηκών / πακέτων / λογισμικού Python που χρησιμοποιείται για την εγκατάσταση όλων των άλλων σε αυτό το σεμινάριο.
Η διαδικασία εγκατάστασης είναι πολύ απλή και απλή. Θα προσφέρει την εγκατάσταση του Python στο C:Python27
κατάλογο, τον οποίο πρέπει να αποδεχτείτε καθώς διευκολύνει τη ζωή στη συνέχεια. Προσπαθήστε να μην παραδώσετε τη συνήθεια των Windows να εγκαταστήσετε πράγματα σε καταλόγους με κενά στο όνομά τους.
Ο βασικός κατάλογος μετά την εγκατάσταση θα περιέχει περίπου 8 υποκαταλόγους, μερικά διάφορα αρχεία και δύο εκτελέσιμα με το όνομα Python.exe
και PythonW.exe
. Ο πρώτος είναι ο προεπιλεγμένος διερμηνέας γραμμής εντολών και το κέλυφος Python, ενώ ο τελευταίος είναι μόνο ο διερμηνέας, ο οποίος δεν θα χρησιμοποιήσει (ή θα δημιουργήσει) ένα παράθυρο κονσόλας εάν καλείται, και λόγω αυτού είναι κατάλληλο για την εκτέλεση εφαρμογών GUI Python.
Στη συνέχεια, το Python θα πρέπει να προστεθεί στη μεταβλητή περιβάλλοντος PATH του συστήματος. Αυτό γίνεται στο Προηγμένες ρυθμίσεις συστήματος (ή Ιδιότητες συστήματος ), στο Προχωρημένος καρτέλα, κάνοντας κλικ στο Μεταβλητές περιβάλλοντος κουμπί. Υπάρχουν δύο κατάλογοι που πρέπει να προστεθούν: C:Python27
και C:Python27Scripts
. Αυτά πρέπει να προσαρτηθούν στη λίστα PATH, διαχωρισμένα με ερωτηματικά (;
). Το τέλος της μεταβλητής PATH θα πρέπει να μοιάζει με ;C:Python27;C:Python27Scripts
.
Επαγγελματική συμβουλή: Ίσως θέλετε επίσης να εγκαταστήσετε GOW , μια ελαφριά συλλογή βοηθητικών προγραμμάτων γραμμής εντολών Unix παρόμοια με το Cygwin. Θα σας παρέχει εργαλεία όπως
ls
, αλλά και πιο ενδιαφέροντα, όπωςmake
,wget
,curl
,ssh
,scp
,gzip
καιtar
.
Το Django μπορεί να εγκατασταθεί χρησιμοποιώντας PIP με εντολή όπως pip install django
. Η διαδικασία μπορεί να προσελκύσει κάποιες επιπλέον εξαρτήσεις εάν δεν υπάρχουν ήδη στο σύστημά σας. Διαφορετικά, θα εγκαταστήσει απλώς μόνο το Django, με έξοδο παρόμοια με την ακόλουθη:
Downloading/unpacking django Installing collected packages: django Successfully installed django Cleaning up...
Μπορείτε να ελέγξετε εάν λειτουργούν και τα δύο Python και Django για Windows ξεκινώντας μια νέα γραμμή εντολών των Windows, εκτελώντας το python
εντολή και εισάγοντας το import django
εντολή στη γραμμή εντολών Python. Εάν λειτουργεί σωστά, δεν θα πρέπει να υπάρχει έξοδος ή μηνύματα μετά το import django
εντολή; δηλ .:
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32 Type 'help', 'copyright', 'credits' or 'license' for more information. >>> import django >>>
Ένα «έργο» του Django αποτελείται από μία ή περισσότερες «εφαρμογές». Ο κατάλογος ανώτερου επιπέδου ενός έργου συνήθως περιέχει έναν ειδικό υποκατάλογο έργου που περιέχει ρυθμίσεις και ορισμένες γενικές πληροφορίες επιπέδου έργου, έναν υποκατάλογο ανά εφαρμογή και ένα σενάριο γραμμής εντολών που ονομάζεται manage.py
. Για παράδειγμα:
C:Develdjangoprojectsrc>dir Volume in drive C is OS Volume Serial Number is 6A3D-C1B8 Directory of C:Develdjangoprojectsrc 22/12/2014 04:25 . 22/12/2014 04:25 .. 22/12/2014 04:19 project 22/12/2014 04:58 djangoapp 16/12/2014 03:30 templates 16/12/2014 00:50 250 manage.py 1 File(s) 250 bytes 5 Dir(s) 23,552,929,792 bytes free
Τα έργα Django μπορούν απλώς να διανεμηθούν αρχειοθετώντας ολόκληρο τον κατάλογο έργων και αποσυμπιέζοντας τον σε άλλο υπολογιστή. Στο παραπάνω παράδειγμα, το έργο περιέχει το project
υποκατάλογος, ο κατάλογος εφαρμογών που ονομάζεται djangoapp
και ένας βοηθητικός templates
υποκατάλογος
Το manage.py
Το σενάριο είναι το «ελβετικό μαχαίρι στρατού» των εφαρμογών Django. Κάνει τα πάντα, από τη δημιουργία νέων εφαρμογών, τη μετεγκατάσταση βάσεων δεδομένων, έως την εκτέλεση δοκιμαστικού (ενσωματωμένου) διακομιστή HTTP ή ακόμη και διακομιστή FastCGI.
Εάν το έργο και οι εφαρμογές του είναι λειτουργικές, θα πρέπει να μπορείτε να ξεκινήσετε τον προεπιλεγμένο διακομιστή HTTP μόνο για ανάπτυξη Django εκτελώντας την εντολή manage.py runserver
, η οποία θα έχει ως αποτέλεσμα έξοδο παρόμοια με την ακόλουθη:
C:Develdjangoprojectsrc>manage.py runserver Performing system checks... System check identified no issues (0 silenced). December 23, 2014 - 01:19:02 Django version 1.7.1, using settings 'project.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
Όπως μπορείτε να δείτε από τα μηνύματα, ξεκινά ένας διακομιστής στο localhost, θύρα 8000. Μπορείτε να αποκτήσετε άμεση πρόσβαση σε αυτόν με το πρόγραμμα περιήγησής σας.
Μια πιο ενδιαφέρουσα επιλογή είναι να ενεργοποιήσετε έναν διακομιστή FastCGI. Με το FastCGI, μπορείτε να χρησιμοποιήσετε τις υπηρεσίες IIS, Apache ή οποιονδήποτε άλλο διακομιστή ιστού, για να εξυπηρετήσετε την εφαρμογή σε μια ρύθμιση παραγωγής. Για να λειτουργήσει αυτό, πρέπει να κατεβάσετε το fcgi.py (η εντολή διαχείρισης Django για να εκτελέσετε το Django στα Windows με IIS μέσω του FastCGI) και να το βάλετε στο management/commands
υποκατάλογος του υποκαταλόγου της εφαρμογής Django (όχι του έργου!). Και οι δύο management
και το commands
υποκαταλόγους πρέπει έχετε ένα κενό αρχείο με το όνομα __init__.py
(που μετατρέπουν αυτούς τους καταλόγους σε μονάδες Python).
fcgi.py
είναι ένας πολύ απλός και μινιμαλιστικός προσαρμογέας WSGI σε FastCGI δεν υποστηρίζει την ακρόαση σε μια υποδοχή TCP ή ένα σωλήνα και κάνει όλη την επεξεργασία της χρησιμοποιώντας stdin
και stdout ». Ως εκ τούτου, δεν μπορεί να χρησιμοποιηθεί με σύγχρονους διακομιστές Ιστού όπως nginx , αλλά θα συνεργαστείτε με τις υπηρεσίες IIS.
Εάν η μονάδα FastCGI είναι φορτωμένη σε IIS (ή απλά η μονάδα CGI στο IIS 7+), η κονσόλα διαχείρισης των IIS θα έχει το εικονίδιο 'Ρυθμίσεις FastCGI' διαθέσιμο. Το Django είναι ένα πλαίσιο που έχει τη δική του διεύθυνση URL, επομένως οι εφαρμογές Django πρέπει να εγκατασταθούν ως 'χειριστής' στα IIS για συγκεκριμένες διαδρομές. Για να εγκαταστήσετε μια εφαρμογή Django στις υπηρεσίες IIS Προεπιλεγμένος ιστότοπος , επιλέξτε το στην κονσόλα διαχείρισης και ανοίξτε το Αντιστοιχίσεις χειριστών δυνατότητα διαμόρφωσης. Σε αυτό, κάντε κλικ στο Προσθήκη αντιστοίχισης ενότητας… ενέργεια και εισαγάγετε τις ακόλουθες πληροφορίες:
*
για να χειριστείτε όλα τα αιτήματα με εσωτερική δρομολόγηση DjangoFastCgiModule
για να χρησιμοποιήσετε τη μονάδα FastCGI των IISpython.exe
διαδρομή και τα ορίσματα της γραμμής εντολών πρέπει να οριστούν, χρησιμοποιώντας τον χαρακτήρα σωλήνα (|
) ως διαχωριστικό. Ένα παράδειγμα τιμής για αυτήν τη ρύθμιση είναι: C:Python27python.exe|C:appsrcmanage.py fcgi --pythonpath C:appsrc --settings project.settings
. Λάβετε υπόψη ότι πρέπει να καθορίσετε το fcgi
εντολή για το manage.py
script και ορίστε με μη αυτόματο τρόπο τη διαδρομή αναζήτησης του διερμηνέα Python για το έργο, καθώς και το όνομα της μονάδας Python για τη μονάδα ρύθμισης του έργου.Ο διάλογος διαμόρφωσης θα πρέπει να έχει την εξής μορφή:
Μεγέθη ερωτημάτων μέσων για αποκριτικό σχεδιασμό
Στη συνέχεια, κάντε κλικ στο Ζητήστε περιορισμούς κουμπί και επεξεργαστείτε το Χαρτογράφηση αυτί. Καταργήστε την επιλογή του πλαισίου ελέγχου 'Επίκληση χειριστή μόνο εάν το αίτημα αντιστοιχίζεται σε ...' (διαφορετικά, οι υπηρεσίες IIS θα έχουν προβλήματα χαρτογράφησης των θεωρήσεών τους ως υποκαταλόγους στο αίτημα διεύθυνσης URL):
Κάντε κλικ στο OK στο διάλογο πληροφοριών χειριστή. Στη συνέχεια, οι υπηρεσίες IIS θα σας ζητήσουν να επιβεβαιώσετε τη δημιουργία μιας αντίστοιχης καταχώρησης εφαρμογής FastCGI την οποία θα πρέπει να επιβεβαιώσετε. Αυτή η καταχώρηση θα είναι ορατή στο Ρυθμίσεις FastCGI δυνατότητα, προσβάσιμη στη ριζική οθόνη της Κονσόλας διαχείρισης IIS. Η προεπιλεγμένη καταχώριση που δημιουργήθηκε από τις ίδιες τις υπηρεσίες IIS είναι επαρκής, αλλά υπάρχουν ορισμένες προαιρετικές ρυθμίσεις διαθέσιμες τις οποίες μπορεί να θέλετε να επωφεληθείτε:
Οι σύγχρονες εφαρμογές ιστού χρησιμοποιούν πολλά αρχεία πόρων, όπως CSS, JavaScript και άλλα, και οι εφαρμογές Django δεν αποτελούν εξαίρεση. Το Django παρέχει ένα πολύ βολικό χαρακτηριστικό που επιτρέπει στους προγραμματιστές να ενσωματώσουν τους απαραίτητους πόρους στο δέντρο καταλόγου εφαρμογών, αλλά το οποίο μπορεί να εξαχθεί και να αντιγραφεί από το Django σε έναν κατάλληλο, στατικό κατάλογο. Αυτό είναι βασικά ένα ελεγχόμενο από προγραμματιστή χαρακτηριστικό και οι τοποθεσίες όπου το Django θα αποθηκεύει τα στατικά αρχεία ελέγχεται στο settings.py
του έργου. Τα καλά συμπεριφερόμενα έργα θα χρησιμοποιήσουν μια λογική πορεία για αυτό, αλλά δεν είναι τυποποιημένη.
Οι εφαρμογές που χειρίζονται μεταφορτωμένα αρχεία τα αποθηκεύουν σε έναν κατάλογο με παρόμοια διαχείριση που, στο Django, ονομάζεται παραδοσιακά media
. Το static
και media
Κατάλογοι πρέπει να προστεθούν στη διαμόρφωση IIS ως εικονικοί κατάλογοι:
Το σημαντικό βήμα εδώ είναι να αναδιαμορφώσετε το Αντιστοιχίσεις χειριστών δυνατότητα για κάθε έναν από τους καταλόγους και αφαιρέστε το πρόγραμμα χειρισμού Django App, αφήνοντας το StaticFile
χειριστής ως το πιο σημαντικό.
Σημειώστε ότι το static
Ο κατάλογος πρέπει να είναι αναγνώσιμος από τα IIS (καθώς και από όλα τα άλλα αρχεία και καταλόγους στο έργο Django), αλλά το media
Ο κατάλογος πρέπει επίσης να είναι εγγράψιμος από τις υπηρεσίες IIS. Η τελική διαμόρφωση ιστότοπου πρέπει να μοιάζει με τα ακόλουθα:
SQLite λειτουργεί από προεπιλογή στα Windows, όπως και σε συστήματα τύπου Unix. Οι περισσότερες από τις άλλες βάσεις δεδομένων ανοιχτού κώδικα λειτουργούν πλέον σε Windows, ακόμη και PostgreSQL , το οποίο προτείνω. Σε υπάρχουσες εγκαταστάσεις των Windows, ωστόσο, θα μπορούσε να απαιτείται η ανάπτυξη του Django με τον MS SQL Server. Αυτό είναι δυνατό είτε χρησιμοποιώντας ένα Πρόγραμμα οδήγησης γέφυρας ODBC ή χρησιμοποιώντας ένα εγγενές πρόγραμμα οδήγησης MS SQL . Θεωρητικά, και οι δύο λειτουργούν, αλλά δεν τα έχω δοκιμάσει. Πρέπει τουλάχιστον να αλλάξετε τις παραμέτρους σύνδεσης βάσης δεδομένων (στο αρχείο settings.py
του έργου) για να μεταβείτε σε νέα βάση δεδομένων. Η μετεγκατάσταση δεδομένων πρέπει να γίνει χειροκίνητα.
Σημειώστε ότι εάν χρησιμοποιείτε τη βάση δεδομένων SQLite, τόσο το αρχείο βάσης δεδομένων όσο και ο κατάλογος στον οποίο βρίσκεται πρέπει να είναι εγγράψιμοι από τις υπηρεσίες IIS.
Η διαμόρφωση που περιγράφεται έχει δοκιμαστεί και αποδειχθεί ότι λειτουργεί, αλλά αν κάτι πάει στραβά, ακολουθούν ορισμένα βασικά βήματα για την αντιμετώπιση προβλημάτων του Django για εγκατάσταση Windows:
C:inetpublogsFailedReqLogFiles
των IIS κατάλογος (ή παρόμοιος, ανάλογα με τη διαμόρφωσή σας). Στη συνέχεια, πρέπει να ενεργοποιήσετε την ανίχνευση για τον συγκεκριμένο ιστότοπο (ή έναν εικονικό κατάλογο) στο * Configure-> Failing request tracing… δράση.Για να είμαστε σίγουροι, το Django είναι προσαρμοσμένο σε ένα περιβάλλον που μοιάζει με Unix και ο πιο εκτεταμένος και υποστηριζόμενος τρόπος εκτέλεσης του Django είναι σε ένα σύστημα Linux (π.χ. με το uwsgi και το nginx).
Ωστόσο, δεν χρειάζεται πολλή δουλειά για να κάνει το Django να λειτουργεί σε Windows, όπως φαίνεται σε αυτό το σεμινάριο. Μερικά από τα βήματα που περιγράφονται μπορεί να φαίνονται αντιδιαισθητικά από καθαρή άποψη των Windows, αλλά είναι απαραίτητα και, ευτυχώς, η προσπάθεια που δαπανάται στη διαμόρφωση είναι μόνο μία φορά. Μόλις διαμορφωθεί, η εφαρμογή Django θα πρέπει στη συνέχεια να συμπεριφέρεται με τον ίδιο ακριβώς τρόπο όπως σε μια πλατφόρμα Linux.