1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:03,227 [Παίζει μουσική] 3 00:00:03,227 --> 00:00:04,705 4 00:00:04,705 --> 00:00:05,830 EZRA ZIGMOND: Γεια, σε όλους. 5 00:00:05,830 --> 00:00:08,020 Ευχαριστώ που ήρθατε σήμερα. 6 00:00:08,020 --> 00:00:10,660 Αυτό το σεμινάριο είναι "Python Web Apps με φιάλη. " 7 00:00:10,660 --> 00:00:14,510 >> Έτσι, Πάω να μιλάμε λίγο σχετικά με το γιατί 8 00:00:14,510 --> 00:00:17,400 ίσως να θέλετε να χρησιμοποιήσετε φιάλη για να κάνουν web εφαρμογών με την Python, σε αντίθεση με 9 00:00:17,400 --> 00:00:21,556 σε ορισμένα άλλα πλαίσια εκεί έξω, όπως Django, η οποία είναι η πιο καλά γνωστή. 10 00:00:21,556 --> 00:00:24,330 Ο υπότιτλος είναι "και PeeWee ", το οποίο είναι κάτι 11 00:00:24,330 --> 00:00:27,250 θα πάμε να μιλήσουμε για το πώς να αλληλεπιδρούν με βάσεις δεδομένων SQL. 12 00:00:27,250 --> 00:00:29,610 Αυτό το καθιστά πραγματικά ωραίο. 13 00:00:29,610 --> 00:00:32,390 >> Έτσι, εδώ είναι απλά μια γρήγορη μείωση τι θέλω να πάω πάνω. 14 00:00:32,390 --> 00:00:35,520 Έτσι, πρώτα, μόνο μία διαφάνεια ότι πρόκειται να είναι τα πρώτα βήματα, 15 00:00:35,520 --> 00:00:38,530 το οποίο είναι το πώς να πάρει τα πάντα που έχει συσταθεί στον υπολογιστή σας. 16 00:00:38,530 --> 00:00:41,760 Πάω να αποδεικνύουν αυτό στον τοπικό υπολογιστή Mac μου, 17 00:00:41,760 --> 00:00:45,220 μόνο και μόνο επειδή αυτό είναι όπου έχω κάνει αυτό πριν, είμαι πιο άνετα με αυτό, 18 00:00:45,220 --> 00:00:48,510 αλλά αυτό είναι σίγουρα δυνατόν για το CD50 IDE. 19 00:00:48,510 --> 00:00:52,050 >> Έτσι, μετά από αυτό, θέλω να εισαγάγει τι φιάλη, 20 00:00:52,050 --> 00:00:55,089 και να σας πείσει γιατί πρέπει χρησιμοποιήστε αυτό στην πρώτη θέση. 21 00:00:55,089 --> 00:00:56,880 Στη συνέχεια, θα σας δώσω μια γρήγορη παράδειγμα του τι μπορείτε 22 00:00:56,880 --> 00:01:00,550 μπορεί να κάνει σε φιάλη, ένα γρήγορο παράδειγμα από ό, τι μπορείτε να κάνετε σε PeeWee, 23 00:01:00,550 --> 00:01:05,010 και στη συνέχεια θα σας παρουσιάσω μια πιο πλήρες παράδειγμα εφαρμογής 24 00:01:05,010 --> 00:01:07,520 ότι έβαλα μαζί ότι μπορούμε μπορούν να περπατήσουν μέσα μαζί. 25 00:01:07,520 --> 00:01:10,040 >> Και τελικά, σε η τελευταία διαφάνεια, έχω 26 00:01:10,040 --> 00:01:12,730 ορισμένοι πόροι που ψάχνετε σε απευθείας σύνδεση για περισσότερες πληροφορίες. 27 00:01:12,730 --> 00:01:15,560 Αυτό δεν είναι μια πλήρης φροντιστήριο για το πώς να χρησιμοποιήσετε φιάλη. 28 00:01:15,560 --> 00:01:18,140 Και εγώ θα ελπίζω να φύγει κάποια στιγμή για τις ερωτήσεις. 29 00:01:18,140 --> 00:01:21,050 Όποιος παρακολουθούν σε τοπικό επίπεδο, απλά όπως, φωνάζει στη μέση 30 00:01:21,050 --> 00:01:22,340 εάν έχετε οποιεσδήποτε ερωτήσεις. 31 00:01:22,340 --> 00:01:27,150 >> Έτσι γρήγορη εγκατάσταση πράγματα, αν θέλετε να ακολουθήσετε μαζί, 32 00:01:27,150 --> 00:01:29,240 ή αν θέλετε να πάρετε αυτό το με δική σας μηχανή, 33 00:01:29,240 --> 00:01:32,440 Πάω να χρησιμοποιεί Python 2.7.10. 34 00:01:32,440 --> 00:01:35,860 Φιάλη λειτουργεί με Python 3, αλλά μου αρέσει 35 00:01:35,860 --> 00:01:38,660 χρησιμοποιώντας Python 2, επειδή υπάρχει μερικά πακέτα Python που 36 00:01:38,660 --> 00:01:40,910 δεν λειτουργούν με 3 ακόμα. 37 00:01:40,910 --> 00:01:44,800 Αν έχετε εγκαταστήσει PIP, η οποία είναι διαχειριστής πακέτων Python, 38 00:01:44,800 --> 00:01:48,190 Νομίζω ότι αν Python σας είναι μεγαλύτερο από ή ίσο με 2.7.9, 39 00:01:48,190 --> 00:01:52,220 το έχετε ήδη εγκαταστήσει, είναι εξαιρετικά εύκολο να εγκαταστήσετε αυτά τα πακέτα. 40 00:01:52,220 --> 00:01:54,990 >> Μπορείτε να κάνετε την εγκατάσταση pip Φιάλη, pip εγκατάσταση PeeWee, 41 00:01:54,990 --> 00:01:58,600 Συνήθως θα πρέπει να τρέξετε sudo μόνο έτσι ώστε τα δικαιώματα να ασκηθούν. 42 00:01:58,600 --> 00:02:01,080 Και, αν χρησιμοποιείτε ένα σούπερ παλιά έκδοση της Python, 43 00:02:01,080 --> 00:02:05,100 Θα ήθελα να συστήσω την ενημέρωση Python σας, ή χρησιμοποιώντας EasyInstall να εγκαταστήσετε pip. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 Έτσι, το επόμενο ερώτημα είναι, ποια είναι η φιάλη; 46 00:02:11,120 --> 00:02:13,280 Και υποθέτω, για πρώτη φορά εύλογο ερώτημα Αναρωτήθηκα 47 00:02:13,280 --> 00:02:15,585 για ένα μεγάλο χρονικό διάστημα είναι, ό, τι είναι μια web εφαρμογή; 48 00:02:15,585 --> 00:02:17,960 Επειδή αυτή είναι μια λέξη που ότι είναι ρίχνεται γύρω από μια παρτίδα 49 00:02:17,960 --> 00:02:19,240 ότι εγώ δεν ξέρει πραγματικά. 50 00:02:19,240 --> 00:02:22,340 Και νομίζω ότι το καλύτερο παράδειγμα του τι ένα web app είναι, 51 00:02:22,340 --> 00:02:26,960 Πραγματικά είναι CS50 Οικονομικών, όπου δεν είναι πραγματικά ακριβώς ένα δικτυακό τόπο, 52 00:02:26,960 --> 00:02:29,320 αλλά αυτό είναι κάτι που θα θα μπορούσε να είδος αλληλεπιδρούν με. 53 00:02:29,320 --> 00:02:31,736 Υπάρχουν λογαριασμούς χρηστών και όλα τα είδη των διαφορετικών πραγμάτων. 54 00:02:31,736 --> 00:02:35,010 Έτσι, πού ακριβώς θα συντάξει η γραμμή μεταξύ του τι είναι μια ιστοσελίδα, 55 00:02:35,010 --> 00:02:38,780 και τι είναι μια web εφαρμογή, είναι το είδος του αυθαίρετη, αλλά υποθέτω ότι την ιδέα, 56 00:02:38,780 --> 00:02:42,110 είναι κάτι περισσότερο από μια ιστοσελίδα και είναι μια χρήσιμη εφαρμογή. 57 00:02:42,110 --> 00:02:46,081 >> Έτσι, φιάλη είναι ένα πλαίσιο για την καθιστώντας web εφαρμογών με χρήση της Python. 58 00:02:46,081 --> 00:02:48,330 Και ελπίζω, μέχρι το τέλος αυτό, εγώ θα σας πείσει 59 00:02:48,330 --> 00:02:52,210 ότι θα μπορούσε πραγματικά να γράψω κάτι όπως CS50 Οικονομικών με την Python, το οποίο θα 60 00:02:52,210 --> 00:02:53,950 όπως πολύ καλύτερα από ό, τι PHP, προσωπικά. 61 00:02:53,950 --> 00:02:57,320 >> Έτσι, φιάλη, που αποκαλούν microframework, με την οποία, 62 00:02:57,320 --> 00:02:59,800 που σημαίνει ότι είναι πολύ απλό, αλλά εκτατό. 63 00:02:59,800 --> 00:03:02,980 Έτσι, έχει ακριβώς αυτό που χρειάζεστε, αλλά αν θέλετε περισσότερες δυνατότητες, 64 00:03:02,980 --> 00:03:04,522 είναι εύκολο να τους φέρει σε. 65 00:03:04,522 --> 00:03:06,480 Αλλά ακριβώς επειδή είναι ένα microframework, δεν 66 00:03:06,480 --> 00:03:08,960 σημαίνει ότι είναι μόνο για μικρά έργα. 67 00:03:08,960 --> 00:03:12,590 Έχω ένα σύνδεσμο που λέει εδώ ότι ο Ομπάμα χρησιμοποιείται φιάλη 2012 68 00:03:12,590 --> 00:03:14,410 για την εκστρατεία του ιστοσελίδα, η οποία ελπίζουμε ότι, 69 00:03:14,410 --> 00:03:16,937 Είναι κάτι θεώρηση. 70 00:03:16,937 --> 00:03:18,770 Αλλά το πράγμα που μου αρέσει πραγματικά για φιάλη 71 00:03:18,770 --> 00:03:22,401 είναι ότι, στην πραγματικότητα δεν κάνει κάθε είδους αποφάσεις για εσάς. 72 00:03:22,401 --> 00:03:24,150 Ακριβώς επειδή είμαστε μιλάμε για web εφαρμογές, 73 00:03:24,150 --> 00:03:26,940 Έχω να το συγκρίνουμε με το Ruby on Κάγκελα και Django, δύο εκ των οποίων 74 00:03:26,940 --> 00:03:30,450 είναι μεγάλη πλαισίων, αλλά και οι δύο κάνουν υποθέσεις 75 00:03:30,450 --> 00:03:33,600 σχετικά με το πώς θέλετε να αλληλεπιδρούν με βάσεις δεδομένων, 76 00:03:33,600 --> 00:03:36,900 πώς θέλετε να παρουσιάσετε σας απόψεις, και είναι σίγουρα 77 00:03:36,900 --> 00:03:38,850 καλές πτυχές σε αυτό. 78 00:03:38,850 --> 00:03:41,490 >> Για παράδειγμα, Ruby on Rails έχει αυτό το ενεργό σύστημα καταγραφής, 79 00:03:41,490 --> 00:03:43,100 η οποία είναι μια πολύ ωραία τρόπος για να αλληλεπιδρούν με τα δεδομένα, 80 00:03:43,100 --> 00:03:45,960 αλλά αν θέλετε να χρησιμοποιήσετε για Ruby Rails, είστε το είδος των συνδεδεμένων σε αυτό. 81 00:03:45,960 --> 00:03:47,835 Αλλά με φιάλη, όπως θα να σας δείξει με PeeWee, 82 00:03:47,835 --> 00:03:49,830 μπορείτε να χρησιμοποιήσετε ό, τι είδος της βάσης δεδομένων που θέλετε, 83 00:03:49,830 --> 00:03:53,980 και μπορείτε απλά να τραβήξει ότι σε ως επέκταση στη φιάλη. 84 00:03:53,980 --> 00:03:56,350 >> Έτσι, γι 'αυτό πραγματικά όπως φιάλη, είναι ότι 85 00:03:56,350 --> 00:04:01,170 δεν κάνει υποθέσεις για εσάς βασίζονται σε πράγματα που δεν χρειάζεστε πραγματικά. 86 00:04:01,170 --> 00:04:04,440 >> Έτσι, γιατί θα πρέπει να χρησιμοποιείτε φιάλη; 87 00:04:04,440 --> 00:04:08,230 Τα πλεονεκτήματα είναι, απλά έχει πραγματικά τα βασικά χαρακτηριστικά 88 00:04:08,230 --> 00:04:09,420 χτισμένη σε αυτό που χρειάζεστε. 89 00:04:09,420 --> 00:04:11,980 Έτσι, δεν έχετε να ανησυχείτε για κατανόηση ένα σωρό πράγματα 90 00:04:11,980 --> 00:04:13,175 ότι δεν χρειάζεστε πραγματικά. 91 00:04:13,175 --> 00:04:15,060 Δεν χρειάζεται να έχετε να ανησυχείτε σχετικά με την απενεργοποίηση χαρακτηριστικών 92 00:04:15,060 --> 00:04:16,620 ότι δεν χρειάζεστε πραγματικά. 93 00:04:16,620 --> 00:04:21,082 >> Και, όπως ανέφερα, είναι εξαιρετικά εύκολο να προσθέσετε σε επεκτάσεις των πραγμάτων 94 00:04:21,082 --> 00:04:21,790 ότι χρειάζεστε. 95 00:04:21,790 --> 00:04:24,700 Μερικοί απ 'αυτούς, Φιάλη έχει τη δική τους υποστήριξη για αυτό. 96 00:04:24,700 --> 00:04:28,230 Έτσι, δεν υπάρχει κάτι που ονομάζεται Φιάλη διαχειριστή, η οποία αντικατοπτρίζει ότι το admin 97 00:04:28,230 --> 00:04:32,060 πάνελ που παρέχει Django, το οποίο σας δίνει ένα ωραίο οπτικό τρόπο 98 00:04:32,060 --> 00:04:33,405 να διαχειρίζεται την ιστοσελίδα σας. 99 00:04:33,405 --> 00:04:35,280 Αλλά και πάλι, αν είστε κάνοντας κάτι απλό, 100 00:04:35,280 --> 00:04:39,550 ίσως δεν χρειάζεται ένα μεγάλο διαχειριστή πάνελ, έτσι νομίζω ότι αυτό είναι πολύ ωραία. 101 00:04:39,550 --> 00:04:45,940 Και τα μειονεκτήματα είναι ότι έχετε λιγότερη ενέργεια από το κουτί. 102 00:04:45,940 --> 00:04:49,660 Έτσι, όταν ανοίγετε για πρώτη φορά τη φιάλη, και στο πρόγραμμά σας Python, 103 00:04:49,660 --> 00:04:53,150 απλά πληκτρολογήστε από φιάλη * εισαγωγή, ή οτιδήποτε άλλο, 104 00:04:53,150 --> 00:04:55,957 δεν παίρνουν ακριβώς όλα τα χαρακτηριστικά μπορεί να θέλετε. 105 00:04:55,957 --> 00:04:58,540 Και έτσι πρέπει να σαφέστερα απαριθμούν τα χαρακτηριστικά που θέλετε. 106 00:04:58,540 --> 00:05:01,990 Έτσι αυτό είναι ένα μειονέκτημα, αλλά εγώ Πιστεύω ότι για τη δημιουργία μικρών διαδίκτυο 107 00:05:01,990 --> 00:05:04,782 εφαρμογές όπως Πάω να δείχνει σας, ότι δεν είναι πραγματικά ένα πρόβλημα. 108 00:05:04,782 --> 00:05:07,281 Και ποιο είναι το τελευταίο πράγμα που είναι έπρεπε να πω, το οποίο είναι τυπογραφικό λάθος, 109 00:05:07,281 --> 00:05:10,240 είναι ότι υπάρχουν λιγότερο τυποποιημένα συμβάσεις για το πώς να χρησιμοποιήσετε φιάλη, 110 00:05:10,240 --> 00:05:12,400 μόνο και μόνο επειδή δεν υπάρχουν και πολλά οι άνθρωποι που το χρησιμοποιούν επαγγελματικά 111 00:05:12,400 --> 00:05:13,191 σε σύγκριση με το Django. 112 00:05:13,191 --> 00:05:16,380 Έτσι, αν δείτε κάτι σαν, "πώς μπορώ να κάνω x" σε Django, 113 00:05:16,380 --> 00:05:18,190 θα βρείτε πιθανώς. 114 00:05:18,190 --> 00:05:20,260 >> Υπάρχει καλός σχεδιασμός σχέδια που μπορείτε να χρησιμοποιήσετε, 115 00:05:20,260 --> 00:05:22,660 αλλά με φιάλη, είναι είδος τον δικό σου δρόμο, 116 00:05:22,660 --> 00:05:24,850 μόνο και μόνο επειδή είναι ένα αρκετά μικρή βιβλιοθήκη. 117 00:05:24,850 --> 00:05:27,100 Έτσι, αυτά είναι τα μειονεκτήματα, αλλά νομίζω ότι 118 00:05:27,100 --> 00:05:29,370 ότι είναι ακόμα μια καλή βιβλιοθήκη για να χρησιμοποιήσετε. 119 00:05:29,370 --> 00:05:31,909 >> Οπότε ας άλμα δικαίωμα στη φιάλη. 120 00:05:31,909 --> 00:05:34,200 Αυτό είναι σίγουρα δεν πρόκειται να είναι ένα πλήρες πρόγραμμα εκμάθησης, 121 00:05:34,200 --> 00:05:37,480 αλλά είναι για να σας δώσει μια ιδέα πώς να δομήσει τα πράγματα, 122 00:05:37,480 --> 00:05:40,790 και έτσι αισθάνεστε άνετα πηγαίνοντας εκτός και κοιτάζοντας την τεκμηρίωση 123 00:05:40,790 --> 00:05:42,570 και να μάθετε περισσότερα. 124 00:05:42,570 --> 00:05:48,500 >> Έτσι, επιτρέψτε μου να ανοίξει ένα πραγματικά απλό παράδειγμα στην αρχή, 125 00:05:48,500 --> 00:05:50,737 και να σας δείξουμε τι αυτό Μοιάζει, και στη συνέχεια θα 126 00:05:50,737 --> 00:05:52,070 σπάσει κάτω λίγο περισσότερο. 127 00:05:52,070 --> 00:05:56,160 >> Έτσι, αυτό εδώ, επιτρέψτε μου να πάρει το τρέξιμο. 128 00:05:56,160 --> 00:06:06,800 129 00:06:06,800 --> 00:06:09,750 Έτσι, έχω τώρα την αίτησή μου τρέχει. 130 00:06:09,750 --> 00:06:15,910 Πάω να ανοίξει το Safari, και τρέχει σε τοπικό κεντρικό υπολογιστή μου. 131 00:06:15,910 --> 00:06:19,360 Έτσι, είμαι απλώς πρόκειται να κάνουν αυτό το μεγαλύτερο. 132 00:06:19,360 --> 00:06:23,960 Αλλά localhost: 5000 133 00:06:23,960 --> 00:06:27,650 >> Και έτσι, αυτή τη στιγμή, όλα αυτά δεν είναι, όταν επισκέπτεστε την ιστοσελίδα, 134 00:06:27,650 --> 00:06:31,490 εκτυπώνει "Γεια φιάλη," η οποία δεν είναι σούπερ χρήσιμη, 135 00:06:31,490 --> 00:06:34,630 αλλά νομίζω ότι είναι δροσερό ότι σε αυτό το μικρό αρχείο εδώ, 136 00:06:34,630 --> 00:06:37,390 έχουμε ένα web server τρέχει ότι τυπώνει κάτι. 137 00:06:37,390 --> 00:06:40,500 Έτσι, ας δούμε πραγματικά τον κώδικα για ένα δεύτερο, 138 00:06:40,500 --> 00:06:43,080 και σπάσει λίγο. 139 00:06:43,080 --> 00:06:45,260 Έχει το μέγεθος καλό για όλους εδώ; 140 00:06:45,260 --> 00:06:51,560 >> Έτσι, ελπίζουμε, είστε κάπως άνετα με την Python. 141 00:06:51,560 --> 00:06:55,820 Υποθέτω ότι μπορούμε να εξετάσουμε η Python και να διαβάσετε μέσα από αυτό. 142 00:06:55,820 --> 00:06:59,290 Εάν έχετε οποιεσδήποτε ερωτήσεις σχετικά με τίποτα, μπορώ επίσης να πάει πέρα ​​από αυτό. 143 00:06:59,290 --> 00:07:03,974 >> Έτσι, η πρώτη γραμμή είναι, από τη φιάλη, εισάγουμε, Φιάλη με κεφαλαίο "F" 144 00:07:03,974 --> 00:07:06,140 το οποίο είναι το είδος του σε όλη τη βασικά χαρακτηριστικά που χρειάζεστε. 145 00:07:06,140 --> 00:07:08,890 Κάθε φορά που είστε γραπτώς ένα αρχείο και χρησιμοποιώντας φιάλη, 146 00:07:08,890 --> 00:07:12,120 θα πάμε να θέλουν να εισάγουν ότι, μόνο και μόνο επειδή ότι έχει όλα τα βασικά πράγματα. 147 00:07:12,120 --> 00:07:15,400 Το επόμενο πράγμα που κάνουμε, είναι ότι καλέστε φιάλη αυτή τη λειτουργία, απλά 148 00:07:15,400 --> 00:07:19,270 για να δημιουργήσετε ένα αντικείμενο app, και είστε πάντα θα θέλετε να το κάνετε αυτό. 149 00:07:19,270 --> 00:07:25,960 >> Και στη συνέχεια, πηδώντας κάτω προς τα κάτω γρήγορα, αυτό το μέρος είναι εδώ, 150 00:07:25,960 --> 00:07:28,760 «if_name _ ==" _ main_ "», η οποία είναι το είδος της σύμβασης Python. 151 00:07:28,760 --> 00:07:32,750 Έτσι, αυτό θα εκτελέσει μόνο αν εκτελέσετε αυτό το αρχείο άμεσα με την Python. 152 00:07:32,750 --> 00:07:36,040 Στη συνέχεια, καλούμε app.run, η οποία θα πραγματικά ξεκινάτε το app πηγαίνει. 153 00:07:36,040 --> 00:07:39,570 >> Έτσι, αυτή είναι η κύρια δομή, ότι θα πρέπει σε κάθε εφαρμογή φιάλη, 154 00:07:39,570 --> 00:07:48,550 που έχει θα έχει αυτό app = Φιάλη (_NAME_), και στη συνέχεια app.run. 155 00:07:48,550 --> 00:07:54,940 >> Έτσι, τα δύο πράγματα που έχω εδώ, είναι αυτό που λέμε διαδρομές. 156 00:07:54,940 --> 00:07:57,150 Έτσι, ας μιλήσουμε για δρομολόγηση λίγο περισσότερο. 157 00:07:57,150 --> 00:07:58,430 Θα πάω πίσω στη διαφάνεια. 158 00:07:58,430 --> 00:08:02,540 >> Έτσι, η πιο θεμελιώδης έννοια φιάλη δρομολόγησης. 159 00:08:02,540 --> 00:08:06,750 Και αυτό είναι η ιδέα ότι θα αναθέτουν καθήκοντα στην Python 160 00:08:06,750 --> 00:08:11,280 σε συγκεκριμένες διευθύνσεις στην ιστοσελίδα σας. 161 00:08:11,280 --> 00:08:13,930 Έτσι, κάθε φορά που θέλετε για να δημιουργήσετε μια νέα διαδρομή, 162 00:08:13,930 --> 00:08:16,500 μπορείτε να χρησιμοποιήσετε αυτό το @ app.route διακοσμητής λειτουργία. 163 00:08:16,500 --> 00:08:19,770 Έτσι, αν δεν είστε εξοικειωμένοι με διακοσμητές λειτουργία στην Python, 164 00:08:19,770 --> 00:08:24,160 Είναι αυτή η έννοια που σας επιτρέπει να πάρετε μια λειτουργία 165 00:08:24,160 --> 00:08:26,800 και την περιβάλλουν με κάτι άλλο. 166 00:08:26,800 --> 00:08:30,140 >> Έτσι, πραγματικά, τι αυτό διακοσμητής, είναι ότι παίρνει τη λειτουργία κάτω από αυτό, 167 00:08:30,140 --> 00:08:33,409 και προσθέτει περισσότερες πληροφορίες σε αυτό, αλλά αυτό που πραγματικά φιάλη 168 00:08:33,409 --> 00:08:37,480 έχει να συμβεί αυτό δεν είναι σούπερ ζωτικής σημασίας, αλλά αυτό που είναι σημαντικό, 169 00:08:37,480 --> 00:08:43,640 είναι ότι πριν από τη διαδρομή, θέσει αυτό το @ app.route, και στη συνέχεια, 170 00:08:43,640 --> 00:08:46,480 η διεύθυνση της διαδρομής, έτσι ώστε το κάθετο είναι αυτό που 171 00:08:46,480 --> 00:08:48,360 είδαμε όταν μόλις ανοίξει την ιστοσελίδα. 172 00:08:48,360 --> 00:08:49,580 Έτσι, αυτή είναι η αρχική σελίδα. 173 00:08:49,580 --> 00:08:51,037 Είναι ακριβώς η διαδρομή κάθετο. 174 00:08:51,037 --> 00:08:52,370 Και τότε θα πρέπει αυτή τη λειτουργία. 175 00:08:52,370 --> 00:08:54,453 Το όνομα της συνάρτησης μπορεί να είναι ό, τι θέλετε. 176 00:08:54,453 --> 00:08:56,930 Δεν πρέπει να αναγκαστικά έχουν να κάνουν με τη διαδρομή. 177 00:08:56,930 --> 00:08:59,440 Και τότε, ανεξαρτήτως επιστροφή της συνάρτησης, 178 00:08:59,440 --> 00:09:01,730 η λειτουργία θα πρέπει να επιστρέψει ένα string. 179 00:09:01,730 --> 00:09:03,740 Και αυτό μπορεί να κορδόνι περιέχουν HTML ή οτιδήποτε άλλο, 180 00:09:03,740 --> 00:09:06,920 και αυτό είναι στην πραγματικότητα αυτό που θα πάρετε επέστρεψε στο web browser σας σε μορφή HTML, 181 00:09:06,920 --> 00:09:08,200 και θα καταστήσει αυτό. 182 00:09:08,200 --> 00:09:12,030 >> Έτσι, αυτό είναι το ίδιο κωδικό ότι ήταν από το παράδειγμα 183 00:09:12,030 --> 00:09:16,430 ότι εγώ απλά έτρεξε, έτσι ώστε όταν θα επισκεφθεί κάθετος, καλεί μια λειτουργία Hello World, η οποία 184 00:09:16,430 --> 00:09:20,470 απλά επιστρέφει ένα string, Γεια φιάλη, και ότι θα εκτυπωθεί στην οθόνη. 185 00:09:20,470 --> 00:09:27,290 >> Έτσι, υπάρχει ένα άλλο παράδειγμα, η οποία είναι, κατά την επίσκεψή σας / γειά σου, 186 00:09:27,290 --> 00:09:30,370 εκτυπώνει Hello Word, το οποίο θα πρέπει πραγματικά να πω, Hello World, 187 00:09:30,370 --> 00:09:32,010 αλλά ας προσποιηθούμε ότι ήταν εσκεμμένο. 188 00:09:32,010 --> 00:09:35,140 Ας τραβήξει ότι μέχρι πραγματικά γρήγορα. 189 00:09:35,140 --> 00:09:41,290 >> Έτσι, αν πάτε στο localhost / γεια, θα εκτυπώσει τώρα κάτι άλλο. 190 00:09:41,290 --> 00:09:45,680 Έτσι, αυτό είναι απλά ένα γρήγορο παράδειγμα για το πώς μπορείτε να δημιουργήσετε δύο διαφορετικές διαδρομές. 191 00:09:45,680 --> 00:09:50,630 >> Έτσι, μέχρι στιγμής αυτό δεν είναι σούπερ χρήσιμη, Δεν υπάρχει ένα πάρα πολύ που μπορείτε να κάνετε, 192 00:09:50,630 --> 00:09:55,360 θα μπορούσατε απλά να κάνουμε όλα αυτά με έχουν διαφορετικές σελίδες HTML, 193 00:09:55,360 --> 00:09:58,000 και όταν επισκέπτεστε ένα συγκεκριμένο σελίδα φορτώνει μόνο τη σελίδα. 194 00:09:58,000 --> 00:10:00,864 Ας δούμε λίγο περισσότερο χρήσιμα πράγματα που μπορείτε να κάνετε. 195 00:10:00,864 --> 00:10:03,780 Έτσι, ένα πράγμα που μπορεί να έχετε Παρατήρησα στο παράδειγμα που τράβηξα 196 00:10:03,780 --> 00:10:07,160 up, είναι ότι είχα app.run (debug = True). 197 00:10:07,160 --> 00:10:09,580 Και έτσι, ό, τι αυτό debug επιχείρημα αυτό, είναι 198 00:10:09,580 --> 00:10:14,600 ότι όταν τρέξει τον web server σας, όταν είστε στην αίτησή σας, 199 00:10:14,600 --> 00:10:18,100 αν αλλάξετε ένα αρχείο, αυτό θα reload αυτόματα το διακομιστή. 200 00:10:18,100 --> 00:10:21,160 >> Και έτσι δεν χρειάζεται πραγματικά να επανεκκίνηση Python, η οποία είναι εξαιρετικά χρήσιμη. 201 00:10:21,160 --> 00:10:24,020 Μπορώ να δείξουμε ότι. 202 00:10:24,020 --> 00:10:26,960 Επιτρέψτε μου να σηκώσει τον κωδικό μου με την τυπογραφικό λάθος σε αυτό, 203 00:10:26,960 --> 00:10:30,420 και να υποκρινόμαστε ότι τυπογραφικό λάθος τοποθετήθηκε εκεί σκόπιμα για διδακτική χρήση. 204 00:10:30,420 --> 00:10:31,625 Ας προσθέσουμε λοιπόν αυτό ξανά. 205 00:10:31,625 --> 00:10:33,140 Έτσι, τώρα λέει Hello World. 206 00:10:33,140 --> 00:10:34,410 Θα το σώσει. 207 00:10:34,410 --> 00:10:36,540 Και αν εμείς τραβήξτε προς τα πίσω μέχρι το τερματικό, θα 208 00:10:36,540 --> 00:10:39,520 λένε ότι είναι επανεκκίνηση, διότι ανιχνεύεται μια αλλαγή, 209 00:10:39,520 --> 00:10:43,620 και έτσι τώρα όταν φορτώστε ξανά αυτήν τη σελίδα, θα εκτυπώσει το σωστό πράγμα. 210 00:10:43,620 --> 00:10:45,630 >> Έτσι debug είναι εξαιρετικά χρήσιμη για αυτό. 211 00:10:45,630 --> 00:10:48,740 Επίσης, αν έχετε οποιαδήποτε το είδος της σύγκρουσης, έτσι 212 00:10:48,740 --> 00:10:54,370 επιτρέψτε μου να κάνω αυτή την κατάρρευση της εφαρμογής από την κατοχή, δεν θα επιστρέψει ένα string. 213 00:10:54,370 --> 00:10:57,540 Έτσι, ας το έχουν Κανένας επιστρέψουν για κάποιο λόγο. 214 00:10:57,540 --> 00:11:00,810 Και στη συνέχεια, όταν επισκέπτομαι αυτό σελίδα, θα συντριβή μόνο, 215 00:11:00,810 --> 00:11:04,465 αλλά ο διακομιστής δεν είναι μόνο συντριβή, το πραγματικά σας δίνει μια εξαιρετικά χρήσιμη πίσω 216 00:11:04,465 --> 00:11:06,490 ίχνος του όλα όσα πήγαν στραβά. 217 00:11:06,490 --> 00:11:10,050 Και τι είναι πραγματικά ωραίο, είναι ότι σε κάθε βήμα σε αυτό το πίσω ίχνος, 218 00:11:10,050 --> 00:11:14,260 θα μπορούσε να ανοίξει ένα διαδραστικό κέλυφος εδώ, και το είδος της εκτυπώσετε ό, τι 219 00:11:14,260 --> 00:11:17,780 μεταβλητές που θέλετε να ρίξετε μια ματιά στο. 220 00:11:17,780 --> 00:11:21,054 >> Και έτσι είναι πραγματικά εντοπισμού σφαλμάτων χρήσιμο για την εξεύρεση 221 00:11:21,054 --> 00:11:23,470 τι συμβαίνει με σας server, και όχι απλώς να δει 222 00:11:23,470 --> 00:11:28,201 κάτι σε PHP σαν μια εσωτερική 500 σφάλμα διακομιστή, η οποία είναι εξαιρετικά άχρηστο. 223 00:11:28,201 --> 00:11:30,700 Ένα πράγμα που πρέπει να γνωρίζει, είναι ότι αν βάλεις σε απευθείας σύνδεση app σας 224 00:11:30,700 --> 00:11:34,260 έτσι είναι ορατή στο κοινό, θα ποτέ δεν θέλουν να φύγουν λειτουργία εντοπισμού σφαλμάτων σε, 225 00:11:34,260 --> 00:11:37,320 επειδή οι άνθρωποι μπορούν πραγματικά χρησιμοποιεί το εν λόγω κονσόλα που έχω 226 00:11:37,320 --> 00:11:39,150 έδειξε να εκτελέσει αυθαίρετο κώδικα. 227 00:11:39,150 --> 00:11:42,120 >> Έτσι μπορούν να εκτυπώσουν όπως και κάθε μυστικούς κωδικούς που έχετε εκεί, 228 00:11:42,120 --> 00:11:44,755 μπορεί να κοιτάξει ακριβώς πώς ο ιστοχώρος σας λειτουργεί. 229 00:11:44,755 --> 00:11:46,630 Γι 'αυτό είναι πραγματικά χρήσιμο για τον έλεγχο, αλλά πάντα 230 00:11:46,630 --> 00:11:50,090 φροντίστε να το πάρουν πριν που θα δημοσιεύσει οτιδήποτε online. 231 00:11:50,090 --> 00:11:56,640 >> Έτσι, όταν χρησιμοποιείτε κάτι όπως PHP, υπάρχει αυτή η ιδέα 232 00:11:56,640 --> 00:11:58,920 ότι μπορείτε να περάσετε πληροφοριών μεταξύ των ιστοσελίδων 233 00:11:58,920 --> 00:12:03,620 θέτοντας τις πληροφορίες πραγματικότητα στη διεύθυνση URL, το οποίο είναι ένα αίτημα GET, 234 00:12:03,620 --> 00:12:07,490 αλλά στη φιάλη, μπορείτε πραγματικά να κάνει κάτι περίπου όπως ότι, 235 00:12:07,490 --> 00:12:10,590 έχοντας μια διαδρομή που έχει ένα μεταβλητό ως μέρος της. 236 00:12:10,590 --> 00:12:14,090 >> Έτσι, αν εξετάσουμε αυτό το θέμα παράδειγμα στην οθόνη εδώ, 237 00:12:14,090 --> 00:12:19,930 έχουμε μια διαδρομή που είναι ('/ γεια σου /'), και έτσι, αν επισκεφτείτε 238 00:12:19,930 --> 00:12:23,790 / γεια / κάτι, αυτό το κάτι πρόκειται να πάρει πραγματικά γεμάτη 239 00:12:23,790 --> 00:12:25,490 στο όνομα της μεταβλητής. 240 00:12:25,490 --> 00:12:27,850 Και παρατηρώ ότι η λειτουργία που έρχεται με την εν λόγω διαδρομή 241 00:12:27,850 --> 00:12:31,302 πρέπει να λάβει την παράμετρο όνομα, έτσι ώστε θα είναι πράγματι 242 00:12:31,302 --> 00:12:32,510 να περάσει στη λειτουργία. 243 00:12:32,510 --> 00:12:34,190 >> Και στη συνέχεια, όταν είστε στο εσωτερικό αυτής της λειτουργίας, 244 00:12:34,190 --> 00:12:36,420 μπορείτε να προσφέρετε ότι, όπως μια κανονική μεταβλητή Python, 245 00:12:36,420 --> 00:12:39,650 και έτσι στη συνέχεια, θα εκτυπώσετε Γεια σας, και 246 00:12:39,650 --> 00:12:42,000 θα συμπληρώσετε το όνομα χρησιμοποιώντας κάποια μορφοποίηση κορδόνι. 247 00:12:42,000 --> 00:12:48,060 >> Έτσι, για να προσθέσετε το μεταβλητό τμήμα σε ένα δρομολόγησης, μπορείτε να χρησιμοποιήσετε την αγκύλη σήμανση. 248 00:12:48,060 --> 00:12:51,220 Και προαιρετικά, μπορείτε να χρησιμοποιήσετε ό, τι λέγεται ένας μετατροπέας. 249 00:12:51,220 --> 00:12:56,840 Και έτσι, αν βάλετε αυτό σχολιασμός με το παχύ έντερο, 250 00:12:56,840 --> 00:13:00,015 μπορείτε να καθορίσετε ότι είναι ένας int, float ή, ή μονοπάτι, 251 00:13:00,015 --> 00:13:01,640 και θα μετατρέψει αυτόματα αυτό. 252 00:13:01,640 --> 00:13:05,130 Μπορείτε επίσης να κάνετε τη μετατροπή στο πλαίσιο της λειτουργίας της Python, 253 00:13:05,130 --> 00:13:09,710 απλά με τη χρήση ενός cast, αλλά μερικές φορές εάν θέλετε να εξασφαλίσετε ότι είναι ένας int, 254 00:13:09,710 --> 00:13:12,080 μπορείτε να βάλετε ότι κανόνας περί μετατροπής εκεί. 255 00:13:12,080 --> 00:13:15,930 >> Οπότε ας σηκώσει ένα παράδειγμα κάποιων μεταβλητών κανόνες. 256 00:13:15,930 --> 00:13:21,480 Μέχρι εδώ, αυτό έχει την ίδια βασική δομή, με την εισαγωγή από τη φιάλη 257 00:13:21,480 --> 00:13:25,030 Φιάλη, η εφαρμογή = φιάλη (_NAME_), και στη συνέχεια να τρέχει στο τέλος. 258 00:13:25,030 --> 00:13:28,050 Έχουμε αυτά τα δύο διαφορετικά μεταβλητή διαδρομές εδώ. 259 00:13:28,050 --> 00:13:29,900 Και το πρώτο, είναι αυτό που μου έδειξε 260 00:13:29,900 --> 00:13:34,230 στη διαφάνεια, η οποία ήταν η παίρνει μόνο σε ένα όνομα συμβολοσειράς 261 00:13:34,230 --> 00:13:35,650 και θα εκτυπώσει Γεια σας, Όνομα. 262 00:13:35,650 --> 00:13:41,410 >> Και στη συνέχεια το δευτερόλεπτο κάποιος χρησιμοποιεί τη μετατροπή. 263 00:13:41,410 --> 00:13:44,690 Έτσι, αυτό θα το μετατρέψει αυτόματα σε int, και στη συνέχεια να διπλασιάσει το int, 264 00:13:44,690 --> 00:13:46,150 και να εκτυπώσετε αυτό έξω. 265 00:13:46,150 --> 00:13:48,220 Και, εμείς δεν κάνουμε κανενός είδους της μετατροπής μέσα σε αυτό 266 00:13:48,220 --> 00:13:49,594 Φιάλη επειδή φροντίζει για αυτό. 267 00:13:49,594 --> 00:13:53,181 Ας πάρει αυτό το τρέξιμο. 268 00:13:53,181 --> 00:13:54,930 Όταν έχετε μια φιάλη εφαρμογή που εκτελείται, 269 00:13:54,930 --> 00:13:58,440 Μπορείτε να ελέγξετε-C έξω από αυτό για να σταματήσει η λειτουργία του διακομιστή. 270 00:13:58,440 --> 00:14:02,420 Και τότε εγώ θα τρέξει τις μεταβλητές. 271 00:14:02,420 --> 00:14:11,740 >> Έτσι, ας πάμε στην localhost / γεια / Ezra και Ας ελπίσουμε ότι αυτό θα πω γεια σε μένα. 272 00:14:11,740 --> 00:14:14,530 273 00:14:14,530 --> 00:14:20,310 >> Γι 'αυτό πήρε το όνομά μου, στη μεταβλητή διαδρομή, και συμπλήρωσε εδώ. 274 00:14:20,310 --> 00:14:23,950 Γι 'αυτό, επίσης, θα παρουσιάσω μια γρήγορη παράδειγμα του διπλασιασμού. 275 00:14:23,950 --> 00:14:28,600 Έτσι, αν πάτε στο / διπλό / 3, θα εκτυπώσετε 6. 276 00:14:28,600 --> 00:14:31,440 Έτσι, αυτό φρόντισε η μετατροπή για εμάς. 277 00:14:31,440 --> 00:14:34,190 >> Έτσι, μπορείτε επίσης να το κάνετε με float, και κάτι το ιδιαίτερο, 278 00:14:34,190 --> 00:14:37,530 αν χρειαστεί να καθορίσετε κάτι σαν ένα μονοπάτι, που σας επιτρέπει να την αποδεχθεί καθέτους, 279 00:14:37,530 --> 00:14:39,155 αλλά αυτό δεν θα πρέπει συνήθως να είναι ένα ζήτημα. 280 00:14:39,155 --> 00:14:41,480 281 00:14:41,480 --> 00:14:43,820 Μέχρι στιγμής έχουμε, εξακολουθούν να έχουν μόλις επιστροφή 282 00:14:43,820 --> 00:14:46,320 χορδές, το οποίο δεν είναι πολύ ενδιαφέρουσα. 283 00:14:46,320 --> 00:14:48,730 >> Θα μπορούσαμε πραγματικά να επιστρέψει κυριολεκτική HTML. 284 00:14:48,730 --> 00:14:54,322 Έτσι, στον κώδικα μπορούμε να εισάγουμε κάτι όπως η β-tag ώστε να είναι τολμηρή, 285 00:14:54,322 --> 00:14:56,030 αλλά οι περισσότεροι ο χρόνος που Δεν θέλουν πραγματικά 286 00:14:56,030 --> 00:14:58,420 να γράφει κώδικα HTML στον κώδικα Python σας. 287 00:14:58,420 --> 00:15:01,940 Παίρνει πραγματικά βρώμικο, και δεν είναι μια καλή στιγμή. 288 00:15:01,940 --> 00:15:06,430 >> Φιάλη μας επιτρέπει να διαχωρίσουμε το HTML σε αυτό που ονομάζεται το πρότυπο, 289 00:15:06,430 --> 00:15:09,467 και έτσι εάν σκέφτεστε από την άποψη του μοντέλου MVC 290 00:15:09,467 --> 00:15:11,550 ότι είστε εξοικειωμένοι με, Ας ελπίσουμε ότι, από την εργασία 291 00:15:11,550 --> 00:15:15,520 με CS50 Οικονομικών λίγο, μπορείτε να σκεφτείτε τα αρχεία Python 292 00:15:15,520 --> 00:15:19,430 ως περισσότερο του ελεγκτή, όπου που αλληλεπιδρούν με ό, 293 00:15:19,430 --> 00:15:20,970 μοντέλο δεδομένων μπορεί να έχετε. 294 00:15:20,970 --> 00:15:24,900 >> Και τότε είναι που φωνάζει για να Προβολές και περνώντας πληροφορίες σε αυτή την άποψη 295 00:15:24,900 --> 00:15:28,120 να συμπληρώσετε τα στοιχεία στην HTML που χρειάζεται. 296 00:15:28,120 --> 00:15:30,490 Και αυτό που λέμε αυτές τις Προβολές Τα πρότυπα στην κατηγορία. 297 00:15:30,490 --> 00:15:35,280 >> Έτσι Φιάλη χρησιμοποιεί μια άλλη Python module που αυτόματα θα 298 00:15:35,280 --> 00:15:38,620 εγκαταστήσετε κατά την εγκατάσταση του PIP Φιάλη που ονομάζεται Jinja, η οποία 299 00:15:38,620 --> 00:15:40,885 σας επιτρέπει να προσθέσετε αυτές σημειώσεις για την HTML 300 00:15:40,885 --> 00:15:45,140 που βλέπετε στην οθόνη, που σας επιτρέπει βάζετε σε πράγματα όπως υποθετικά, 301 00:15:45,140 --> 00:15:47,230 και θηλιές στο HTML. 302 00:15:47,230 --> 00:15:51,140 >> Έτσι φαίνεται λίγο σαν το πώς θα θα μπορούσαν να χρησιμοποιήσουν PHP μέσα σε ένα αρχείο HTML, 303 00:15:51,140 --> 00:15:57,380 αλλά αυτό είναι μόνο όταν η φιάλη διακομιστής εξυπηρετεί το αρχείο HTML, 304 00:15:57,380 --> 00:16:01,610 θα τρέξει αυτή τη μηχανή προτύπων και αναλύσει μέσα από αυτό και να συμπληρώσετε τα πράγματα μέσα. 305 00:16:01,610 --> 00:16:06,650 Έτσι φιάλη έχει μια λειτουργία render_template ότι μπορείτε να δείτε στο κάτω μέρος εδώ. 306 00:16:06,650 --> 00:16:14,300 Και έτσι όταν επισκέπτεστε αυτή τη σελίδα, το καθιστά αυτή τη hello.html προτύπου, 307 00:16:14,300 --> 00:16:16,407 και στη συνέχεια συμπληρώστε αυτή τη σελίδα HTML. 308 00:16:16,407 --> 00:16:18,990 Έτσι, ας τρέξει αυτό το πραγματικό γρήγορη, και να δούμε τι μοιάζει, 309 00:16:18,990 --> 00:16:21,198 και στη συνέχεια θα περάσουν από μια λίγο με περισσότερες λεπτομέρειες. 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 Έτσι, τα πρότυπά σας θα για να πάει σε ένα φάκελο Πρότυπα. 312 00:16:30,260 --> 00:16:33,980 Θα εξετάσουμε αυτόματα εντός της Πρότυπα φάκελο για το εν λόγω πρότυπο. 313 00:16:33,980 --> 00:16:35,615 Ας ανοίξει αυτό επάνω. 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 Έτσι, θα τρέξει το παράδειγμα Templating. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> Έτσι, αν πάω στο / γεια / Ezra, έχει αυτό το τρομερό, 318 00:17:03,660 --> 00:17:05,930 αντιπαθητικός σκηνή ετικέτα που έβαλα στο. 319 00:17:05,930 --> 00:17:08,050 Πολύ ωραίο, πολύ δυναμική. 320 00:17:08,050 --> 00:17:09,349 Είμαι μεγάλος οπαδός. 321 00:17:09,349 --> 00:17:13,900 Αλλά τι θα συμβεί αν Απλά πηγαίνετε στο, / γεια; 322 00:17:13,900 --> 00:17:15,220 Γι 'αυτό ακριβώς λέει Hello World. 323 00:17:15,220 --> 00:17:17,678 Δεν πρέπει να δώσετε ένα όνομα, και αυτό θα συμπληρώνονται αυτόματα. 324 00:17:17,678 --> 00:17:22,050 Ας δούμε πώς το έκανε αυτό, και πώς μπορούμε να απαλλαγούμε από αυτό το marquee ίσως. 325 00:17:22,050 --> 00:17:26,240 >> Έτσι, εδώ, αυτό είναι το είδος του ένα ενδιαφέρον παράδειγμα, 326 00:17:26,240 --> 00:17:29,101 αν είστε εξοικειωμένοι με το πώς διακόπτη Δηλώσεις εργαστούν σε μια γλώσσα. 327 00:17:29,101 --> 00:17:31,350 Λένε ότι αυτό είναι το είδος του όπως, αυτό το είδος της πτώσης μέσα, 328 00:17:31,350 --> 00:17:34,266 όπου μπορείτε πραγματικά δύο συνημμένες διαφορετικές διαδρομές στην ίδια λειτουργία. 329 00:17:34,266 --> 00:17:41,190 Έτσι δίνουμε την / γειά σου διαδρομή και ο / γεια / όνομα της διαδρομής για να Γεια σας, 330 00:17:41,190 --> 00:17:45,130 και ορίζουμε using-- Python σας επιτρέπει καθορίσετε προεπιλεγμένες arguments-- λειτουργία 331 00:17:45,130 --> 00:17:48,300 Έτσι, αν δεν υπάρχει το όνομα, έτσι αν πάμε σε λίγο / γεια, 332 00:17:48,300 --> 00:17:50,680 θα φιλτράρει αυτόματα για να αναφέρουμε είναι ίση με Ουδέν. 333 00:17:50,680 --> 00:17:55,010 >> Έτσι, λοιπόν, θα καταστήσει το Πρότυπο με name = όνομα, 334 00:17:55,010 --> 00:17:59,510 γι 'αυτό θα περάσει στην παράμετρο όνομα ίση με αυτή την παράμετρο της λειτουργίας όνομα, 335 00:17:59,510 --> 00:18:00,730 στο πρότυπο. 336 00:18:00,730 --> 00:18:04,040 Αυτό ακόμα δεν εξηγεί πώς είναι να αποφασίσει εάν θα εκτυπώσετε Hello World, 337 00:18:04,040 --> 00:18:05,100 ή να εκτυπώσετε το όνομά μου. 338 00:18:05,100 --> 00:18:08,050 Ας δούμε πραγματικά στο ίδιο το Πρότυπο, 339 00:18:08,050 --> 00:18:11,610 και να δούμε εάν αυτό προέρχεται. 340 00:18:11,610 --> 00:18:18,680 >> Έτσι, μέσα σε αυτό το πρότυπο, πράγματι έχουν κάποια λογική υπό όρους, 341 00:18:18,680 --> 00:18:20,580 το οποίο μερικοί άνθρωποι θα Υποστηρίζουν, μπορείτε πραγματικά 342 00:18:20,580 --> 00:18:23,730 δεν θα πρέπει να έχουν πολλή υπό όρους μέσα στην ίδια λογική προτύπου σας. 343 00:18:23,730 --> 00:18:26,310 Θα πρέπει να είναι περισσότερο εντός της Controller, αλλά για αυτό το παράδειγμα 344 00:18:26,310 --> 00:18:27,476 είναι κάτι πολύ μικρό. 345 00:18:27,476 --> 00:18:31,060 Έτσι, εδώ, θα ελέγχει, εάν το όνομα του, έτσι εάν το όνομα δεν είναι ίση με Κανένα, 346 00:18:31,060 --> 00:18:33,130 αν ένα όνομα είναι στην πραγματικότητα πέρασε στην, τότε θα 347 00:18:33,130 --> 00:18:36,210 Γεια σας πω, ονομασία με την επικεφαλίδα και η σκηνή, 348 00:18:36,210 --> 00:18:41,490 όλα αυτά κανονικό HTML, αλλιώς, θα το κάνουμε εκτυπώσετε Hello, World απλά κανονικά. 349 00:18:41,490 --> 00:18:45,820 Έτσι, μερικά πράγματα για να παρατηρήσετε εδώ σχετικά με το πώς μπορείτε να διαμορφώσετε τον υφής, 350 00:18:45,820 --> 00:18:49,110 είναι ότι, όλα αυτά υπό όρους δηλώσεις, 351 00:18:49,110 --> 00:18:54,475 περίπου όπως το πώς εμείς όταν η PHP θέλετε να εισάγετε κάποιο PHP, 352 00:18:54,475 --> 00:18:58,380 μπορείτε να χρησιμοποιήσετε το λιγότερο από ό, τι ερώτηση σήμα, είναι το είδος της ανάλογης εδώ 353 00:18:58,380 --> 00:19:00,140 με την {%. 354 00:19:00,140 --> 00:19:02,130 >> Έτσι, εδώ, έχουμε υπό όρους κωδικό μας. 355 00:19:02,130 --> 00:19:05,920 Και τότε, όταν θέλετε πραγματικά να κυριολεκτικά αξιολογήσουμε κάτι, και εκτύπωσης 356 00:19:05,920 --> 00:19:08,710 έξω στην οθόνη, μπορείτε χρησιμοποιήστε τα διπλά άγκιστρα. 357 00:19:08,710 --> 00:19:12,310 Μέχρι εδώ είναι τα διπλά άγκιστρα, και στη συνέχεια να καθορίσετε το όνομα, 358 00:19:12,310 --> 00:19:15,500 έτσι μέσα σε αυτό, θα αξιολογήσει στο όνομα της μεταβλητής, η οποία 359 00:19:15,500 --> 00:19:18,860 ψηφίστηκε από το καθιστούν τη λειτουργία πρότυπο, 360 00:19:18,860 --> 00:19:21,484 και όχι μόνο εκτύπωση έξω, αν έχουμε απαλλαγεί από αυτά, 361 00:19:21,484 --> 00:19:23,150 θα ήταν απλά να εκτυπώσετε τη λέξη "όνομα". 362 00:19:23,150 --> 00:19:26,340 Έτσι, αυτό είναι κάτι που πρέπει να προσέξετε. 363 00:19:26,340 --> 00:19:29,792 >> Έτσι, ένα άλλο πράγμα που ανακοίνωσης είναι ότι, όταν 364 00:19:29,792 --> 00:19:31,500 θέλετε να χρησιμοποιήσετε το render_template λειτουργία, 365 00:19:31,500 --> 00:19:34,490 έχουμε στην πραγματικότητα για να εισαγάγετε ρητό φιάλης. 366 00:19:34,490 --> 00:19:36,915 Και αυτό είναι ένα παράδειγμα του η σπονδυλωτή μορφή φιάλη, 367 00:19:36,915 --> 00:19:39,290 ότι δεν έχετε να εισάγουν πράγματα που δεν χρειάζεστε. 368 00:19:39,290 --> 00:19:41,290 Μπορείτε απλά να το φέρει σε λειτουργίες που πράγματι 369 00:19:41,290 --> 00:19:43,450 χρειάζεται, η οποία είναι μερικές φορές ωραίο, έτσι ώστε να μην 370 00:19:43,450 --> 00:19:46,560 πρέπει να έχουν όλες αυτές τις λειτουργίες κάθονται γύρω από αυτό που δεν χρησιμοποιείτε, 371 00:19:46,560 --> 00:19:49,730 αλλά επίσης, αν ξεχάσετε ότι έχετε πρέπει να εισάγει render_template, 372 00:19:49,730 --> 00:19:52,660 θα πάρετε πιθανώς μια προειδοποίηση ότι θα σας αφήσει να ξέρετε γι 'αυτό. 373 00:19:52,660 --> 00:19:56,700 Έτσι, αυτό είναι υφής. 374 00:19:56,700 --> 00:20:01,680 >> Έτσι, έχουμε δείξει πώς να κάνουν απλές ιστοσελίδες, 375 00:20:01,680 --> 00:20:04,947 και προσθέστε λίγο πιο λογική αυτό, από την άποψη της μεταβλητής δρομολόγησης. 376 00:20:04,947 --> 00:20:08,280 Σας επιτρέπει να κάνετε διαφορετικά πράγματα με βάση ποια διεύθυνση URL θα πάνε, και επίσης, στη συνέχεια, να δώσει 377 00:20:08,280 --> 00:20:11,950 η HTML λίγο περισσότερο νόημα στην όσον αφορά το πώς θέλετε να καταστήσει τα πράγματα. 378 00:20:11,950 --> 00:20:14,210 Δεν χρειάζεται να βάλετε όλα HTML σας στην Python σας, 379 00:20:14,210 --> 00:20:16,640 αλλά για λίγο πολύ κάθε web εφαρμογή, 380 00:20:16,640 --> 00:20:21,480 θα πάμε να θέλουν κάποιο είδος του μοντέλου δεδομένων που σχετίζονται με αυτό. 381 00:20:21,480 --> 00:20:25,560 >> Και έτσι παραδοσιακά, αυτό θα είναι κάτι σαν μια βάση δεδομένων SQL. 382 00:20:25,560 --> 00:20:30,280 Και μπορείτε να αλληλεπιδράσετε μόνο άμεσα με την SQL. 383 00:20:30,280 --> 00:20:32,190 Η Python έχει, νομίζω ότι λέγεται. 384 00:20:32,190 --> 00:20:33,040 SQLite 3. 385 00:20:33,040 --> 00:20:38,454 Μπορείτε να εισάγετε μόνο SQLite 3 και εκτελέσει άμεσα ερωτήματα SQL, 386 00:20:38,454 --> 00:20:40,870 αλλά δεν ξέρω για σας, αλλά εγώ πραγματικά δεν μου αρέσει, απλά, 387 00:20:40,870 --> 00:20:42,750 εγγράφως από τον SQL ερωτήματα. 388 00:20:42,750 --> 00:20:45,350 Τείνει να πάρει πραγματικά μακρά και πολύπλοκη. 389 00:20:45,350 --> 00:20:49,180 >> Και έτσι, κάτι που Μου αρέσει να χρησιμοποιώ είναι ό, τι είναι 390 00:20:49,180 --> 00:20:53,610 γνωστό ως ένα ORM, η οποία είναι μια αντικείμενο-σχεσιακή χαρτογράφηση. 391 00:20:53,610 --> 00:20:56,890 Και το σημείο της αντικείμενο-σχεσιακή χαρτογράφηση, 392 00:20:56,890 --> 00:21:00,100 είναι ότι υπάρχουν δύο διαφορετικές τρόποι που μπορείτε να σκεφτείτε για τις βάσεις δεδομένων. 393 00:21:00,100 --> 00:21:03,240 >> Έτσι, το παράδειγμα που Καθηγητής Malan συνήθως 394 00:21:03,240 --> 00:21:07,660 χρησιμοποιεί στην τάξη, είναι ο πίνακας του Excel, όπου έχετε αυτές τις γραμμές και τις στήλες αυτές, 395 00:21:07,660 --> 00:21:10,210 και αυτό είναι πραγματικά χρήσιμο για πώς να εκπροσωπείται στην SQL 396 00:21:10,210 --> 00:21:13,170 και πώς αλληλεπιδρούν με αυτό, αλλά Ένας άλλος τρόπος που είναι στην πραγματικότητα 397 00:21:13,170 --> 00:21:16,390 χρήσιμο να σκεφτούμε γι 'αυτό μερικές φορές, είναι από την άποψη των κλάσεων και αντικειμένων. 398 00:21:16,390 --> 00:21:20,420 >> Έτσι αντί της σκέψης κάθε πίνακα ως έχουσα 399 00:21:20,420 --> 00:21:23,040 Αυτή η σειρά που έχει ορισμένες πληροφορίες, μπορείτε πραγματικά να 400 00:21:23,040 --> 00:21:26,100 σκεφτείτε το σαν να είναι Κάθε πίνακας είναι μια κατηγορία, 401 00:21:26,100 --> 00:21:29,810 και στη συνέχεια κάθε περίπτωση ο τάξη έχει ορισμένες ιδιότητες. 402 00:21:29,810 --> 00:21:35,110 Έτσι, σε αυτό το παράδειγμα, οι περιπτώσεις η κατηγορία είναι οι γραμμές του πίνακα, 403 00:21:35,110 --> 00:21:37,490 και, στη συνέχεια, κάθε ακίνητο θα είναι μια στήλη στον πίνακα. 404 00:21:37,490 --> 00:21:40,840 >> Έτσι, η ORM που μου αρέσει να χρησιμοποιούν ονομάζεται PeeWee. 405 00:21:40,840 --> 00:21:43,520 Είναι πολύ μικρό, περίπου όπως φιάλης. 406 00:21:43,520 --> 00:21:46,760 Νομίζω ότι θα πάει καλά μαζί, αλλά υπάρχουν πολλά άλλα ΝΤΥΠΑ 407 00:21:46,760 --> 00:21:47,730 που μπορείτε να χρησιμοποιήσετε. 408 00:21:47,730 --> 00:21:52,180 Μια πιο δημοφιλής είναι γνωστή ως SQLAlchemy, 409 00:21:52,180 --> 00:21:56,050 και δεν μπορώ να θυμηθώ γιατί είχα αρχικά επέλεξε PeeWee πάνω SQLAlchemy, 410 00:21:56,050 --> 00:21:58,311 ή θα ήθελα να σας πω γι 'αυτό νομίζω ότι είναι η καλύτερη, 411 00:21:58,311 --> 00:22:01,060 αλλά είμαστε ακριβώς πρόκειται να χρησιμοποιήσετε αυτό μία γιατί ξέρω πώς να το χρησιμοποιήσετε. 412 00:22:01,060 --> 00:22:04,760 >> Έτσι, ένα ερώτημα είναι, γιατί πρέπει να σας ενοχλεί χρησιμοποιώντας ένα ORM, 413 00:22:04,760 --> 00:22:07,552 και όχι μόνο απ 'ευθείας εγγράφως ερωτήματα SQL; 414 00:22:07,552 --> 00:22:09,760 Και νομίζω ότι η καλύτερη περίπτωση, είναι ότι δεν το κάνετε πραγματικότητα 415 00:22:09,760 --> 00:22:11,356 πρέπει να γράψετε SQL ερωτήματα. 416 00:22:11,356 --> 00:22:14,480 Είναι πολύ πιο εύκολο, όπως θα σας δείξω, να κάνουμε τα πράγματα όπως την επιλογή, εισαγωγή, 417 00:22:14,480 --> 00:22:16,157 διαγραφή, ειδικά τη δημιουργία πινάκων. 418 00:22:16,157 --> 00:22:17,990 Είναι πολύ πιο εύκολο να Αποστολή ταξική δομή, 419 00:22:17,990 --> 00:22:22,250 ό, τι είναι να δομήσει μια Δημιουργήστε Πίνακας δήλωση, αλλά ένα πράγμα 420 00:22:22,250 --> 00:22:25,710 να γνωρίζουν, είναι ότι η ORM θα προσπαθήσουμε το καλύτερο της 421 00:22:25,710 --> 00:22:28,640 να καταλάβω ποια είναι η πιο αποδοτική ερώτημα SQL θα ήταν, 422 00:22:28,640 --> 00:22:30,110 αλλά μερικές φορές γίνεται λάθος. 423 00:22:30,110 --> 00:22:32,660 >> Και ειδικά αν είστε σε συνεργασία με μια μεγάλη βάση δεδομένων, 424 00:22:32,660 --> 00:22:35,557 μπορείτε να παρατηρήσετε ότι ένα ερώτημα ότι θα πρέπει να τρέχει γρήγορα, 425 00:22:35,557 --> 00:22:36,640 είναι στην πραγματικότητα παίρνει περισσότερο χρόνο. 426 00:22:36,640 --> 00:22:40,164 Και αν δει κανείς κάτω από την κουκούλα στο πώς η ORM ερμηνεύει ότι σε SQL, 427 00:22:40,164 --> 00:22:42,080 θα μπορούσε να κάνει κάτι πραγματικά γελοίο, 428 00:22:42,080 --> 00:22:44,371 μόνο και μόνο επειδή το είδος του Έδειξε τις προθέσεις σας λάθος. 429 00:22:44,371 --> 00:22:48,080 Και, υπήρξαν εποχές όπου Είχα να το παρακάμψετε, και απλά 430 00:22:48,080 --> 00:22:52,429 εκτελέσει τη δική ερωτήματα SQL μου, απλά επειδή parsing με ένα περίεργο τρόπο. 431 00:22:52,429 --> 00:22:54,220 Έτσι, υπάρχει κάποια εναέρια, ακριβώς με τον τρόπο 432 00:22:54,220 --> 00:22:58,680 ότι συγκεντρώνει σας Δηλώσεις προς τα κάτω σε SQL. 433 00:22:58,680 --> 00:23:06,200 >> Έτσι, ας ρίξουμε μια ματιά σε σούπερ γρήγορα ένα απλό παράδειγμα ενός μοντέλου δεδομένων 434 00:23:06,200 --> 00:23:07,350 ότι μπορείτε να χρησιμοποιήσετε. 435 00:23:07,350 --> 00:23:11,880 Έτσι, αυτό είναι Python κώδικα, και έτσι η πρώτο πράγμα που θέλετε να κάνετε είναι από 436 00:23:11,880 --> 00:23:12,950 PeeWee εισαγωγής *. 437 00:23:12,950 --> 00:23:15,850 Έτσι, σε αντίθεση με φιάλη, όπου έχετε Όλες αυτές οι μεμονωμένες μονάδες, 438 00:23:15,850 --> 00:23:18,125 και θέλετε να εισαγάγετε φιάλη, και γράψει ένα πρότυπο, και κάποιοι άλλοι 439 00:23:18,125 --> 00:23:20,690 ότι θα δούμε αργότερα, από PeeWee, μπορείτε να εισάγετε απλά τα πάντα, 440 00:23:20,690 --> 00:23:22,290 γιατί είναι μια πολύ μικρή βιβλιοθήκη. 441 00:23:22,290 --> 00:23:26,490 >> Έτσι, το πρώτο πράγμα που θέλετε να κάνετε, είναι στην πραγματικότητα δημιουργήσει αυτό το αντικείμενο βάσης δεδομένων. 442 00:23:26,490 --> 00:23:31,212 Έτσι, έχετε db = SqliteDatabase, και, στη συνέχεια, το όνομα της βάσης δεδομένων σας. 443 00:23:31,212 --> 00:23:33,170 Και αυτό θα είναι πράγματι δημιουργήσετε ένα αντικείμενο βάσης δεδομένων 444 00:23:33,170 --> 00:23:36,230 ότι μπορείτε να αλληλεπιδράσετε με, με PeeWee. 445 00:23:36,230 --> 00:23:40,570 >> Και στη συνέχεια, έχουμε την πραγματική μοντέλο που θέλουμε να δημιουργήσουμε. 446 00:23:40,570 --> 00:23:42,470 Έτσι, ο πίνακας που θέλουμε να δημιουργήσουμε. 447 00:23:42,470 --> 00:23:47,270 Έτσι, μέσα σε PeeWee, κάθε κατηγορία έχει τον δικό του πίνακα στη βάση δεδομένων σας. 448 00:23:47,270 --> 00:23:52,800 Έτσι, όλες οι τάξεις κληρονομούν από το βασικό μοντέλο, 449 00:23:52,800 --> 00:23:55,960 και το μοντέλο του κεφαλαίου M είναι κάτι που ορίζεται στο PeeWee. 450 00:23:55,960 --> 00:24:02,162 >> Έτσι, όλα τα μοντέλα σας θα πρέπει να κληρονομούν ως ανώτατο υπερκλάση τους, 451 00:24:02,162 --> 00:24:04,620 θα πρέπει να κληρονομήσουν από το μοντέλο, αλλά αυτό που είναι πραγματικά δροσερό, 452 00:24:04,620 --> 00:24:07,610 είναι ότι μπορείτε να έχετε πραγματικά σας μοντέλα κληρονομούν ένα από το άλλο. 453 00:24:07,610 --> 00:24:10,530 Και πολλές φορές, σας μοντέλων δεδομένων δεν είναι απαραίτητο 454 00:24:10,530 --> 00:24:13,754 κάνει ένα ωραίο ιεραρχία κληρονομικότητας, αλλά φορές όταν το κάνουν, είναι πραγματικά ωραίο, 455 00:24:13,754 --> 00:24:15,920 επειδή έχετε το μοντέλο εγγενής ένας από τον άλλο. 456 00:24:15,920 --> 00:24:19,710 >> Έτσι, ορίσαμε αυτή την κατηγορία «μαθητής», που κληρονομεί ένα μοντέλο, 457 00:24:19,710 --> 00:24:21,170 και έχει τρεις ιδιότητες. 458 00:24:21,170 --> 00:24:24,080 Έχει ένα αναγνωριστικό, το οποίο είναι α PrimaryKeyField, η οποία 459 00:24:24,080 --> 00:24:26,920 Είναι κάτι που προβλέπεται από PeeWee, το όνομα είναι ένα CharField, 460 00:24:26,920 --> 00:24:28,490 και ένας βαθμός είναι ένα IntegerField. 461 00:24:28,490 --> 00:24:32,260 Έτσι, αυτό μπορεί να είναι ή να μην είναι πώς CS50 αποθηκεύει στην πραγματικότητα όλα 462 00:24:32,260 --> 00:24:33,650 βαθμοί των μαθητών. 463 00:24:33,650 --> 00:24:36,060 Δεν είναι, αλλά αυτό είναι το πώς θα το έκανα. 464 00:24:36,060 --> 00:24:37,920 >> Και τότε έχει, εντός αυτή η τάξη, και αυτό 465 00:24:37,920 --> 00:24:41,620 είναι κάτι που μπορείτε να κάνετε με Python, μπορείτε να έχετε ένθετα κατηγορίες. 466 00:24:41,620 --> 00:24:43,920 Και αυτό είναι κάτι που απαιτείται από PeeWee. 467 00:24:43,920 --> 00:24:47,250 Έτσι, αυτή η κατηγορία Μέτα, έχετε να διευκρινιστεί ότι η βάση δεδομένων είναι 468 00:24:47,250 --> 00:24:49,830 ίσο με το αντικείμενο που δημιουργήσαμε παραπάνω. 469 00:24:49,830 --> 00:24:54,339 Και αυτό λέει ό, τι αρχείο είναι αυτό το τραπέζι στην πραγματικότητα πρόκειται να περιέχονται σε. 470 00:24:54,339 --> 00:24:57,130 Έτσι, αυτό είναι κάτι που έχετε να κάνει μέσα σε όλα τα μοντέλα σας. 471 00:24:57,130 --> 00:24:59,380 Απλά πρέπει να καθορίσετε εντός αυτής της κατηγορίας Meta 472 00:24:59,380 --> 00:25:01,400 ότι η βάση δεδομένων είναι ίσο με db. 473 00:25:01,400 --> 00:25:03,940 Λοιπόν, τι κάνω συνήθως, αν έχω μια δέσμη των διαφορετικών μοντέλων, 474 00:25:03,940 --> 00:25:05,910 είναι ότι έχω μία βάση μοντέλο, που συνήθως 475 00:25:05,910 --> 00:25:08,839 απλά καλέστε «βασικό μοντέλο» ότι έχει την Meta τάξη, 476 00:25:08,839 --> 00:25:10,380 και θέτει τη βάση δεδομένων ίση με db. 477 00:25:10,380 --> 00:25:13,710 Και τότε όλα τα επόμενα μοντέλα μου θα κληρονομήσει από την εν λόγω βάση την κατηγορία. 478 00:25:13,710 --> 00:25:16,760 Και τότε δεν χρειάζεται να ανησυχείτε σχετικά με τη ρύθμιση της Meta τάξη. 479 00:25:16,760 --> 00:25:21,490 >> Έτσι, όταν αυτό γίνεται πραγματικότητα καταρτίζονται τα κάτω σε μια πρόταση SQL, 480 00:25:21,490 --> 00:25:24,875 μοιάζει με αυτό το δυσάρεστο θέμα προς τα κάτω Εδώ, "Δημιουργία πίνακα φοιτητική τους ταυτότητα ακέραιο, 481 00:25:24,875 --> 00:25:26,020 " οτιδήποτε. 482 00:25:26,020 --> 00:25:30,002 >> Και, νομίζω ότι είναι μικρότερη, Αυτό το ερώτημα SQL εδώ, 483 00:25:30,002 --> 00:25:32,960 αλλά αν κοιτάξετε αυτή την κατηγορία εδώ μπορείτε να δείτε ακριβώς τι συμβαίνει. 484 00:25:32,960 --> 00:25:36,116 Μπορείτε να δείτε τι είδους πεδία υπάρχουν, από όπου και αν ονομάζονται, 485 00:25:36,116 --> 00:25:38,115 και έτσι, νομίζω ότι κοιτάζοντας αυτόν τον κώδικα Python 486 00:25:38,115 --> 00:25:43,340 είναι πολύ πιο ευανάγνωστο από προσπαθώντας να γράψω αυτό το ερώτημα SQL. 487 00:25:43,340 --> 00:25:45,990 >> Έτσι, προκειμένου να πραγματικά χρησιμοποιήσετε τη βάση δεδομένων, 488 00:25:45,990 --> 00:25:48,470 θα πρέπει να συνδεθεί με αυτό, κατά την Python. 489 00:25:48,470 --> 00:25:52,770 Έτσι, εγώ συνήθως γράφουν μια λειτουργία που ονομάζεται initialize_db που κάνει δύο πράγματα. 490 00:25:52,770 --> 00:25:54,880 Παίρνει στη βάση δεδομένων αντικείμενο db και 491 00:25:54,880 --> 00:25:58,360 συνδέεται με αυτό, η οποία ανοίγει μόνο μέχρι τμήμα στη βάση δεδομένων. 492 00:25:58,360 --> 00:26:00,860 Αν είστε απλά τρέχει και αν δικτυακός τόπος στον τοπικό υπολογιστή σας, 493 00:26:00,860 --> 00:26:04,320 Δεν είναι ένα σούπερ μεγάλη υπόθεση να ανησυχείτε σχετικά με τη σύνδεση και αποσύνδεση, 494 00:26:04,320 --> 00:26:06,885 αλλά αν τρέχετε σε έναν ιστοχώρο, μπορείτε 495 00:26:06,885 --> 00:26:10,010 θέλετε να βεβαιωθείτε ότι, κάθε φορά που ένας χρήστης συνδέεται με αυτό, όταν κλείνουν έξω 496 00:26:10,010 --> 00:26:12,270 η ιστοσελίδα, που αποσυνδέστε έτσι ώστε να δεν έχουν μια δέσμη των ανθρώπων που συνδέονται 497 00:26:12,270 --> 00:26:14,480 στη βάση δεδομένων σας όλα με τη μία. 498 00:26:14,480 --> 00:26:16,370 >> Και τότε, όταν συνδεθεί με τη βάση δεδομένων, 499 00:26:16,370 --> 00:26:20,832 θέλετε να καλέσετε db.create_tables, και απαριθμούν τα μοντέλα για ό, τι θέλετε 500 00:26:20,832 --> 00:26:21,540 για τη δημιουργία πινάκων. 501 00:26:21,540 --> 00:26:23,950 Μέχρι εδώ, θέλω μόνο να δημιουργήσετε για αυτό το φοιτητή. 502 00:26:23,950 --> 00:26:28,070 Και τότε, αυτό που είναι σημαντικό, είναι να καθορίζονται ασφαλείς = True περισσότερες το χρόνο. 503 00:26:28,070 --> 00:26:30,380 Λοιπόν, τι αυτή η δήλωση θα το κάνουμε, είναι ότι 504 00:26:30,380 --> 00:26:33,580 δημιουργεί πίνακες για το φοιτητής μοντέλο, αλλά μόνο 505 00:26:33,580 --> 00:26:36,109 Αν αυτός ο πίνακας δεν έχει έχουν δημιουργηθεί ήδη. 506 00:26:36,109 --> 00:26:37,400 Γι 'αυτό οι ασφαλείς διευκρινίζει. 507 00:26:37,400 --> 00:26:39,150 Έτσι δεν θα αντικαταστήσει υπάρχον τραπέζι σας, 508 00:26:39,150 --> 00:26:41,525 θα δημιουργήσει μόνο ένα νέο πίνακα, εφόσον δεν υπάρχει κανείς εκεί. 509 00:26:41,525 --> 00:26:45,090 Έτσι, μπορείτε να δημιουργήσετε μόνο Οι πίνακες φορά χρησιμοποιώντας SQL. 510 00:26:45,090 --> 00:26:49,410 Και τότε έχουν αυτή τη συνεδρίαση της βάσης δεδομένων εκεί, και στη συνέχεια να συνδεθεί με κάθε χρόνο, 511 00:26:49,410 --> 00:26:52,450 αλλά είναι συνήθως καλό μόνο για να βάλει στην παρούσα πρόσκληση create_tables, 512 00:26:52,450 --> 00:26:55,550 έτσι ώστε, αν ποτέ διαγράψετε σας βάση δεδομένων όταν τρέχετε ιστοσελίδα σας 513 00:26:55,550 --> 00:26:57,960 app και πάλι, θα αναδημιουργήσει. 514 00:26:57,960 --> 00:27:00,730 >> Έτσι, απλά βεβαιωθείτε ότι η ασφαλής ορίζεται να είναι αληθινό, 515 00:27:00,730 --> 00:27:03,580 ή θα βρείτε τα δεδομένα σας μόνο να πάρει κατατροπώθηκε κάθε φορά. 516 00:27:03,580 --> 00:27:06,380 Και στη συνέχεια, μπορείτε να καλέσετε μόνο initialize_db να καθιερώσει 517 00:27:06,380 --> 00:27:09,820 μια σύνδεση, και να δημιουργήσουν πίνακες εάν είναι απαραίτητο. 518 00:27:09,820 --> 00:27:13,150 >> Έτσι, το πιο κοινό πράγμα ότι θα θέλετε να το κάνετε, 519 00:27:13,150 --> 00:27:15,920 ή ένα από τα πιο κοινά πράγματα, είναι να τοποθετήσετε στην πραγματικότητα τα πράγματα 520 00:27:15,920 --> 00:27:17,170 στη βάση δεδομένων σας. 521 00:27:17,170 --> 00:27:19,430 Και έτσι, αντί να γράψει ένα ένθετο ΣΕ 522 00:27:19,430 --> 00:27:21,990 δήλωση με το σύνολο των οι τιμές που ορίζονται, 523 00:27:21,990 --> 00:27:24,650 μπορείτε να καλέσετε στην πραγματικότητα συνάρτηση με την κατηγορία των φοιτητών. 524 00:27:24,650 --> 00:27:28,200 Έτσι, όταν δημιουργείτε μια κατηγορία ότι κληρονομεί από το μοντέλο, 525 00:27:28,200 --> 00:27:30,200 έχει δημιουργήσει αυτή η μέθοδος. 526 00:27:30,200 --> 00:27:33,870 >> Έτσι, κάνετε την κατηγορία name.create, και να καθορίσετε τις παραμέτρους 527 00:27:33,870 --> 00:27:35,260 ότι θέλετε να περάσει. 528 00:27:35,260 --> 00:27:39,200 Έτσι, αν θέλω να προσθέσω μερικές φοιτητές για παράδειγμα CS50 βαθμού βιβλίο μας, 529 00:27:39,200 --> 00:27:41,820 Θα βάλω σε David, ο οποίος έχει πολύ καλό βαθμό, έχει ένα 95. 530 00:27:41,820 --> 00:27:45,100 Και ο ίδιος, ο οποίος δεν κάνει τόσο καλά σε CS50, έχω μια 50. 531 00:27:45,100 --> 00:27:47,600 Και έτσι, το ωραίο πράγμα σχετικά με τι κάνει αυτή η λειτουργία να δημιουργήσει, 532 00:27:47,600 --> 00:27:53,040 είναι ότι επιστρέφει το παράδειγμα, ή ο σειρά, ώστε να δημιουργηθεί εντός του πίνακα, 533 00:27:53,040 --> 00:27:55,750 και έτσι στη συνέχεια, μπορείτε να αποθηκεύσετε ότι εντός ενός μεταβλητή, και την εργασία με αυτό αργότερα. 534 00:27:55,750 --> 00:27:58,830 Μπορείτε να αλλάξετε γύρω, η οποία Θα σας δείξω ένα παράδειγμα. 535 00:27:58,830 --> 00:28:03,050 >> Παρατηρήστε ότι δεν το έκανα Πρέπει να καθορίσετε το ID, 536 00:28:03,050 --> 00:28:09,340 διότι, δεδομένου ότι είναι η PrimaryKeyField, αυτόματα θα 537 00:28:09,340 --> 00:28:10,930 την αυξάνει, αν δεν το διευκρινίζει. 538 00:28:10,930 --> 00:28:12,250 Και, στην πραγματικότητα, τότε μάλλον δεν θα πρέπει να προσδιορίζει, 539 00:28:12,250 --> 00:28:14,810 επειδή ίσως κατά λάθος κοπανάω ταυτότητας κάποιου άλλου. 540 00:28:14,810 --> 00:28:16,830 Και θέλετε να κάνετε βεβαιωθείτε ότι είναι μοναδική. 541 00:28:16,830 --> 00:28:20,662 >> Έτσι, στην πραγματικότητα, η πιο κοινό πράγμα που θέλετε να κάνετε, 542 00:28:20,662 --> 00:28:22,620 είναι πιθανόν να επιλέξετε από της βάσης δεδομένων τη στιγμή που θα 543 00:28:22,620 --> 00:28:24,078 έχουν πολλές πληροφορίες εκεί. 544 00:28:24,078 --> 00:28:27,360 Και έτσι, αν θέλετε να πάρετε τα πάντα, έτσι ώστε το ισοδύναμο της επίλεκτης αστέρων 545 00:28:27,360 --> 00:28:30,940 από τη δήλωση φοιτητές, θα ήταν απλά student.select. 546 00:28:30,940 --> 00:28:34,380 Και αυτό θα σας δώσει πίσω μια σειρά με όλα του φοιτητή αντικειμένων σε αυτό 547 00:28:34,380 --> 00:28:35,770 ότι θα επαναλάβει επί θέλετε. 548 00:28:35,770 --> 00:28:37,019 Μπορείτε να πάρετε τα πράγματα έξω από αυτό. 549 00:28:37,019 --> 00:28:39,310 Και τις περισσότερες φορές, θα Δεν θέλουν απλά να κάνουν επιλέξτε, 550 00:28:39,310 --> 00:28:40,935 Αν πραγματικά θέλετε να καθορίσετε κάτι. 551 00:28:40,935 --> 00:28:44,580 Και ναι, μπορείτε αλυσίδα μαζί οι κλήσεις λειτουργία, 552 00:28:44,580 --> 00:28:48,830 όπως το πώς θα κάνατε αλυσίδα μαζί οι δηλώσεις SQL. 553 00:28:48,830 --> 00:28:53,002 Έτσι, μπορείτε να κάνετε student.select (). Όπου στο παράδειγμα αυτό. 554 00:28:53,002 --> 00:28:54,710 Και στη συνέχεια, μπορείτε να προσδιορίζει τους όρους, 555 00:28:54,710 --> 00:28:57,880 απλά χρησιμοποιώντας κανονικό Python Booleans να ελέγξει τα πράγματα. 556 00:28:57,880 --> 00:29:02,110 >> Έτσι, σε αυτή την περίπτωση, θέλετε να περιορίσει τι είστε επιλέγοντας να, 557 00:29:02,110 --> 00:29:06,790 όπου student.grade είναι ίσο με το 50, και student.name είναι ίσο με Ezra, 558 00:29:06,790 --> 00:29:09,130 έτσι ώστε θα μου πάρει λίγο έξω από αυτό. 559 00:29:09,130 --> 00:29:11,340 Και παρατηρήσετε, ένα πραγματικά λεπτή πράγμα εδώ είναι 560 00:29:11,340 --> 00:29:15,570 ότι, αν θέλετε να ορίσετε ένα και / ή ένα ή και / ή, 561 00:29:15,570 --> 00:29:19,840 στην Python, θα χρησιμοποιείτε συνήθως, Νομίζω ότι η λέξη "και" στην πραγματικότητα, 562 00:29:19,840 --> 00:29:23,351 αλλά εδώ μπορείτε να χρησιμοποιήσετε το ενιαίο σύμβολο, το οποίο είναι συνήθως ένα δυαδικός τελεστής, 563 00:29:23,351 --> 00:29:25,600 αλλά σε αυτή την ειδική περίπτωση, ακριβώς ο τρόπος που το κάνει PeeWee, 564 00:29:25,600 --> 00:29:27,660 μπορείτε να χρησιμοποιήσετε το ενιαίο συμπλεκτικό να καθορίσετε "και". 565 00:29:27,660 --> 00:29:29,451 Αυτό είναι κάτι που Έχω μπερδεύονται πολύ, 566 00:29:29,451 --> 00:29:32,530 αλλά δεν καταλήξει ότι ένα μεγάλο μέρος στην πράξη. 567 00:29:32,530 --> 00:29:36,350 >> Και στη συνέχεια, αφού έχετε όλα οι μαθητές έξω από τη βάση δεδομένων, 568 00:29:36,350 --> 00:29:39,420 αφού έχετε κάνει είστε επιλέξτε και η φθορά σας ή οτιδήποτε άλλο, 569 00:29:39,420 --> 00:29:42,334 μπορείτε να χρησιμοποιήσετε ένα βρόχο foreach, ακριβώς όπως το κανονικό σε Python, 570 00:29:42,334 --> 00:29:44,500 με οποιοδήποτε είδος του iterator ή με οποιοδήποτε είδος της συστοιχίας. 571 00:29:44,500 --> 00:29:46,333 Έτσι, μπορείτε να κάνετε, για s σε student.select (). whe 572 00:29:46,333 --> 00:29:52,930 εκ νέου (Student.grade <75), και έτσι αυτό θα επαναλάβετε σε κάθε μαθητή στον πίνακα 573 00:29:52,930 --> 00:29:56,260 των οποίων ο βαθμός είναι μικρότερος από 75, η οποία στην περίπτωση αυτή, εξακολουθεί να είναι ακριβώς εγώ. 574 00:29:56,260 --> 00:29:59,218 Και τότε θα μπορούσαμε να κάνουμε κάτι μέσα ότι βρόχου, όπως μου στείλετε ένα e-mail 575 00:29:59,218 --> 00:30:01,680 και μένα να πω πραγματικά μετατρέψει σε Σετ πρόβλημά μου. 576 00:30:01,680 --> 00:30:04,550 >> Έτσι, ένα άλλο πράγμα που μπορείτε να κάνουμε, είναι ότι είναι πολύ εύκολο 577 00:30:04,550 --> 00:30:06,460 για την ενημέρωση σειρές μέσα στον πίνακα. 578 00:30:06,460 --> 00:30:08,720 Έτσι, θυμηθείτε ξανά εδώ, σας όταν εισάγεται, 579 00:30:08,720 --> 00:30:11,440 Πήρα την τιμή που ήταν επιστρέφονται από student.create, 580 00:30:11,440 --> 00:30:14,920 και μου αντιστοιχεί στο όνομα που ονομάζεται Ezra. 581 00:30:14,920 --> 00:30:18,995 Και έτσι τώρα, μπορείτε να αλλάξετε το τιμές εντός αυτής παράδειγμα, 582 00:30:18,995 --> 00:30:20,870 όπως ακριβώς θα κάνατε με ένα κανονική τάξη στην Python. 583 00:30:20,870 --> 00:30:25,060 >> Έτσι, μπορείτε να ορίσετε ezra.grade = 95 και ότι θα ενημερώσει το τοπικό αντίγραφο, 584 00:30:25,060 --> 00:30:28,380 αλλά εάν θέλετε πραγματικά να δεσμευτούν ότι η αλλαγή στη βάση δεδομένων, 585 00:30:28,380 --> 00:30:31,410 θα πρέπει να καλέσετε ezra.save, έτσι ονομάζεται η μέθοδος .save 586 00:30:31,410 --> 00:30:32,650 στο παράδειγμα. 587 00:30:32,650 --> 00:30:38,085 >> Και έτσι τώρα έχω αλλάξει με επιτυχία δική μου τάξη εντός της βάσης δεδομένων. 588 00:30:38,085 --> 00:30:41,210 Έτσι, τότε ας πούμε ότι έχω πιαστεί αλλάζοντας τάξη μου μέσα στη βάση δεδομένων. 589 00:30:41,210 --> 00:30:44,126 Ο καθηγητής Malan πρόκειται πιθανώς να θέλουν να με διαγράψετε από την τάξη, 590 00:30:44,126 --> 00:30:48,630 και έτσι μπορείτε να καλέσετε το .Διαγράφεται μέθοδο χάρη ακριβώς σε αυτό το πράγμα. 591 00:30:48,630 --> 00:30:51,674 >> Έτσι, αν ήθελε να πάει πίσω σε αυτό το βρόχο εδώ, 592 00:30:51,674 --> 00:30:53,465 και πράγματι, αντί της αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου όλων 593 00:30:53,465 --> 00:30:56,577 των φοιτητών βαθμού των οποίων είναι λιγότερο από 75, θα ήθελε να τα διαγράψετε, 594 00:30:56,577 --> 00:30:58,660 εντός αυτού του βρόγχου θα μπορούσατε καλέστε s.delete παράδειγμα. 595 00:30:58,660 --> 00:31:04,180 596 00:31:04,180 --> 00:31:07,780 Και το τελευταίο πράγμα που θέλετε να κάνετε, Είναι κάθε φορά που θα δημιουργήσετε μια σύνδεση, 597 00:31:07,780 --> 00:31:10,350 και τελειώσατε με την εργασία σας, θέλετε να καλέσετε db.close, 598 00:31:10,350 --> 00:31:13,190 όπου db είναι ότι η βάση δεδομένων αντιρρήσεις που είχαμε πριν. 599 00:31:13,190 --> 00:31:18,290 Και θέλετε να είστε σίγουροι οτι ό, τι παίρνει κλειστά από. 600 00:31:18,290 --> 00:31:18,790 >> Δροσερός. 601 00:31:18,790 --> 00:31:22,410 Μέχρι τώρα, έχω ένα παράδειγμα εφαρμογής. 602 00:31:22,410 --> 00:31:26,880 Έχω το είδος του προ-κάνει τα πάντα απλά έτσι ώστε δεν θα υπάρχει ζωντανή κωδικοποίηση 603 00:31:26,880 --> 00:31:30,220 λάθη, αλλά μπορούμε να περπατήσουμε μέσα και να δούμε πώς θα θέσει Φιάλη 604 00:31:30,220 --> 00:31:33,685 και peewee μαζί, και να κάνει ένα απλό app. 605 00:31:33,685 --> 00:31:38,680 Καλώ το CS50 αλαζονικό, και είναι το είδος της μια απλή πλατφόρμα blog. 606 00:31:38,680 --> 00:31:41,150 >> Έτσι, πρώτα, εγώ θα το τρέξει και δείχνουν τι μοιάζει, 607 00:31:41,150 --> 00:31:42,890 και στη συνέχεια μπορούμε να δούμε περισσότερο σε κώδικα. 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 Εντάξει, οπότε ας τρέξει αυτό. 610 00:32:02,830 --> 00:32:14,040 611 00:32:14,040 --> 00:32:17,250 Cool, θα κάνω αυτό λίγο μικρότερο. 612 00:32:17,250 --> 00:32:20,000 Δεν είναι πολύ όμορφη, μόνο και μόνο επειδή Δεν είχα κάνει πολλά CSS, 613 00:32:20,000 --> 00:32:23,255 αλλά αυτό που κάνει είναι, έχει Αυτή η βάση δεδομένων των blog θέσεις, 614 00:32:23,255 --> 00:32:25,630 και περνά μέσα από το σύνολο των τους, και θα τα εμφανίσει 615 00:32:25,630 --> 00:32:28,170 στη σελίδα για την πιο πρόσφατη. 616 00:32:28,170 --> 00:32:30,920 Και έτσι αυτά είναι μερικά μόνο από τα Μηνύματα ότι είχα αποθηκεύσει στη βάση δεδομένων. 617 00:32:30,920 --> 00:32:35,680 >> Έτσι, αν θέλουμε να δημιουργήσουμε μια νέα μετά, μπορούμε να πάμε για να προσθέσετε μια νέα θέση, 618 00:32:35,680 --> 00:32:42,720 και μπορούμε να εισάγετε τον τίτλο του μετά, οπότε κάτι τέτοιο, σεμινάριο CS50. 619 00:32:42,720 --> 00:32:45,360 620 00:32:45,360 --> 00:32:46,735 Πω πω, πραγματικά απολαμβάνουν το σεμινάριο. 621 00:32:46,735 --> 00:32:51,070 622 00:32:51,070 --> 00:32:52,270 >> Δροσερός. 623 00:32:52,270 --> 00:32:56,060 Στη συνέχεια πατάτε μετά, και θα μεταφερθείτε πίσω στην αρχική σελίδα, 624 00:32:56,060 --> 00:33:00,039 και, στη συνέχεια, θα δείτε ότι τελευταίας δημοσίευσης προστέθηκε. 625 00:33:00,039 --> 00:33:01,580 Και εξακολουθούμε να έχουμε όλα αυτά εκεί. 626 00:33:01,580 --> 00:33:08,080 Έτσι τώρα, ας βήμα μέσα από όλα τα κώδικα και να δούμε πώς αυτό υλοποιείται. 627 00:33:08,080 --> 00:33:11,995 >> Έτσι, νομίζω ότι το πρώτο πράγμα που ας ρίξτε μια ματιά, είναι στην πραγματικότητα τα μοντέλα. 628 00:33:11,995 --> 00:33:14,120 Πολλές φορές, όταν σχεδιάζετε κάτι, 629 00:33:14,120 --> 00:33:17,036 θέλετε να σκεφτείτε πρώτα πως θα πάμε να την αναπαράσταση των δεδομένων σας, 630 00:33:17,036 --> 00:33:22,915 και στη συνέχεια να σχεδιάσουν τα πράγματα γύρω από αυτό, έτσι ώστε τα πάντα νόημα. 631 00:33:22,915 --> 00:33:25,290 Και αυτό είναι πραγματικά το πώς θα έκανε όταν έφτιαχνα αυτό, 632 00:33:25,290 --> 00:33:28,030 Κάθισα και σκέφτηκα, τι θέλω σε μια θέση. 633 00:33:28,030 --> 00:33:32,130 >> Έτσι, εδώ, έχουμε την ίδια δομή ότι ήμουν αναφερθεί νωρίτερα, 634 00:33:32,130 --> 00:33:33,755 όπου κάνουμε db = Sqldatabase («posts.db»). 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 Στην πραγματικότητα, τότε μάλλον δεν θέλουν στο σκληρό κώδικα σε βάσεις δεδομένων όνομά σας. 637 00:33:40,980 --> 00:33:43,730 Αυτό πρέπει πιθανώς να είναι μία παράμετρος ότι είναι αποθηκευμένο κάπου, ίσως 638 00:33:43,730 --> 00:33:45,940 σε ένα αρχείο ρυθμίσεων, αλλά σε ένα μικρό παράδειγμα σαν αυτό, 639 00:33:45,940 --> 00:33:48,310 είναι εντάξει για να σκληρά κωδικό αυτό σε. 640 00:33:48,310 --> 00:33:53,510 >> Μέχρι τώρα, έχουμε αυτή την κατηγορία Post, η οποία κληρονομεί από το βασικό μοντέλο. 641 00:33:53,510 --> 00:33:56,930 Και έχει, και πάλι, το ID = PrimaryKeyField. 642 00:33:56,930 --> 00:34:02,250 Στην πραγματικότητα, αν δεν διευκρινίζουν, αν μπορώ πραγματικά ξεφορτώθηκε αυτό, 643 00:34:02,250 --> 00:34:07,152 τότε peewee θα αναλάβει τη φροντίδα του δημιουργώντας αυτόματα αυτό το πεδίο ID, 644 00:34:07,152 --> 00:34:09,360 και αυτόματα θα κάνουν μια PrimaryKey, η οποία 645 00:34:09,360 --> 00:34:12,485 Νομίζω ότι είναι πολύ ωραίο, γιατί συνήθως, αυτό είναι κάτι που θέλετε να έχετε, 646 00:34:12,485 --> 00:34:16,239 αλλά μου αρέσει να το θέσω σε ειδικά, ακριβώς γι 'αυτό να θυμάστε ότι είναι εκεί. 647 00:34:16,239 --> 00:34:19,480 Αλλά αν δεν διευκρινίζεται ότι, ότι θα υπάρξουν αυτόματα. 648 00:34:19,480 --> 00:34:22,198 >> Έτσι λοιπόν, έχω μια ημερομηνία η οποία είναι ένα DateTimeField, και όλα 649 00:34:22,198 --> 00:34:24,864 Αυτά τα διαφορετικά πεδία, αν δείτε το PeeWee τεκμηρίωση, 650 00:34:24,864 --> 00:34:28,920 αυτό θα σας δώσει μια λίστα των διαφόρων τύπους των πεδίων που μπορείτε να χρησιμοποιήσετε. 651 00:34:28,920 --> 00:34:34,440 Για το μεγαλύτερο μέρος, είναι ανάλογη σε ό, τι θα βλέπατε στον SQL. 652 00:34:34,440 --> 00:34:37,699 Έτσι, υπάρχει μια CharField, ένα VarCharFields, textfields, 653 00:34:37,699 --> 00:34:40,550 η οποία είναι για πολύ καιρό κείμενα, όπως ένα blog post 654 00:34:40,550 --> 00:34:44,460 δυνητικά, DateTimeFields, DoubleFields, FloatFields, 655 00:34:44,460 --> 00:34:46,100 όλα τα πράγματα όπως αυτό. 656 00:34:46,100 --> 00:34:51,570 >> Και μπορείτε να περάσετε σε άλλα επιχειρήματα σε αυτό, το οποίο δεν είχα καθορίσετε εδώ. 657 00:34:51,570 --> 00:34:55,719 Ας πούμε, για παράδειγμα, που δεν θέλουν να επιτρέπουν σε δύο θέσεις που έχουν τον ίδιο τίτλο, 658 00:34:55,719 --> 00:34:59,672 μπορείτε να ορίσετε κάτι σαν μοναδικό = True, 659 00:34:59,672 --> 00:35:02,880 και αυτό είναι μόνο ένα επιπλέον παράμετρο για την Το πεδίο που, όταν αυτό συγκεντρώνει τα κάτω 660 00:35:02,880 --> 00:35:06,865 στην SQL, θα καθορίσει ότι πρέπει να είναι μοναδικό. 661 00:35:06,865 --> 00:35:09,740 Μπορείτε επίσης να καθορίσετε κάτι σαν Δεν άκυρη και όλα τα άλλα πράγματα 662 00:35:09,740 --> 00:35:11,750 κάνετε συνήθως στον SQL. 663 00:35:11,750 --> 00:35:16,020 Έτσι, αυτό είναι ένα πολύ απλό μοντέλο που έχει την ημερομηνία. 664 00:35:16,020 --> 00:35:19,460 Παρατηρήστε εδώ, εντός του DateTimeField, Έχω καθορίσει ποια είναι η προεπιλογή είναι. 665 00:35:19,460 --> 00:35:22,560 Μου καθορίζεται ως datetime.datetime.now, 666 00:35:22,560 --> 00:35:24,920 λόγω του τρόπου που αυτό παίρνει αξιολογούνται, 667 00:35:24,920 --> 00:35:28,750 αξιολογεί πραγματικότητα η datetime.now όταν 668 00:35:28,750 --> 00:35:32,110 παίρνει εισαχθεί στη βάση δεδομένων. 669 00:35:32,110 --> 00:35:34,760 >> Νομίζω ότι, θα είχα στο διπλό έλεγχο αυτό, 670 00:35:34,760 --> 00:35:38,222 αλλά αν έκανε κάτι τέτοιο, τότε θα αξιολογήσει πράγματι ότι από τη στιγμή, 671 00:35:38,222 --> 00:35:40,180 και στη συνέχεια το DateTime θα είναι πάντα η ίδια. 672 00:35:40,180 --> 00:35:44,240 Έτσι, απλά αν κάνεις κάτι με datetimes, ο διπλός έλεγχος 673 00:35:44,240 --> 00:35:47,080 ότι είναι κατά την αξιολόγηση παίρνει πραγματικά εισαχθεί, ή αλλιώς 674 00:35:47,080 --> 00:35:48,780 μπορεί να σας προκαλέσει σύγχυση. 675 00:35:48,780 --> 00:35:51,221 >> Ο τίτλος είναι απλά μια CharField, η οποία υπάρχει 676 00:35:51,221 --> 00:35:53,970 είναι πιο επιχειρήματα μπορείτε να περάσετε κατά τον προσδιορισμό ακριβώς πόσο καιρό θα 677 00:35:53,970 --> 00:35:56,170 θέλουν να είναι, αλλά εδώ, δεν είχε τόση σημασία. 678 00:35:56,170 --> 00:35:58,687 Και Κείμενο πρόκειται να είναι το κείμενο του συνόλου των υστέρων, 679 00:35:58,687 --> 00:36:01,020 και ότι πρόκειται να είναι μια TextField μόνο και μόνο επειδή θέλετε 680 00:36:01,020 --> 00:36:03,370 ώστε να μπορέσει να είναι μια αρκετά μακρά σειρά. 681 00:36:03,370 --> 00:36:05,970 >> Τότε έχουμε αυτό το Meta Αυτό ακριβώς υποκατηγορία 682 00:36:05,970 --> 00:36:11,250 διευκρινίζει ότι θέλουμε τη βάση δεδομένων όπου αυτό είναι πραγματικά το άνοιγμα σε 683 00:36:11,250 --> 00:36:14,267 να είναι το αντικείμενο db που έχουμε εδώ. 684 00:36:14,267 --> 00:36:16,350 Και τελευταίο πράγμα που έχουμε εδώ, είναι ακριβώς αυτή η λειτουργία 685 00:36:16,350 --> 00:36:18,120 ότι θα πάμε να χρησιμοποιούν από την κύρια app μας 686 00:36:18,120 --> 00:36:23,970 να προετοιμάσει τη βάση δεδομένων για να συνδεθείτε και, στη συνέχεια για να δημιουργήσει τον πίνακα Post. 687 00:36:23,970 --> 00:36:26,880 >> Τώρα, ας ρίξουμε μια ματιά στο κεντρικό app ίδια. 688 00:36:26,880 --> 00:36:30,800 Έτσι, αυτό είναι ένα αρκετά λίγο περισσότερο από ό, τι εκείνες 689 00:36:30,800 --> 00:36:34,840 ότι έχουμε δει στο παρελθόν, αλλά ελπίζουμε ότι δεν είναι πολύ κακό. 690 00:36:34,840 --> 00:36:37,140 Έτσι, επιτρέψτε μου να παρατείνει αυτό. 691 00:36:37,140 --> 00:36:38,370 Εντάξει. 692 00:36:38,370 --> 00:36:42,070 >> Έτσι, προσέξτε και η κορυφή που εισάγονται ένα σωρό άλλα πράγματα 693 00:36:42,070 --> 00:36:44,129 από φιάλη που δεν έχουμε πραγματικά ξαναδεί. 694 00:36:44,129 --> 00:36:46,670 Και ελπίζουμε, μπορούμε να πάμε μέσα κάθε ένα από αυτά ένα προς ένα 695 00:36:46,670 --> 00:36:49,420 και να μιλήσουμε λίγο περισσότερο για τους, κατατάσσονται σύμφωνα με το παράδειγμα. 696 00:36:49,420 --> 00:36:51,380 Έτσι, έχουμε τη φιάλη, και η render_template, 697 00:36:51,380 --> 00:36:54,370 την οποία έχουμε δει στο παρελθόν, το αίτημα αυτό αντικείμενο, 698 00:36:54,370 --> 00:37:00,400 η οποία θα καταλήξει, όταν εξετάζουμε το πώς η μορφή που έδειχνε πραγματικά 699 00:37:00,400 --> 00:37:01,170 εργοστάσιο. 700 00:37:01,170 --> 00:37:04,850 Redirect, η οποία σας επιτρέπει να ανακατευθύνει πίσω από τη Δημιουργία Νέου Δημοσίευση 701 00:37:04,850 --> 00:37:11,710 πίσω στην αρχική ιστοσελίδα, και στη συνέχεια URL, το οποίο είναι κάτι που σας επιτρέπει 702 00:37:11,710 --> 00:37:15,550 καταλάβω σε ποιο σημείο του ιστοσελίδα μια συγκεκριμένη σελίδα είναι. 703 00:37:15,550 --> 00:37:17,810 >> Έτσι, λοιπόν, η επόμενη πράγμα που κάνω, είναι ότι κατά την εισαγωγή 704 00:37:17,810 --> 00:37:21,550 όλες τις πληροφορίες από τα μοντέλα αρχεία που ήμασταν απλά κοιτάζοντας. 705 00:37:21,550 --> 00:37:23,140 Και, ναι. 706 00:37:23,140 --> 00:37:28,720 >> Έτσι, κάτι άλλο νέο που έρχεται όταν έχουμε να κάνουμε με, 707 00:37:28,720 --> 00:37:31,850 ειδικά βάσεις δεδομένων, είναι ότι μπορείτε να καθορίσετε 708 00:37:31,850 --> 00:37:35,110 μια συνάρτηση που παίρνει κληθεί πριν κάθε αίτηση, καθώς και τη λειτουργία που παίρνει 709 00:37:35,110 --> 00:37:39,690 που ονομάζεται μετά από κάθε αίτηση, χρησιμοποιώντας αυτό Την αίτηση της λειτουργίας διακοσμητής app.before. 710 00:37:39,690 --> 00:37:42,324 >> Και έτσι αυτό θα πάρει εκτελεστεί όπου αυτή η λειτουργία είναι. 711 00:37:42,324 --> 00:37:44,240 Αυτό δεν πρέπει να είναι που ονομάζεται πριν από το αίτημα, 712 00:37:44,240 --> 00:37:46,281 αλλά συνήθως αυτό είναι κάτι λογικό να το ονομάσουμε. 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 Μπορείτε να καθορίσετε ανεξάρτητα από τη λειτουργία θέλετε να πάρετε κάλεσε εκεί, 715 00:37:51,650 --> 00:37:56,330 γι 'αυτό που καθορίζεται initialize_db λειτουργία που είχαμε πίσω στα μοντέλα 716 00:37:56,330 --> 00:38:02,390 αρχείο, έτσι ώστε πριν από κάθε αίτημα, θέλετε να συνδεθείτε με τη βάση δεδομένων. 717 00:38:02,390 --> 00:38:04,560 >> Υπάρχουν δύο διαφορετικές τρόποι που μπορείτε να το κάνετε αυτό. 718 00:38:04,560 --> 00:38:10,830 Μπορείτε να κάνετεapp., Θ Πιστεύω ότι είναι after_request. 719 00:38:10,830 --> 00:38:13,800 Και η διαφορά μεταξύ after_request και teardown_request, 720 00:38:13,800 --> 00:38:17,590 είναι ότι after_request θα συμβεί μόνο αν η αίτηση στην πραγματικότητα ήταν έγκυρη. 721 00:38:17,590 --> 00:38:20,440 Και έτσι, μόνο εάν η αίτημα ήταν επιτυχές, 722 00:38:20,440 --> 00:38:22,490 αν τίποτα δεν πήγε στραβά, αλλά teardown_request 723 00:38:22,490 --> 00:38:26,300 συμβαίνει στην περίπτωση επιτυχούς αίτηση, ή στην περίπτωση ενός σφάλματος. 724 00:38:26,300 --> 00:38:28,252 >> Έτσι, συνήθως, θέλετε να χρησιμοποιούν teardown_request, 725 00:38:28,252 --> 00:38:30,460 εκτός αν θέλετε να κάνετε κάτι ιδιαίτερα διαφορετικό 726 00:38:30,460 --> 00:38:31,470 στην περίπτωση ενός σφάλματος. 727 00:38:31,470 --> 00:38:35,122 Αλλά ακριβώς για το κλείσιμο της βάσης δεδομένων, αν πετύχει ή αποτύχει, 728 00:38:35,122 --> 00:38:37,080 κάνουμε θέλετε να αποσυνδεθείτε από τη βάση δεδομένων. 729 00:38:37,080 --> 00:38:41,240 Έτσι λέγεται, db.close σχετικά με το αντικείμενο db. 730 00:38:41,240 --> 00:38:43,740 >> Παρατηρήστε ότι το teardown_request παίρνει σε μια εξαίρεση. 731 00:38:43,740 --> 00:38:46,781 Έτσι, μπορείτε να ελέγξετε αν υπήρχε πράγματι Παρουσιάστηκε σφάλμα όταν κλείνουν, 732 00:38:46,781 --> 00:38:49,390 αλλά εδώ, ευτυχώς, υπάρχει δεν είναι ένα σωρό λάθη, 733 00:38:49,390 --> 00:38:52,720 έτσι είμαστε ακριβώς το είδος του αγνοείται το γεγονός ότι. 734 00:38:52,720 --> 00:38:55,990 >> Εντάξει, και το υπόλοιπο που δεν είναι πάρα πολύ κακό. 735 00:38:55,990 --> 00:39:02,240 Έτσι, όταν πάμε στην αρχική σελίδα, που κατέστησε αυτό το Πρότυπο home.html 736 00:39:02,240 --> 00:39:03,490 ότι θα ανοίξει. 737 00:39:03,490 --> 00:39:06,240 Η μπάλα είναι στη θέση τους ίσο με, και ό, τι αυτό 738 00:39:06,240 --> 00:39:10,260 δεν είναι, να θυμάστε έχουμε αυτήν την ανάρτηση μοντέλο, έτσι ώστε να επιλέξετε όλες τις θέσεις, 739 00:39:10,260 --> 00:39:13,890 και, στη συνέχεια, ένα άλλο πράγμα που μπορείτε να κάνετε, μπορείτε να καθορίσετε την πρόταση WHERE, 740 00:39:13,890 --> 00:39:16,910 μπορείτε να καθορίσετε ένα παραγγείλετε, και έτσι παίρνουμε 741 00:39:16,910 --> 00:39:18,820 όλες οι θέσεις που να πάρει επιλεγεί, στη συνέχεια, 742 00:39:18,820 --> 00:39:22,590 μπορούμε να τα παραγγείλετε από το post.date.descending. 743 00:39:22,590 --> 00:39:25,030 Και αυτό θα προσδιορίσει, όταν που πραγματικά βγαίνουν, 744 00:39:25,030 --> 00:39:29,250 η πλέον πρόσφατη θα είναι το πρώτο κιόλας ένα. 745 00:39:29,250 --> 00:39:31,420 >> Και στη συνέχεια, περνάμε ότι στο το πρότυπο home.html, 746 00:39:31,420 --> 00:39:34,240 οπότε ας πραγματικά να ανοίξει ότι Πρότυπο πραγματικά γρήγορα, 747 00:39:34,240 --> 00:39:36,760 και να ρίξετε μια ματιά στο πώς αυτό λειτουργεί. 748 00:39:36,760 --> 00:39:42,130 Και αυτό δεν είναι μεγάλη HTML, αλλά ελπίζουμε, μπορούμε να εστιάσουμε στην Python. 749 00:39:42,130 --> 00:39:46,960 >> Έτσι, υπάρχει μια σύνδεση με το Καταχώρησε Δημοσίευση, και έτσι αυτό καθορίζει τη διαδρομή 750 00:39:46,960 --> 00:39:51,580 Η φιάλη μέσα ότι εμείς προσδιορίζουν, το οποίο είναι ακριβώς εδώ. 751 00:39:51,580 --> 00:39:56,310 Αυτή είναι η νέα θέση διαδρομή, και ορίζουμε ότι μέχρι εδώ. 752 00:39:56,310 --> 00:40:00,450 Και έτσι αυτό είναι μια σύνδεση που στη συνέχεια θα πάει στην εν λόγω διαδρομή εντός του διακομιστή φιάλης. 753 00:40:00,450 --> 00:40:03,820 >> Το πιο ενδιαφέρον πράγμα Είναι αυτό για το βρόχο εδώ. 754 00:40:03,820 --> 00:40:07,685 Γι 'αυτό και διευκρινίζει ότι αυτή η μετά παράμετρος που 755 00:40:07,685 --> 00:40:09,560 πέρασε μέσα ο render_template λειτουργία, 756 00:40:09,560 --> 00:40:13,550 για κάθε θέση στη θέση του αντικείμενο που παίρνει πέρασε. 757 00:40:13,550 --> 00:40:16,600 Θέλουμε να εκτυπώσετε η θέση του τίτλου, σε Η1, 758 00:40:16,600 --> 00:40:21,930 και, στη συνέχεια, στη συνέχεια, θέλουμε να εκτυπώσετε η θέση κείμενο μέσα σε μια παράγραφο. 759 00:40:21,930 --> 00:40:25,710 >> Και εδώ, μπορούμε πραγματικά να καλέσετε μια συνάρτηση Python, 760 00:40:25,710 --> 00:40:35,130 έτσι ώστε να καλέσουμε strftime, ST-RF-χρόνου, και μπορείτε να περάσετε στην συμβολοσειρά μορφοποίησης 761 00:40:35,130 --> 00:40:37,064 που θέλετε να εκτυπώσετε τα δεδομένα που αναφέρονται στο. 762 00:40:37,064 --> 00:40:39,980 Γι 'αυτό είναι πολύ ωραίο ότι μπορείτε να πραγματικά να καλέσετε τη λειτουργία αυτή Python 763 00:40:39,980 --> 00:40:41,090 μέσα από εδώ. 764 00:40:41,090 --> 00:40:44,370 Δεν χρειάζεται να κάνετε για τη μορφοποίηση από την πλευρά του ελεγκτή, γιατί πραγματικά, 765 00:40:44,370 --> 00:40:47,770 μορφοποίηση της ημερομηνίας είναι κάτι που θέλετε να ασχοληθεί στην προβολή. 766 00:40:47,770 --> 00:40:51,480 >> Και όλα αυτά τοις εκατό τα πράγματα δεν είναι εξαιρετικά σημαντικό. 767 00:40:51,480 --> 00:40:55,270 Αν κοιτάξετε την τεκμηρίωση για τη λειτουργία strftime στην Python, 768 00:40:55,270 --> 00:40:57,040 καθορίζει όλα αυτά τα πράγματα, αλλά αυτό είναι 769 00:40:57,040 --> 00:40:59,190 πώς, όταν ψάχναμε στο εδώ στην αρχική σελίδα, 770 00:40:59,190 --> 00:41:04,440 να μορφοποιεί αυτό με ένα ωραίο ημερομηνία, και καθορίζει ΠΜ ή ΜΜ, 771 00:41:04,440 --> 00:41:09,410 αλλά κανονικά, εάν δεν έχει αυτό εδώ, 772 00:41:09,410 --> 00:41:14,024 θα έχετε πιθανώς κάποια σκουπίδια ημερομηνία που δεν φαίνονται πολύ καλά. 773 00:41:14,024 --> 00:41:15,940 Και τότε θα προσδιορίζει το post.text, και θα μπορούσα 774 00:41:15,940 --> 00:41:19,460 έχουν βάλει ένα ζευγάρι των γραμμή σπάει εδώ, απλά 775 00:41:19,460 --> 00:41:21,820 να βάλει κάποια διαστήματα μεταξύ κάθε θέσης. 776 00:41:21,820 --> 00:41:26,270 >> Έτσι, νομίζω ότι το πιο σημαντικό πράγμα σε αυτό το παράδειγμα, 777 00:41:26,270 --> 00:41:28,697 είναι ότι μπορείτε να χρησιμοποιήσετε αυτό το βρόχο for. 778 00:41:28,697 --> 00:41:30,780 Και αυτό είναι ανάλογο με πράγματα που μπορείτε να κάνετε στην PHP. 779 00:41:30,780 --> 00:41:32,905 Μπορείτε να επαναλάβει μέσω, ό, τι παίρνει πέρασε, 780 00:41:32,905 --> 00:41:36,719 και έτσι, αντί να χρειάζεται να κάνει αντιγραφή / επικόλληση, copy / paste όλη την HTML, 781 00:41:36,719 --> 00:41:40,010 απλά πρέπει να το γράψετε μια φορά, και στη συνέχεια μπορείτε να επαναλάβετε σε όλες τις θέσεις. 782 00:41:40,010 --> 00:41:41,510 >> Και αυτό είναι κάτι κοινό που θέλετε 783 00:41:41,510 --> 00:41:44,510 να κάνουν, όταν έχεις πολλά δεδομένα, είναι ότι για όλα τα στοιχεία σας, 784 00:41:44,510 --> 00:41:48,370 θέλετε να κάνετε ένα παρόμοιο πράγμα. 785 00:41:48,370 --> 00:41:51,690 Και τότε, απλά να θυμάστε, ότι όταν θέλετε να εκτυπώσετε κάτι ρητά 786 00:41:51,690 --> 00:41:54,780 στην HTML, μπορείτε να χρησιμοποιήσετε τα διπλά άγκιστρα εδώ, 787 00:41:54,780 --> 00:41:57,820 αλλά στη συνέχεια, όταν θέλετε να καθορίσετε κάποιες πληροφορίες σχετικά με μια κατάσταση, 788 00:41:57,820 --> 00:42:02,430 ή περίπου ένα για το βρόχο, μπορείτε χρησιμοποιήστε το στήριγμα τοις εκατό. 789 00:42:02,430 --> 00:42:08,730 >> Έτσι, πηγαίνοντας πίσω στην Python κώδικα, έτσι ώστε εξηγεί 790 00:42:08,730 --> 00:42:12,242 τι συμβαίνει στην κύρια διαδρομής, όταν πάμε εκεί, 791 00:42:12,242 --> 00:42:14,450 εμφανίζει ακριβώς όλα τα θέσεις, αλλά στη συνέχεια το ερώτημα 792 00:42:14,450 --> 00:42:17,440 είναι, πώς μπορούμε πραγματικά να πάρει Μηνύματα στη βάση δεδομένων, η οποία 793 00:42:17,440 --> 00:42:18,970 Είναι λίγο πιο ενδιαφέρον. 794 00:42:18,970 --> 00:42:23,960 >> Έτσι, όταν κάνετε κλικ στο New Δημοσίευση σύνδεσμο, που είδαμε εδώ, 795 00:42:23,960 --> 00:42:26,000 θα σας ανακατευθύνει σε αυτή τη μορφή. 796 00:42:26,000 --> 00:42:29,580 Και αυτό είναι μόνο μια απλή κλήση στην render_template λειτουργία, η οποία στη συνέχεια 797 00:42:29,580 --> 00:42:32,110 περνά σε νέα θέση σε μορφή HTML. 798 00:42:32,110 --> 00:42:36,212 Έτσι, ας ρίξουμε μια ματιά σε αυτό. 799 00:42:36,212 --> 00:42:37,420 Έτσι, αυτό είναι αρκετά απλή. 800 00:42:37,420 --> 00:42:45,110 Έχει μια απλή μορφή HTML, το οποίο Θα κοιτάξουμε λίγο εξοικειωμένοι, 801 00:42:45,110 --> 00:42:47,380 με βάση τα έντυπα στο CS50 Οικονομικών. 802 00:42:47,380 --> 00:42:49,940 Και έτσι, εμείς καθορίζουμε εδώ, τη δράση. 803 00:42:49,940 --> 00:42:52,435 Και εδώ, αν εργάζεστε με την PHP, κανονικά, 804 00:42:52,435 --> 00:42:55,930 θα ήταν κάτι σαν, create.PHP, αλλά εδώ 805 00:42:55,930 --> 00:42:59,960 ορίζουμε πραγματικά μια διαδρομή εντός του διακομιστή φιάλης. 806 00:42:59,960 --> 00:43:02,520 Και έτσι, αντιστοιχεί αυτή η διαδρομή να δημιουργήσει τη διαδρομή 807 00:43:02,520 --> 00:43:05,680 ότι έχουμε εδώ, η οποία θα πάμε σε σε ένα δευτερόλεπτο. 808 00:43:05,680 --> 00:43:07,630 >> Και έτσι, θα διευκρινίζουν ότι είναι μια μέθοδος των υστέρων, 809 00:43:07,630 --> 00:43:09,820 γιατί θέλουμε να στείλουμε Αυτή η μορφή των δεδομένων, και συνήθως 810 00:43:09,820 --> 00:43:12,945 όταν στέλνετε δεδομένα από μια φόρμα, ίσως να θέλετε να χρησιμοποιήσετε ένα αίτημα των υστέρων, 811 00:43:12,945 --> 00:43:15,760 ακριβώς έτσι ώστε να μην καταλήξετε με αυτό το μεγάλο, δυσκίνητο URL. 812 00:43:15,760 --> 00:43:18,970 Αλλά μπορείτε επίσης να χρησιμοποιήσετε μια αίτηση GET, και να περάσει με μεταβλητή δρομολόγησης, 813 00:43:18,970 --> 00:43:21,170 αλλά και για τις μορφές, είναι ωραίο σε θέση αίτημα εδώ. 814 00:43:21,170 --> 00:43:24,620 Και έτσι στη συνέχεια, θα ήθελα μόνο θα κάνουμε με την HTML και PHP, 815 00:43:24,620 --> 00:43:28,420 μπορείτε να καθορίσετε αυτές τις εισόδους κείμενο, και μπορείτε να καθορίσετε το όνομα τους, 816 00:43:28,420 --> 00:43:33,490 και αυτό είναι το όνομα που θα πάρει περάσει στο αντικείμενο αίτηση εντός της φιάλης. 817 00:43:33,490 --> 00:43:36,960 >> Και τότε έχουμε μια Υποβολή κουμπί που λέει Post. 818 00:43:36,960 --> 00:43:40,760 Και εδώ, Ταχυδρομείο είναι το όνομα του κουμπί, επειδή είναι ένα blog post, 819 00:43:40,760 --> 00:43:42,700 αλλά εδώ, η θέση είναι η μέθοδος αιτήματος. 820 00:43:42,700 --> 00:43:47,060 Αυτά λοιπόν είναι η ίδια λέξη αλλά στην πραγματικότητα άσχετη. 821 00:43:47,060 --> 00:43:48,460 Ναι 822 00:43:48,460 --> 00:43:54,800 >> Πηγαίνοντας πίσω στο κώδικα Python, όταν ζητήσαμε τη μέθοδο δημιουργήσει, 823 00:43:54,800 --> 00:43:57,702 Παρατηρήστε εδώ που μπορείτε να στην πραγματικότητα προσδιορίζει εντός της πορείας 824 00:43:57,702 --> 00:44:00,650 οι μέθοδοι αίτημα ότι θέλετε να αποδεχτείτε, 825 00:44:00,650 --> 00:44:04,770 και έτσι εδώ, μπορώ να προσδιορίσω ότι εγώ το μόνο που θέλουν να αποδεχθούν μια μέθοδο Post. 826 00:44:04,770 --> 00:44:09,800 Έτσι, αν μπορώ πραγματικά να προσπαθήσετε να επισκεφθείτε την σελίδα άμεσα, το οποίο χρησιμοποιεί μια αίτηση GET, 827 00:44:09,800 --> 00:44:11,700 θα μου πείτε «Μέθοδο δεν επιτρέπεται." 828 00:44:11,700 --> 00:44:15,840 >> Και έτσι, έχετε τις σελίδες, περίπου όπως Αυτή η σελίδα δημιουργήσετε, το οποίο είμαι μόνο 829 00:44:15,840 --> 00:44:20,192 πραγματικά χρησιμοποιώντας ως ένας τρόπος για τη μορφή που πρέπει να υποβάλλονται, 830 00:44:20,192 --> 00:44:22,900 μπορείτε να καθορίσετε ότι δεν το κάνετε οι άνθρωποι θέλουν να είναι σε θέση να πάτε εκεί 831 00:44:22,900 --> 00:44:25,650 απευθείας μέσω μιας αίτησης GET, ή αν δεν θέλετε, 832 00:44:25,650 --> 00:44:28,580 για κάποιο λόγο, ένα αίτημα Post, θα μπορούσατε απλά να καθορίσετε φτάσετε εδώ, 833 00:44:28,580 --> 00:44:32,720 αλλά σε αυτό το παράδειγμα, έχουμε απλά θέλουν η αίτηση POST για να πάει έξω. 834 00:44:32,720 --> 00:44:38,700 >> Έτσι, όταν create_post καλείται, όταν θα επισκεφθούμε ότι μέσω του αιτήματος Post, 835 00:44:38,700 --> 00:44:43,600 κάθε φορά που θα πάτε σε ένα συγκεκριμένο διαδρομή, υπάρχει το αίτημα αυτό αντικείμενο, 836 00:44:43,600 --> 00:44:46,640 και θα έπρεπε να εισάγει αιτήσεις στην κορυφή, 837 00:44:46,640 --> 00:44:49,640 αλλά υπάρχει το αίτημα αυτό αντικείμενο που παίρνει πέρασε, 838 00:44:49,640 --> 00:44:53,210 και μπορείτε να αποκτήσετε πρόσβαση στα δεδομένα της φόρμας, η οποία θα πάρει αυτόματα συμπληρώθηκε 839 00:44:53,210 --> 00:44:55,070 όταν στέλνετε ένα αίτημα από μια φόρμα. 840 00:44:55,070 --> 00:44:56,990 >> Και τότε, τι σκέφτομαι είναι πραγματικά δροσερό, είναι 841 00:44:56,990 --> 00:45:02,840 ότι το αντικείμενο της φόρμας για να περάσει σε, είναι απλώς ένα λεξικό Python που 842 00:45:02,840 --> 00:45:10,560 περιέχει, αν access-- τόσο εδώ, ας με σηκώσει το HTML δίπλα σε αυτό, απλά 843 00:45:10,560 --> 00:45:17,670 έτσι μπορείτε να έχετε ότι ως σημείο αναφοράς, ναι, έτσι 844 00:45:17,670 --> 00:45:21,060 τα ονόματα που προσδιορίζουν εδώ για διάφορους τομείς, έτσι 845 00:45:21,060 --> 00:45:23,900 ο τίτλος και το κείμενο, εμείς τότε απλά χρησιμοποιήστε αυτά εδώ 846 00:45:23,900 --> 00:45:27,110 ως δείκτες στα δεδομένα της φόρμας. 847 00:45:27,110 --> 00:45:28,950 Έτσι ώστε να είναι εξαιρετικά βολικό. 848 00:45:28,950 --> 00:45:33,320 >> Έτσι, τότε καλούμε post.create, η οποία θα δημιουργήσει και αυτόματα εισαγάγετε 849 00:45:33,320 --> 00:45:36,850 αυτή η νέα θέση αντικείμενο στη βάση δεδομένων. 850 00:45:36,850 --> 00:45:40,690 Και νομίζω ότι αυτό δημιουργεί λειτουργία εδώ είναι ένα πραγματικά δροσερό παράδειγμα του πώς 851 00:45:40,690 --> 00:45:44,900 ισχυρό φιάλη και σε συνεργασία με αυτό, γιατί αν έκαναν κάτι 852 00:45:44,900 --> 00:45:48,660 σε PHP, ίσως χρειαστεί να κάνουμε πολλά επικύρωσης, 853 00:45:48,660 --> 00:45:51,730 θα πρέπει στη συνέχεια να δημιουργήσετε μια σύνδεση βάσης δεδομένων, 854 00:45:51,730 --> 00:45:55,210 θα πρέπει στη συνέχεια να εκτελέσετε το ερώτημα SQL, 855 00:45:55,210 --> 00:45:59,550 αλλά εδώ έχουμε μόνο αυτό το ωραίο post.create, την οποία μπορούμε να τότε απλά 856 00:45:59,550 --> 00:46:01,520 να πάρετε τις πληροφορίες έξω του αντικειμένου αίτησης, 857 00:46:01,520 --> 00:46:05,370 και στη συνέχεια να περάσει σε μια νέα υστέρων ότι δημιουργούμε. 858 00:46:05,370 --> 00:46:07,850 >> Και τότε, το τελευταίο πράγμα που θέλουμε να κάνουμε, 859 00:46:07,850 --> 00:46:09,630 είναι να ανακατευθύνει το πίσω χρήστη στο σπίτι. 860 00:46:09,630 --> 00:46:13,020 Και έτσι χρησιμοποιούμε αυτό Φιάλη ανακατεύθυνση λειτουργία. 861 00:46:13,020 --> 00:46:17,770 Και κάτι που δεν είχαμε δει πριν, ήταν η λειτουργία αυτή τη διεύθυνση URL. 862 00:46:17,770 --> 00:46:21,970 Έτσι, η διεύθυνση URL για τη λειτουργία σας επιτρέπει περνάτε στην πραγματικότητα το όνομα 863 00:46:21,970 --> 00:46:26,090 μιας συνάρτησης σε κώδικα Python σας, παρά τη συγκεκριμένη οδό 864 00:46:26,090 --> 00:46:26,720 ότι είναι σε. 865 00:46:26,720 --> 00:46:32,107 >> Γι 'αυτό και θα μπορούσε να έχει το ίδιο εύκολα μεταφερθείτε σε ένα χρήστη να περικοπούν, 866 00:46:32,107 --> 00:46:37,050 που θα το στείλει πίσω στο σπίτι, αλλά χρησιμοποιώντας το URL για τη λειτουργία του είναι ωραία, 867 00:46:37,050 --> 00:46:39,990 γιατί αν αλλάξει η τοποθεσία όπου βρίσκονται τα πράγματα, 868 00:46:39,990 --> 00:46:44,080 οπότε ας πούμε ότι μπορώ να αλλάξω το το σπίτι να είναι στο / home αντ 'αυτού, 869 00:46:44,080 --> 00:46:47,040 αυτό θα εξακολουθεί να επιστρέψουν στη συνέχεια, / home, επειδή στην πραγματικότητα πηγαίνει και αναζητά 870 00:46:47,040 --> 00:46:50,770 το όνομα της συνάρτησης, και θα σας δώσει πίσω το URL για αυτό. 871 00:46:50,770 --> 00:46:52,490 >> Έτσι, το είδος του σχετικά με την παραδοχή ότι είστε 872 00:46:52,490 --> 00:46:55,489 πιο πιθανό να αλλάξει όπου τα πράγματα είναι, από ό, τι τα ονόματα των λειτουργιών. 873 00:46:55,489 --> 00:46:58,840 Μπορείτε να χρησιμοποιήσετε αυτό το πραγματικά ωραίο διεύθυνση URL για τη λειτουργία του. 874 00:46:58,840 --> 00:47:02,470 Και ένα πράγμα που πρέπει να γνωρίζει ότι είναι λίγο δύσκολο, 875 00:47:02,470 --> 00:47:05,750 είναι ότι νομίζετε ότι θα μπορούσε απλά καλέστε ανακατευθύνει στη διεύθυνση URL για, 876 00:47:05,750 --> 00:47:10,600 αλλά στην πραγματικότητα όλες οι διαδρομές έχουν για να επιστρέψετε κάποιο είδος κειμένου και HTML, 877 00:47:10,600 --> 00:47:14,360 έτσι ώστε να έχετε πραγματικά να επιστρέψετε στην κλήση ανακατεύθυνση. 878 00:47:14,360 --> 00:47:18,379 Διαφορετικά, θα πάρετε κάτι άκυρο για να μην επιστρέψει ένα string, 879 00:47:18,379 --> 00:47:21,420 επειδή όλα αυτά πρέπει να επιστρέψει η HTML θέλετε πραγματικά να προσφέρει. 880 00:47:21,420 --> 00:47:26,980 >> Και έτσι, όταν σας καλούν την ανακατεύθυνση, θα σας ανακατευθύνει στη σελίδα, 881 00:47:26,980 --> 00:47:30,270 αλλά επιστρέφει στην πραγματικότητα το HTML θα πρέπει να εκτελέσετε αυτή την ανακατεύθυνση. 882 00:47:30,270 --> 00:47:34,430 883 00:47:34,430 --> 00:47:37,110 Πήγαινε πίσω στην αρχική σελίδα. 884 00:47:37,110 --> 00:47:39,200 Έτσι έχουμε αυτά τα δύο διαφορετικές απόψεις. 885 00:47:39,200 --> 00:47:40,132 Έχουμε την άποψη σπιτιού. 886 00:47:40,132 --> 00:47:41,590 Ή, υποθέτω ότι πρέπει να πω πρότυπα. 887 00:47:41,590 --> 00:47:44,190 Έχουμε αυτά τα δύο πρότυπα, το πρότυπο σπίτι το οποίο 888 00:47:44,190 --> 00:47:48,500 Εμφανίζει όλα τα μηνύματα μας, και τότε έχουμε αυτό το πράγμα διαφημίσεων, 889 00:47:48,500 --> 00:47:52,970 και όταν κάνετε κλικ στο ταχυδρομείο, πηγαίνει σε μια νέα διαδρομή μέσα από τη φιάλη, 890 00:47:52,970 --> 00:47:55,920 αλλά η γραμμή αυτή δεν σημαίνει απαραίτητα έχει ένα αντίστοιχο πρότυπο. 891 00:47:55,920 --> 00:47:59,290 892 00:47:59,290 --> 00:48:01,560 Δεν έχετε να δείτε τίποτα, αλλά μπορείτε ακόμα 893 00:48:01,560 --> 00:48:04,090 έχουν αυτό το έργο θα πίσω από τις σκηνές. 894 00:48:04,090 --> 00:48:07,450 Και τότε θα πάρετε ανακατεύθυνση Πίσω στην αρχική σελίδα. 895 00:48:07,450 --> 00:48:12,230 Και σίγουρα, είναι εύκολο να εργαστεί σε κάποιο καλύτερο CSS στο πρότυπο 896 00:48:12,230 --> 00:48:15,580 και να κάνει αυτό το βλέμμα πολύ καλύτερο, αλλά όλα τα κύρια λογική 897 00:48:15,580 --> 00:48:18,590 είναι στη Python εκεί. 898 00:48:18,590 --> 00:48:20,020 >> Οποιεσδήποτε ερωτήσεις σχετικά με αυτό το παράδειγμα; 899 00:48:20,020 --> 00:48:22,760 Ξέρω ότι υπάρχουν πολλά διαφορετικά πράγματα που συμβαίνουν εκεί, 900 00:48:22,760 --> 00:48:25,341 πολλά πράγματα που δεν είχαμε δει πριν, αλλά όπως και οτιδήποτε. 901 00:48:25,341 --> 00:48:25,840 Ναι. 902 00:48:25,840 --> 00:48:28,346 >> Κοινό 1: Έχετε να κάνετε τίποτα ειδικά για να τρίψετε τα δεδομένα που είναι 903 00:48:28,346 --> 00:48:29,600 που προέρχονται από τη μορφή; 904 00:48:29,600 --> 00:48:31,109 Παρατήρησα μόλις είπατε «δημιουργήσει», 905 00:48:31,109 --> 00:48:33,900 EZRA ZIGMOND: Ναι, έτσι ώστε να είναι στην πραγματικότητα, αυτό είναι ένα πολύ καλό σημείο. 906 00:48:33,900 --> 00:48:36,350 Έτσι, το ερώτημα ήταν, να κάνετε πρέπει να ελέγξετε και να βεβαιωθείτε 907 00:48:36,350 --> 00:48:39,190 ότι τα δεδομένα είναι έγκυρα, και κάνει οποιοδήποτε είδος του καθαρισμού 908 00:48:39,190 --> 00:48:41,840 για να βεβαιωθείτε ότι είναι έγκυρη, επειδή όπως μπορείτε να δείτε εδώ, 909 00:48:41,840 --> 00:48:42,660 Δεν το κάνω αυτό. 910 00:48:42,660 --> 00:48:48,140 Ας δούμε τι θα συμβεί εάν δημοσιεύσετε κάτι κενό. 911 00:48:48,140 --> 00:48:51,190 Έτσι, αυτό θα κάνει στην πραγματικότητα μόνο ένα κενή θέση και συμπληρώστε το DateTime. 912 00:48:51,190 --> 00:48:55,990 >> Έτσι, στην πραγματικότητα, θα θέλατε πιθανότατα θέλουν να κάνουν κάτι τέτοιο, 913 00:48:55,990 --> 00:49:04,749 ίσως να προσδιορίσετε αν ο τίτλος είναι ίσος με η κενή συμβολοσειρά, τότε μην το κάνετε αυτό. 914 00:49:04,749 --> 00:49:07,290 Ή, να το κάνει μόνο αν ο τίτλος είναι δεν είναι ίση με την κενή συμβολοσειρά. 915 00:49:07,290 --> 00:49:10,330 Γι 'αυτό δεν κάνει στην πραγματικότητα αυτόματα ασχοληθούν με το τρίψιμο 916 00:49:10,330 --> 00:49:12,820 για σας, έτσι θα πρέπει ακόμα να το κάνουμε αυτό. 917 00:49:12,820 --> 00:49:14,330 Ναι, καλή ερώτηση. 918 00:49:14,330 --> 00:49:18,497 >> ΚΟΙΝΟ 2: άραγε scrub για ένεση συνέχεια; 919 00:49:18,497 --> 00:49:19,890 Γνωρίζεις? 920 00:49:19,890 --> 00:49:22,830 >> EZRA ZIGMOND: Ας ελπίσουμε ότι, PeeWee το κάνει αυτό. 921 00:49:22,830 --> 00:49:25,830 Νομίζω ότι σίγουρα θα ήταν ένα πολύ κακή βιβλιοθήκη, αν δεν το κάνουμε αυτό. 922 00:49:25,830 --> 00:49:29,511 923 00:49:29,511 --> 00:49:32,690 Δεν ξέρω ακριβώς. 924 00:49:32,690 --> 00:49:34,820 Θα πρέπει να εξετάσουμε το το ερώτημα που δημιουργείται είναι ότι. 925 00:49:34,820 --> 00:49:38,980 Πιστεύω ότι, αν πληκτρολογήσει σε μια θέση blog που το είδος της έμοιαζε 926 00:49:38,980 --> 00:49:46,370 σαν μια επίθεση SQL ένεση, κάτι τέτοιο, αν αυτό 927 00:49:46,370 --> 00:49:49,370 είναι σαν ένα πεδίο κωδικού πρόσβασης ή κάτι τέτοιο, μπορείτε να κάνετε κάτι τέτοιο. 928 00:49:49,370 --> 00:49:53,410 >> Νομίζω ότι θα είναι ακόμα να πάρει κυριολεκτικά δημοσιεύτηκε, 929 00:49:53,410 --> 00:49:59,200 αλλά νομίζω ότι το κάνει PeeWee κάποιο είδος του καθαρισμού των δεδομένων 930 00:49:59,200 --> 00:50:01,680 πριν από την εκτελεί στην πραγματικότητα. 931 00:50:01,680 --> 00:50:04,510 >> Κοινό 1: Το πεδίο αυτό είναι κείμενο σχεδιαστεί για να λάβει μορφή απλού κειμένου, έτσι δεν είναι; 932 00:50:04,510 --> 00:50:05,710 >> EZRA ZIGMOND: Ναι, αυτό είναι. 933 00:50:05,710 --> 00:50:06,465 Ναι. 934 00:50:06,465 --> 00:50:09,590 Έτσι νομίζω ότι όλα τα, έτσι αυτό είναι σωστή συμπεριφορά, ότι θα το κάνουμε αυτό, 935 00:50:09,590 --> 00:50:12,170 Αλλά νομίζω ότι PeeWee ελπίζουμε ότι αυτό κάνει 936 00:50:12,170 --> 00:50:13,780 κάποιο είδος προστασίας στο τέλος τους. 937 00:50:13,780 --> 00:50:16,090 Και αν θέλετε να διπλός έλεγχος ότι, εκεί 938 00:50:16,090 --> 00:50:19,530 είναι οι τρόποι όταν δημιουργείτε ένα ερώτημα. 939 00:50:19,530 --> 00:50:22,622 έτσι ώστε να μην χρειάζεται να εκτελέσει άμεσα. 940 00:50:22,622 --> 00:50:24,330 Θα έπρεπε να λάβει ένα Κοιτάξτε την τεκμηρίωση, 941 00:50:24,330 --> 00:50:27,930 αλλά μπορείτε πραγματικά να δείτε το SQL που δημιουργεί, 942 00:50:27,930 --> 00:50:30,840 και ρίξτε μια ματιά σε αυτό, και να βεβαιωθείτε ότι έχει διαφύγει πράγματα. 943 00:50:30,840 --> 00:50:33,700 >> Ένας άλλος λόγος για τον οποίο ίσως θέλουμε να δούμε την SQL 944 00:50:33,700 --> 00:50:37,920 ότι PeeWee έχει έξοδο, αν είναι τα πράγματα δείχνουν να πηγαίνουν πολύ αργά, 945 00:50:37,920 --> 00:50:41,090 μπορείτε να ρίξετε μια ματιά και να δούμε τι είναι πραγματικά να κάνει, επειδή είναι μερικές φορές 946 00:50:41,090 --> 00:50:44,670 εύκολο να προσθέσετε λάθος σε, ο τρόπος που το γράφουν, 947 00:50:44,670 --> 00:50:47,880 μπορείτε να το έχετε κατά λάθος επιλέξτε το σύνολο της βάσης δεδομένων πρώτο, 948 00:50:47,880 --> 00:50:50,230 και στη συνέχεια να κάνετε κάποια λειτουργία ταξινόμησης σχετικά ότι, όταν πραγματικά 949 00:50:50,230 --> 00:50:51,320 γραφτό να επιλέξετε ένα υποσύνολο. 950 00:50:51,320 --> 00:50:53,560 >> Και έτσι, αν τα πράγματα δεν είναι αρκετά πηγαίνει δεξιά, 951 00:50:53,560 --> 00:50:57,300 είναι καλό να ρίξετε μια ματιά στο αίτημα αυτό είναι πραγματικά να πάρει δημιουργούνται. 952 00:50:57,300 --> 00:50:57,800 Ναι. 953 00:50:57,800 --> 00:51:02,100 >> ΚΟΙΝΟ 2: Όταν ξεκίνησα, βάζετε στο λιμάνι το 5000. 954 00:51:02,100 --> 00:51:02,904 >> EZRA ZIGMOND: Ναι. 955 00:51:02,904 --> 00:51:06,070 ΚΟΙΝΟ 2: Είναι η προεπιλεγμένη με PeeWee, ή είναι κάτι που μπορείτε να αλλάξετε; 956 00:51:06,070 --> 00:51:10,870 EZRA ZIGMOND: Ναι, έτσι ώστε η λιμάνι είναι προεπιλεγμένη με φιάλη. 957 00:51:10,870 --> 00:51:13,061 Αν τρέξει χωρίς προσδιορίζοντας τίποτα, 958 00:51:13,061 --> 00:51:14,310 θα κάνει αυτόματα αυτό. 959 00:51:14,310 --> 00:51:16,060 Πιστεύω, θα είχα στο διπλό έλεγχο αυτό, 960 00:51:16,060 --> 00:51:19,130 αλλά μπορείτε να καθορίσετε ότι στην app.run, Νομίζω ότι μπορείτε να κάνετε κάτι σαν, 961 00:51:19,130 --> 00:51:19,629 θύρα = 8080. 962 00:51:19,629 --> 00:51:22,375 963 00:51:22,375 --> 00:51:23,750 Ας δώσουμε ότι μια δοκιμή πραγματικά γρήγορα. 964 00:51:23,750 --> 00:51:29,100 965 00:51:29,100 --> 00:51:32,230 Ναι, έτσι μπορείτε να καθορίσετε μόνο θύρα = 8080, και θα το τρέξει εκεί, 966 00:51:32,230 --> 00:51:36,130 το οποίο πιστεύω ότι, αν ήθελε να τρέξει στο IDE, δεν έχω δοκιμάσει αυτό, 967 00:51:36,130 --> 00:51:38,527 αλλά νομίζω ότι αν έτρεξε στη θύρα 8080, 968 00:51:38,527 --> 00:51:40,360 θα ήθελα ίσως να είναι σε θέση για πρόσβαση στο διακομιστή, 969 00:51:40,360 --> 00:51:41,870 ακριβώς όπως θα ήταν για την ιστοσελίδα. 970 00:51:41,870 --> 00:51:44,390 >> Ναι, αλλά είναι εύκολο να το αλλάξει αυτό, αν 971 00:51:44,390 --> 00:51:48,540 έχουν κάθε είδους, όπως το λιμάνι-προώθηση πράγματα που πρέπει να κάνετε. 972 00:51:48,540 --> 00:51:50,410 >> Οποιεσδήποτε άλλες ερωτήσεις; 973 00:51:50,410 --> 00:51:50,916 Ναι; 974 00:51:50,916 --> 00:51:53,416 Κοινό 1: Λοιπόν, είδα σε σας μοντέλα τα οποία, όπως αναφέρατε, 975 00:51:53,416 --> 00:51:55,647 πρέπει να καθορίσετε το βάση δεδομένων για κάθε αντικείμενο. 976 00:51:55,647 --> 00:51:58,105 Μήπως τυχαίνει να γνωρίζω, κάνει που την καθιστούν πραγματικά εύκολο αν 977 00:51:58,105 --> 00:52:03,210 έχουν πολλά SQLite βάσεις δεδομένων που θα θέλετε να χρησιμοποιήσετε για μία μόνο εφαρμογή web, 978 00:52:03,210 --> 00:52:07,210 ότι μπορείτε να καθορίσετε ένα μάτσο από διαφορετικά μέρη του μοντέλου σας; 979 00:52:07,210 --> 00:52:11,620 >> EZRA ZIGMOND: Ναι, επιτρέψτε μου να ανοίξει ότι μέχρι πραγματικά γρήγορα. 980 00:52:11,620 --> 00:52:17,570 Έτσι, λέτε, αν θέλετε να έχετε μια δέσμη των διαφορετικών κάτι, ίσως 981 00:52:17,570 --> 00:52:22,670 αρέσουν και οι φοιτητές, για ορισμένους λόγο, κάτι τέτοιο; 982 00:52:22,670 --> 00:52:26,870 Ναι, έτσι νομίζω ότι ακόμα, κάθε μοντέλο 983 00:52:26,870 --> 00:52:30,652 θα πρέπει να εξακολουθούν να έχουν ακριβώς μία βάση δεδομένων που της έχουν ανατεθεί, 984 00:52:30,652 --> 00:52:32,610 αλλά αν θέλετε να έχετε διαφορετικά μοντέλα που 985 00:52:32,610 --> 00:52:35,818 έχουν διαφορετικά αντικείμενα βάσης δεδομένων έχουν ανατεθεί σε αυτό, θα μπορούσε σίγουρα να το κάνουμε αυτό. 986 00:52:35,818 --> 00:52:43,070 Έτσι, αν έχω δημιουργήσει μια νέα, κάτι σαν αυτό, 987 00:52:43,070 --> 00:52:47,000 και τώρα αυτό είναι ένα σπουδαστών που φαίνεται περίεργο σαν ένα blog post, 988 00:52:47,000 --> 00:52:49,390 Θα μπορούσε να διευκρινιστεί ότι η βάση δεδομένων είναι ίσο με db_2 εδώ. 989 00:52:49,390 --> 00:52:51,390 Έτσι, νομίζω ότι αυτό είναι το κύριος τρόπος που μπορείτε να το κάνετε αυτό. 990 00:52:51,390 --> 00:52:54,560 991 00:52:54,560 --> 00:52:56,200 >> Δροσερός. 992 00:52:56,200 --> 00:52:58,410 Οποιεσδήποτε άλλες ερωτήσεις; 993 00:52:58,410 --> 00:53:02,170 >> Έτσι απλά για να τελειώσει ένα μικρό bit, εδώ είναι μερικοί πόροι, 994 00:53:02,170 --> 00:53:06,030 και αυτές οι διαφάνειες θα δημοσιεύονται στο διαδίκτυο έτσι ώστε να μπορείτε πραγματικά να τους συνδέσμους. 995 00:53:06,030 --> 00:53:08,500 Οι καλύτερες πηγές είναι πραγματικά η τεκμηρίωση για φιάλη 996 00:53:08,500 --> 00:53:09,930 και peewee ίδιοι. 997 00:53:09,930 --> 00:53:12,940 Είναι γραμμένο πολύ καλά, νομίζω. 998 00:53:12,940 --> 00:53:18,180 Έτσι, η ιστοσελίδα φιάλη εδώ, και έχουν ένα σεμινάριο για τα πρώτα βήματα ότι 999 00:53:18,180 --> 00:53:20,710 Θα περπατήσετε μέσα από παρόμοιες τα πράγματα σε ό, τι μπήκα μέσα, 1000 00:53:20,710 --> 00:53:23,560 αλλά αν θέλετε οποιοδήποτε είδος της επανεξέτασης από τα πράγματα που πήγα πάνω, 1001 00:53:23,560 --> 00:53:26,200 ή νομίζατε ότι εξήγησα κάτι σε ένα συγκεχυμένο τρόπο, 1002 00:53:26,200 --> 00:53:28,390 θα έχουν παρόμοια παραδείγματα υπάρχουν. 1003 00:53:28,390 --> 00:53:31,570 >> Peewee διαθέτει αποδεικτικά στοιχεία, και έχουν ένα σεμινάριο για τα πρώτα βήματα 1004 00:53:31,570 --> 00:53:34,650 που πηγαίνει πέρα ​​από τις βασικές παραμέτρους ότι θα θέλατε να χρησιμοποιήσετε. 1005 00:53:34,650 --> 00:53:38,900 Έτσι, τα πράγματα που μου μίλησε με οι μοναδικές, και καθορίζοντας τις προεπιλογές, 1006 00:53:38,900 --> 00:53:42,710 τα διάφορα είδη των πεδίων που μπορείτε να χρησιμοποιήσετε, εκείνοι θα είμαστε όλοι εκεί. 1007 00:53:42,710 --> 00:53:44,690 >> Επίσης, αν έχετε ερωτήσεις σχετικά με PeeWee, 1008 00:53:44,690 --> 00:53:47,530 και να τις ποστάρετε στο StackOverflow, ο τύπος που έκανε πραγματικά PeeWee 1009 00:53:47,530 --> 00:53:49,500 συνεχίζεται και απαντά σε εκείνους που μερικές φορές. 1010 00:53:49,500 --> 00:53:53,200 Αν έχετε κάποια ερώτηση, ευελπιστούμε θα είναι σε θέση να απαντήσει, 1011 00:53:53,200 --> 00:53:54,867 γιατί έγραψε το όλο θέμα. 1012 00:53:54,867 --> 00:53:56,700 Νομίζω ότι είναι ό, τι Ήθελα να καλύψει. 1013 00:53:56,700 --> 00:53:58,930 Ευχαριστώ για την έξοδο. 1014 00:53:58,930 --> 00:54:02,688