1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:03,227 [Mūzikas atskaņošanai] 3 00:00:03,227 --> 00:00:04,705 4 00:00:04,705 --> 00:00:05,830 EZRA ZIGMOND: Sveiki, visiem. 5 00:00:05,830 --> 00:00:08,020 Paldies par iznāks šodien. 6 00:00:08,020 --> 00:00:10,660 Šis seminārs ir "Python Web Apps ar kolbā. " 7 00:00:10,660 --> 00:00:14,510 >> Tātad, es esmu gatavojas runāt mazliet par to, kāpēc 8 00:00:14,510 --> 00:00:17,400 jūs varētu vēlēties izmantot kolbā, lai padarītu tīmekļa lietotnes ar Python, pretstatā 9 00:00:17,400 --> 00:00:21,556 uz dažām citām sistēmām, kas pastāv, piemēram, Django, kas ir visvairāk labi zināms. 10 00:00:21,556 --> 00:00:24,330 Apakšvirsraksts ir "un peewee ", kas ir kaut kas 11 00:00:24,330 --> 00:00:27,250 mēs runāsim par to, kā mijiedarboties ar SQL datu bāzēm. 12 00:00:27,250 --> 00:00:29,610 Tas padara to patiešām jauki. 13 00:00:29,610 --> 00:00:32,390 >> Tātad, šeit ir tikai ātrs nolietota par to, ko es gribu iet pāri. 14 00:00:32,390 --> 00:00:35,520 Tātad, pirmkārt, tikai viens slaids kas būs QUICKSTART, 15 00:00:35,520 --> 00:00:38,530 kas ir, kā iegūt visu izveidot datorā. 16 00:00:38,530 --> 00:00:41,760 Es esmu būs demonstrējot šo par manu vietējo Mac mašīna, 17 00:00:41,760 --> 00:00:45,220 tikai tāpēc, ka tas ir, ja es esmu darījis pirms, es esmu visērtāk ar to, 18 00:00:45,220 --> 00:00:48,510 bet tas noteikti iespējams uz CD50 IDE. 19 00:00:48,510 --> 00:00:52,050 >> Tātad, pēc tam, es gribu ieviest ko kolba ir, 20 00:00:52,050 --> 00:00:55,089 un pārliecināt, kāpēc jums vajadzētu izmantot to pirmajā vietā. 21 00:00:55,089 --> 00:00:56,880 Tad, es došu ātrs piemērs tam, ko jums 22 00:00:56,880 --> 00:01:00,550 var darīt kolbā, ātri piemērs par to, ko jūs varat darīt, peewee, 23 00:01:00,550 --> 00:01:05,010 un tad es jums parādīs vairāk pilnīgs piemērs pieteikums 24 00:01:05,010 --> 00:01:07,520 ka man kopā, mēs var staigāt pa kopā. 25 00:01:07,520 --> 00:01:10,040 >> Un tad visbeidzot, pēdējais slaids, man ir 26 00:01:10,040 --> 00:01:12,730 daži resursi, kas jums izskatās at tiešsaistē vairāk informācijas. 27 00:01:12,730 --> 00:01:15,560 Tas nav pilnīgs apmācība par to, kā izmantot kolbā. 28 00:01:15,560 --> 00:01:18,140 Un es ceru, ka atstāt kādu laiku uz jautājumiem. 29 00:01:18,140 --> 00:01:21,050 Ikviens skatoties uz vietas, vienkārši piemēram, bļāviens vidū 30 00:01:21,050 --> 00:01:22,340 Ja jums ir kādi jautājumi. 31 00:01:22,340 --> 00:01:27,150 >> Tik ātra uzstādīšana sīkumi, ja jūs vēlaties sekot līdzi, 32 00:01:27,150 --> 00:01:29,240 vai, ja jūs vēlaties, lai iegūtu šo līdzi savu mašīnu, 33 00:01:29,240 --> 00:01:32,440 Es esmu būs izmantojot Python 2.7.10. 34 00:01:32,440 --> 00:01:35,860 Kolba strādā ar Python 3, bet man patīk 35 00:01:35,860 --> 00:01:38,660 izmantojot Python 2, jo tur ir daži Python paketes, kas 36 00:01:38,660 --> 00:01:40,910 nestrādā ar 3 vēl. 37 00:01:40,910 --> 00:01:44,800 Ja jums ir pip instalēta, kas ir Python paketes vadītājs, 38 00:01:44,800 --> 00:01:48,190 Es domāju, ka, ja jūsu Python ir lielāks par vai vienāds ar 2.7.9, 39 00:01:48,190 --> 00:01:52,220 jums ir tā uzstādīta jau, tas ir super viegli uzstādīt šos iepakojumus. 40 00:01:52,220 --> 00:01:54,990 >> Jūs varat darīt pip instalēt Kolba, pip instalēt peewee, 41 00:01:54,990 --> 00:01:58,600 Parasti jums jāskrien sudo vienkārši lai atļaujas izstrādāt. 42 00:01:58,600 --> 00:02:01,080 Un, ja jūs izmantojat super vecā versija Python, 43 00:02:01,080 --> 00:02:05,100 Es ieteiktu atjaunināt savu Python, vai izmantojot EasyInstall uzstādīt PIP. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 Tātad, nākamais jautājums ir, kāda ir kolba? 46 00:02:11,120 --> 00:02:13,280 Un es domāju, vispirms pamatots ir jautājums es prātoju 47 00:02:13,280 --> 00:02:15,585 uz ilgu laiku ir, kāda ir web app? 48 00:02:15,585 --> 00:02:17,960 Jo tas ir vārds, kas man domāju, ka ir izmests pa daudz 49 00:02:17,960 --> 00:02:19,240 ka man nav īsti zināms. 50 00:02:19,240 --> 00:02:22,340 Un es domāju, ka labākais piemērs tam, ko web app ir, 51 00:02:22,340 --> 00:02:26,960 tiešām ir CS50 Finance, kur tas nav īsti tikai mājas lapā, 52 00:02:26,960 --> 00:02:29,320 bet tas ir kaut kas jums varētu kārtot mijiedarboties ar. 53 00:02:29,320 --> 00:02:31,736 Ir lietotāju kontus un visu veidu dažādas lietas. 54 00:02:31,736 --> 00:02:35,010 Tātad, kur tieši jūs izdarīt līnija starp to, kas ir mājas lapā, 55 00:02:35,010 --> 00:02:38,780 un kāda ir web app, ir sava veida patvaļīga, bet es domāju, ka ideja, 56 00:02:38,780 --> 00:02:42,110 tas ir kaut kas vairāk nekā mājas lapā un tas ir noderīgs pieteikumu. 57 00:02:42,110 --> 00:02:46,081 >> Tātad, kolba ir pamats padarot tīmekļa lietotnes, izmantojot Python. 58 00:02:46,081 --> 00:02:48,330 Un cerams, līdz gada beigām Tas, es būs pārliecināt jūs, 59 00:02:48,330 --> 00:02:52,210 ka jūs tiešām varētu uzrakstīt kaut ko tāpat CS50 Finance izmantojot Python, ko es 60 00:02:52,210 --> 00:02:53,950 patīk daudz labāk nekā PHP, personīgi. 61 00:02:53,950 --> 00:02:57,320 >> Tātad, kolba ir, viņi zvans microframework, ar kuru, 62 00:02:57,320 --> 00:02:59,800 viņi domā, tas ir ļoti vienkāršs, bet paplašināms. 63 00:02:59,800 --> 00:03:02,980 Tātad, tas ir tieši tas, kas jums ir nepieciešams, bet, ja jūs vēlaties vairāk funkcijas, 64 00:03:02,980 --> 00:03:04,522 tas ir viegli, lai tos. 65 00:03:04,522 --> 00:03:06,480 Bet tikai tāpēc, ka tas ir microframework, nav 66 00:03:06,480 --> 00:03:08,960 nozīmē, ka tas ir tikai uz maziem projektiem. 67 00:03:08,960 --> 00:03:12,590 Man ir saite šeit, kas saka ka Obama izmanto kolbu 2012. gadā 68 00:03:12,590 --> 00:03:14,410 viņa kampaņai mājas lapa, kas, cerams, 69 00:03:14,410 --> 00:03:16,937 ir kaut kas no apstiprinājuma. 70 00:03:16,937 --> 00:03:18,770 Bet lieta, kas man tiešām patīk kolba 71 00:03:18,770 --> 00:03:22,401 ir tā, ka tas nav īsti darīt jebkāda veida lēmumus par jums. 72 00:03:22,401 --> 00:03:24,150 Tikai tāpēc, ka mēs esam runājot par tīmekļa lietotnēm, 73 00:03:24,150 --> 00:03:26,940 Man ir salīdzināt to ar Ruby on Sliedes un Django, kas abi 74 00:03:26,940 --> 00:03:30,450 ir liels sistēmas, bet viņi abi izteikt pieņēmumus 75 00:03:30,450 --> 00:03:33,600 par to, kā jūs vēlaties mijiedarbojas ar datu bāzēm, 76 00:03:33,600 --> 00:03:36,900 kā jūs vēlaties prezentēt savu uzskati, un viņi noteikti 77 00:03:36,900 --> 00:03:38,850 labi aspekti, kas. 78 00:03:38,850 --> 00:03:41,490 >> Piemēram, Ruby on Rails ir minētā aktīvā ieraksta sistēmu, 79 00:03:41,490 --> 00:03:43,100 kas ir tiešām jauks veids, lai mijiedarbotos ar datiem, 80 00:03:43,100 --> 00:03:45,960 bet, ja jūs vēlaties izmantot Ruby on Sliedes, jūs veida saistīts vērā, ka. 81 00:03:45,960 --> 00:03:47,835 Bet ar kolba, kā es ņemšu parādīs, ar peewee, 82 00:03:47,835 --> 00:03:49,830 Jūs varat izmantot Jebkāda veida datubāzes jūs vēlaties, 83 00:03:49,830 --> 00:03:53,980 un jūs varat vienkārši velciet, ka kā pagarinājumu kolbā. 84 00:03:53,980 --> 00:03:56,350 >> Tātad, tāpēc es patiešām tāpat kolba, tas ir, ka tā 85 00:03:56,350 --> 00:04:01,170 nepadara pieņēmumus par jums pamatojoties uz lietām, jums nav nepieciešams īsti. 86 00:04:01,170 --> 00:04:04,440 >> Tātad, kāpēc jūs izmantojat kolbā? 87 00:04:04,440 --> 00:04:08,230 Priekšrocības ir, tas vienkārši ir patiešām galvenās iezīmes 88 00:04:08,230 --> 00:04:09,420 iebūvēts tā, ka jums ir nepieciešams. 89 00:04:09,420 --> 00:04:11,980 Tātad, jums nav jāuztraucas par izprast visu ķekars lietas 90 00:04:11,980 --> 00:04:13,175 ka jums nav tiešām ir nepieciešams. 91 00:04:13,175 --> 00:04:15,060 Jums nav jāuztraucas Par izslēgšanas funkcijas 92 00:04:15,060 --> 00:04:16,620 ka jums nav tiešām ir nepieciešams. 93 00:04:16,620 --> 00:04:21,082 >> Un, kā jau minēju, tas ir super viegli pievienot pagarinājumi lietas 94 00:04:21,082 --> 00:04:21,790 kas jums nepieciešams. 95 00:04:21,790 --> 00:04:24,700 Dažas no tām, kolba ir savu atbalstu to. 96 00:04:24,700 --> 00:04:28,230 Tātad tur ir kaut kas ko sauc kolba admin, kas atspoguļo šo admin 97 00:04:28,230 --> 00:04:32,060 panelis, kas Django nodrošina, kas dod jums jauku vizuālu veidu 98 00:04:32,060 --> 00:04:33,405 administrēt jūsu mājas lapā. 99 00:04:33,405 --> 00:04:35,280 Bet atkal, ja jūs esat padarot kaut kas vienkāršs, 100 00:04:35,280 --> 00:04:39,550 Jūs, iespējams, nav nepieciešams liels admin panelis, tāpēc es domāju, ka ir super jauki. 101 00:04:39,550 --> 00:04:45,940 Un trūkumi ir, ka Jums ir mazāk enerģijas no kastes. 102 00:04:45,940 --> 00:04:49,660 Tātad, kad jūs pirmo reizi atvērt kolbā, un jūsu Python programmu, 103 00:04:49,660 --> 00:04:53,150 jūs vienkārši ierakstiet no kolba Importa *, vai kāds, 104 00:04:53,150 --> 00:04:55,957 Jums nav īsti iegūt visu iezīmes jūs varētu vēlēties. 105 00:04:55,957 --> 00:04:58,540 Un tāpēc jums ir daudz skaidrāk uzskaitīt funkcijas vēlaties. 106 00:04:58,540 --> 00:05:01,990 Tātad tas ir viens trūkums, bet es domāju, ka, lai izveidotu nelielu tīmeklī 107 00:05:01,990 --> 00:05:04,782 apps, piemēram, es esmu gatavojas rāda tu, tas nav īsti problēma. 108 00:05:04,782 --> 00:05:07,281 Un ko pēdējā lieta ir vajadzēja pateikt, kas ir typo, 109 00:05:07,281 --> 00:05:10,240 ir tā, ka ir mazāk ir standartizēts konvencijas par to, kā izmantot kolbā, 110 00:05:10,240 --> 00:05:12,400 tikai tāpēc, ka tur nav tik daudz cilvēki, kas to izmanto profesionāli 111 00:05:12,400 --> 00:05:13,191 salīdzinot ar Django. 112 00:05:13,191 --> 00:05:16,380 Tātad, ja jums izskatīties kaut kā, "kā es varu darīt X" Django, 113 00:05:16,380 --> 00:05:18,190 jūs, iespējams atrast. 114 00:05:18,190 --> 00:05:20,260 >> Tur ir labs dizains modeļi, jūs varat izmantot, 115 00:05:20,260 --> 00:05:22,660 bet ar kolbu, tas ir kārtot iet savu ceļu, 116 00:05:22,660 --> 00:05:24,850 tikai tāpēc, ka tas ir diezgan neliela bibliotēka. 117 00:05:24,850 --> 00:05:27,100 Tātad tie ir trūkumi, bet es domāju, ka 118 00:05:27,100 --> 00:05:29,370 ka tas joprojām ir laba bibliotēka, lai izmantotu. 119 00:05:29,370 --> 00:05:31,909 >> Tātad pieņemsim tikai lēkt pa labi kolbā. 120 00:05:31,909 --> 00:05:34,200 Tas noteikti nenāks būt pilnīga apmācība, 121 00:05:34,200 --> 00:05:37,480 bet tas ir, lai dotu jums priekšstatu par to, kā strukturēt lietas, 122 00:05:37,480 --> 00:05:40,790 un lai jūs justos ērti iet off un apskatot dokumentācijā 123 00:05:40,790 --> 00:05:42,570 un uzzināt vairāk. 124 00:05:42,570 --> 00:05:48,500 >> Tātad, ļaujiet man atvērt patiešām Vienkāršs piemērs sākumā, 125 00:05:48,500 --> 00:05:50,737 un parādīs, ko tas izskatās, un tad mēs 126 00:05:50,737 --> 00:05:52,070 sadalīs to mazliet vairāk. 127 00:05:52,070 --> 00:05:56,160 >> Tātad šis šeit, ļaujiet man iegūt to darboties. 128 00:05:56,160 --> 00:06:06,800 129 00:06:06,800 --> 00:06:09,750 Tātad, man tagad ir mans pieteikums darbojas. 130 00:06:09,750 --> 00:06:15,910 Es esmu gatavojas atvērt Safari, un tas darbojas uz manu vietējā uzņēmēja. 131 00:06:15,910 --> 00:06:19,360 Tāpēc es esmu tikai gatavojas, lai padarītu šo lielāks. 132 00:06:19,360 --> 00:06:23,960 Bet localhost: 5000 133 00:06:23,960 --> 00:06:27,650 >> Un tā, tieši tagad, tas viss dara ir, kad jūs apmeklējat tīmekļa vietni, 134 00:06:27,650 --> 00:06:31,490 tas izdrukā "Hello kolba," kas nav super noderīgs, 135 00:06:31,490 --> 00:06:34,630 bet es domāju, ka tas ir forši, ka šajā maz failu šeit, 136 00:06:34,630 --> 00:06:37,390 mums ir web serveris kas drukā kaut ko. 137 00:06:37,390 --> 00:06:40,500 Tātad, pieņemsim tiešām izskatās pēc koda uz otru, 138 00:06:40,500 --> 00:06:43,080 un sadalīs to mazliet. 139 00:06:43,080 --> 00:06:45,260 Vai izmērs labs ikvienam šeit? 140 00:06:45,260 --> 00:06:51,560 >> Tātad, cerams, jūs esat nedaudz ērti, izmantojot Python. 141 00:06:51,560 --> 00:06:55,820 Es esmu pieņemot, ka mēs varam apskatīt Python un lasīt caur to. 142 00:06:55,820 --> 00:06:59,290 Ja Jums ir kādi jautājumi par kaut kas, es varētu arī iet pa to. 143 00:06:59,290 --> 00:07:03,974 >> Tātad pirmā līnija ir, no kolba, mēs importējam, kolba ar kapitālu "F" 144 00:07:03,974 --> 00:07:06,140 kas ir sava veida visu galvenās iezīmes, kas jums nepieciešams. 145 00:07:06,140 --> 00:07:08,890 Ikreiz, kad jūs esat rakstiski failu un izmantojot kolba, 146 00:07:08,890 --> 00:07:12,120 jūs gatavojas vēlaties importēt, ka, tikai tāpēc, ka ir visas galvenās lietas. 147 00:07:12,120 --> 00:07:15,400 Nākamā lieta, ko mēs darām, ir mums nosaukt šo funkciju kolbā, vienkārši 148 00:07:15,400 --> 00:07:19,270 izveidot app objektu, un jūs esat vienmēr gatavojas vēlaties darīt. 149 00:07:19,270 --> 00:07:25,960 >> Un tad, lekt uz leju, lai bottom ātri, šī daļa šeit ir, 150 00:07:25,960 --> 00:07:28,760 "if_name _ ==" _ main_ "", kas ir sava veida Python konvenciju. 151 00:07:28,760 --> 00:07:32,750 Tātad šis būs tikai izpildīt, ja jums palaist šo failu tieši, izmantojot Python. 152 00:07:32,750 --> 00:07:36,040 Tad mēs aicinām app.run, kas faktiski sākt app iet. 153 00:07:36,040 --> 00:07:39,570 >> Tātad, tas ir galvenā struktūra, kas jums ir jebkurā kolba pieteikumu, 154 00:07:39,570 --> 00:07:48,550 ir jums būs šī app = kolba (_name_), un pēc tam app.run. 155 00:07:48,550 --> 00:07:54,940 >> Tātad, divas lietas, kas man ir šeit, ir tas, ko mēs saucam maršrutus. 156 00:07:54,940 --> 00:07:57,150 Tātad, parunāsim par maršrutēšanas mazliet vairāk. 157 00:07:57,150 --> 00:07:58,430 Es iešu atpakaļ uz slaidu. 158 00:07:58,430 --> 00:08:02,540 >> Tātad visbūtiskākā jēdziens kolbā maršrutēšanas. 159 00:08:02,540 --> 00:08:06,750 Un tā ir ideja, ka jūs nodot funkcijas Python 160 00:08:06,750 --> 00:08:11,280 konkrētām adresēm uz jūsu mājas lapā. 161 00:08:11,280 --> 00:08:13,930 Tātad, ja jūs vēlaties lai izveidotu jaunu maršrutu, 162 00:08:13,930 --> 00:08:16,500 Jūs izmantot šo @ app.route funkcija krāsotājs. 163 00:08:16,500 --> 00:08:19,770 Tātad, ja jums ir svešs ar funkcija dekoratori Python, 164 00:08:19,770 --> 00:08:24,160 tas ir šis jēdziens, kas ļauj jums veikt funkciju 165 00:08:24,160 --> 00:08:26,800 un surround to ar kaut ko citu. 166 00:08:26,800 --> 00:08:30,140 >> Tik tiešām, ko tas dara dekorators, ir tas, ka tā veic funkciju zem tā, 167 00:08:30,140 --> 00:08:33,409 un tā piebilst, vairāk informācijas uz to, bet to, kas patiesībā kolba 168 00:08:33,409 --> 00:08:37,480 tas padara šo notikt nav super izšķiroša nozīme, bet to, kas ir svarīgi, 169 00:08:37,480 --> 00:08:43,640 tas, ka pirms maršruta, jūs nodot šo @ app.route, un pēc tam 170 00:08:43,640 --> 00:08:46,480 adrese maršrutā, tāpēc slash ir tas, ko mēs 171 00:08:46,480 --> 00:08:48,360 redzēju, kad mēs vienkārši atvērt tīmekļa lapu. 172 00:08:48,360 --> 00:08:49,580 Tātad tas ir mājas lapa. 173 00:08:49,580 --> 00:08:51,037 Tas ir tikai slash maršruts. 174 00:08:51,037 --> 00:08:52,370 Un tad jums ir šo funkciju. 175 00:08:52,370 --> 00:08:54,453 No funkciju nosaukums var būt neatkarīgi vēlaties. 176 00:08:54,453 --> 00:08:56,930 Tas nav obligāti ir sakars ar trasi. 177 00:08:56,930 --> 00:08:59,440 Un tad, neatkarīgi Funkcija atgriešanās, 178 00:08:59,440 --> 00:09:01,730 funkcija vajadzētu atgriezties virkni. 179 00:09:01,730 --> 00:09:03,740 Un tas string var saturēt HTML vai kaut ko, 180 00:09:03,740 --> 00:09:06,920 un tas ir faktiski ko saņems atgriezās savā interneta pārlūkā, kā HTML, 181 00:09:06,920 --> 00:09:08,200 un tas padara to. 182 00:09:08,200 --> 00:09:12,030 >> Tāpēc tas ir tas pats kods tas bija no piemēra 183 00:09:12,030 --> 00:09:16,430 ka man tikko bija, tad, kad mēs apmeklēt slīpsvītra, tas izsauc Hello World funkcija, kas 184 00:09:16,430 --> 00:09:20,470 tikai atgriež string, Hello kolba, un kas izpaužas uzdrukāts uz ekrāna. 185 00:09:20,470 --> 00:09:27,290 >> Tātad tur ir vēl viens piemērs, kas ir, kad jūs apmeklējat / sveiki, 186 00:09:27,290 --> 00:09:30,370 tas izdrukā Sveiki Word, kas faktiski būtu teikt, Hello World, 187 00:09:30,370 --> 00:09:32,010 bet pieņemsim izlikties, ka bija tīša. 188 00:09:32,010 --> 00:09:35,140 Tātad pieņemsim pull, ka līdz nekustamo ātri. 189 00:09:35,140 --> 00:09:41,290 >> Tātad, ja jums iet uz localhost / sveiki, tas tagad būs drukāt kaut ko citu. 190 00:09:41,290 --> 00:09:45,680 Tātad tas ir tikai ātrs piemērs tam, kā Jūs varat izveidot divus dažādus maršrutus. 191 00:09:45,680 --> 00:09:50,630 >> Tātad, līdz šim nav super noderīgs, nav visai daudz jūs varat darīt, 192 00:09:50,630 --> 00:09:55,360 jūs varētu tikai darīt visu, kas ar ir dažādas HTML lapas, 193 00:09:55,360 --> 00:09:58,000 un, kad jūs apmeklējat īpaši lapa tā vienkārši ielādē lapu. 194 00:09:58,000 --> 00:10:00,864 Tātad, pieņemsim redzēt dažas vairāk noderīgas lietas jūs varat darīt. 195 00:10:00,864 --> 00:10:03,780 Tātad, viena lieta, ka Jums varētu būt pamanīju, piemērā, ka man velk 196 00:10:03,780 --> 00:10:07,160 up, ir tas, ka man bija app.run (atkļūdot = True). 197 00:10:07,160 --> 00:10:09,580 Un tā, ko tas atkļūdošanas arguments nav, ir 198 00:10:09,580 --> 00:10:14,600 ka tad, kad jūs vadīt savu web serveri, kad tu esi savā pieteikumā, 199 00:10:14,600 --> 00:10:18,100 ja jūs maināt failu, tas būs automātiski pārlādēt serveri. 200 00:10:18,100 --> 00:10:21,160 >> Un tāpēc jums nav faktiski ir restart Python, kas ir super noderīga. 201 00:10:21,160 --> 00:10:24,020 Es varu pierādīt, ka. 202 00:10:24,020 --> 00:10:26,960 Ļaujiet man uzvilkt manu kodu ar typo tajā, 203 00:10:26,960 --> 00:10:30,420 un izlikties, ka typo tika likts tur tīši par pamācošs mērķiem. 204 00:10:30,420 --> 00:10:31,625 Tātad pieņemsim pievienot šo muguru. 205 00:10:31,625 --> 00:10:33,140 Tāpēc tagad tā saka Hello World. 206 00:10:33,140 --> 00:10:34,410 Es to saglabāt. 207 00:10:34,410 --> 00:10:36,540 Un, ja mēs pull atpakaļ uz augšu termināla, jūs 208 00:10:36,540 --> 00:10:39,520 saka, ka tas ir atkārtota, jo tā atklāti izmaiņas, 209 00:10:39,520 --> 00:10:43,620 un tāpēc tagad, kad mēs pārlādē šo lapu, tas būs izdrukāt pareizo lieta. 210 00:10:43,620 --> 00:10:45,630 >> Tātad atkļūdot ir super noderīga kas. 211 00:10:45,630 --> 00:10:48,740 Arī tad, ja jums ir kāds veida sadursmes, tāpēc 212 00:10:48,740 --> 00:10:54,370 ļaujiet man šo pieteikumu crash , kam tas neatgriežas virkni. 213 00:10:54,370 --> 00:10:57,540 Tātad, pieņemsim vienkārši ir to atgriezties Nav kāda iemesla dēļ. 214 00:10:57,540 --> 00:11:00,810 Un tad, kad es apmeklēju šo lapas, tas būs tikai crash, 215 00:11:00,810 --> 00:11:04,465 bet serveris nav tikai crash, to faktiski dod jums super noderīgu atpakaļ 216 00:11:04,465 --> 00:11:06,490 izsekot visam, kas nogāja greizi. 217 00:11:06,490 --> 00:11:10,050 Un, kas ir patiešām jauki, ir tas, ka jebkurā soli šajā atpakaļ pēdām, 218 00:11:10,050 --> 00:11:14,260 jūs varētu atvērt interaktīvs apvalks šeit, un veida izdrukāt ko 219 00:11:14,260 --> 00:11:17,780 mainīgie jūs vēlaties to apskatīt. 220 00:11:17,780 --> 00:11:21,054 >> Un tā atkļūdošana ir patiešām noderīgi norādītas 221 00:11:21,054 --> 00:11:23,470 kas notiek ar jūsu servera, nevis tikai redzēt 222 00:11:23,470 --> 00:11:28,201 kaut kas līdzīgs PHP 500 iekšējais servera kļūda, kas ir super bezjēdzīgi. 223 00:11:28,201 --> 00:11:30,700 Viena lieta ir jāapzinās, ir ka, ja jūs nodot savu app online 224 00:11:30,700 --> 00:11:34,260 tāpēc tas ir redzams sabiedrībai, jūs nekad vēlaties atstāt atkļūdošanas režīmu, 225 00:11:34,260 --> 00:11:37,320 jo cilvēki faktiski var lietot šo konsoli, ka es 226 00:11:37,320 --> 00:11:39,150 uzrādīja jums izpildīt patvaļīgu kodu. 227 00:11:39,150 --> 00:11:42,120 >> Tātad viņi var izdrukāt kā jebkurš slepenie kodi jums ir tur, 228 00:11:42,120 --> 00:11:44,755 viņi var apskatīt tieši kā jūsu mājas lapā darbojas. 229 00:11:44,755 --> 00:11:46,630 Tātad, tas ir patiešām noderīga testēšanai, bet vienmēr 230 00:11:46,630 --> 00:11:50,090 pārliecinieties, lai ņemtu to ārā pirms jūs publicēt kaut ko internetā. 231 00:11:50,090 --> 00:11:56,640 >> Tātad, ja jūs izmantojat kaut ko piemēram, PHP, tur ir šī ideja 232 00:11:56,640 --> 00:11:58,920 ka jūs varat pāriet informācijas apmaiņu starp tīmekļa lapām 233 00:11:58,920 --> 00:12:03,620 , ievietojot informāciju faktiski URL, kas ir GET pieprasījums, 234 00:12:03,620 --> 00:12:07,490 bet kolbā, jūs faktiski var darīt kaut ko kārtot, piemēram, ka, 235 00:12:07,490 --> 00:12:10,590 Ar kuru maršruta dēļ mainīgs kā daļa no tā. 236 00:12:10,590 --> 00:12:14,090 >> Tātad, ja paskatās šo piemērs uz ekrāna šeit, 237 00:12:14,090 --> 00:12:19,930 mums ir ceļš, kas ir ('/ sveiki / "), un tādēļ, ja jūs apmeklējat 238 00:12:19,930 --> 00:12:23,790 / sveiki / kaut, ka kaut kas gatavojas faktiski saņemtu piepildīta 239 00:12:23,790 --> 00:12:25,490 uz vārda mainīgo. 240 00:12:25,490 --> 00:12:27,850 Un paziņojums, ka funkcija kas nāk ar šo maršrutu 241 00:12:27,850 --> 00:12:31,302 ir veikt parametru nosaukt, lai tas patiešām 242 00:12:31,302 --> 00:12:32,510 get pārgāja funkciju. 243 00:12:32,510 --> 00:12:34,190 >> Un tad, kad jūs esat iekšpusē šo funkciju, 244 00:12:34,190 --> 00:12:36,420 Jūs var ārstēt, ka, piemēram, normāls Python mainīgs, 245 00:12:36,420 --> 00:12:39,650 un tā tam, tā būs izdrukāt Sveiki, un tas 246 00:12:39,650 --> 00:12:42,000 aizpildīs nosaukumu, izmantojot daži string formatējumu. 247 00:12:42,000 --> 00:12:48,060 >> Tad, lai pievienotu mainīgās daļas maršrutēšanas, Jūs izmantojat leņķa kronšteinu marķējumu. 248 00:12:48,060 --> 00:12:51,220 Un pēc izvēles, jūs varat izmantot ko sauc pārveidotāju. 249 00:12:51,220 --> 00:12:56,840 Un tā, ja jūs nodot šo anotācija ar kolu, 250 00:12:56,840 --> 00:13:00,015 Jūs varat norādīt, ka tā ir int, vai pludiņš, vai ceļš, 251 00:13:00,015 --> 00:13:01,640 un tas automātiski konvertēt to. 252 00:13:01,640 --> 00:13:05,130 Jūs varat arī darīt konversijas ietvaros Python funkciju, 253 00:13:05,130 --> 00:13:09,710 tikai, izmantojot vairākumu, bet dažreiz, ja Jūs vēlaties, lai pārliecinātos, ka tas ir int, 254 00:13:09,710 --> 00:13:12,080 Jūs varat nodot, ka konversija noteikums tur. 255 00:13:12,080 --> 00:13:15,930 >> Tātad pieņemsim uzvilkt piemēru dažu mainīgo noteikumiem. 256 00:13:15,930 --> 00:13:21,480 Tātad šeit, tas ir vienas un tās pašas struktūra ar no kolba importu 257 00:13:21,480 --> 00:13:25,030 Kolba, app = kolba (_name_), un tad tas darbojas beigās. 258 00:13:25,030 --> 00:13:28,050 Mums ir šie divi atšķirīgi mainīgās maršruti šeit. 259 00:13:28,050 --> 00:13:29,900 Un pirmais, ir viens, ka es parādīja 260 00:13:29,900 --> 00:13:34,230 slaidu, kas bija kas tā vienkārši notiek kādā String nosaukums 261 00:13:34,230 --> 00:13:35,650 un tas būs izdrukāt Sveiki, nosaukums. 262 00:13:35,650 --> 00:13:41,410 >> Un pēc tam, otrais viena izmanto konversiju. 263 00:13:41,410 --> 00:13:44,690 Tātad tas automātiski konvertēt to uz int, un pēc tam dubultot int, 264 00:13:44,690 --> 00:13:46,150 un izdrukāt ka out. 265 00:13:46,150 --> 00:13:48,220 Un, mēs nedarām jebkādu pārveidošanas laikā tā 266 00:13:48,220 --> 00:13:49,594 jo kolba rūpējas par to. 267 00:13:49,594 --> 00:13:53,181 Tātad, pieņemsim iegūt šo darbību. 268 00:13:53,181 --> 00:13:54,930 Ja jums ir kolbā pieteikumu darbojas, 269 00:13:54,930 --> 00:13:58,440 Jūs varat kontrolēt-C no tā pārtraukt servera darbību. 270 00:13:58,440 --> 00:14:02,420 Un tad es darbosies mainīgos. 271 00:14:02,420 --> 00:14:11,740 >> So iesim uz localhost / sveiki / Ezras un cerams, tas būs sasveicināties ar mani. 272 00:14:11,740 --> 00:14:14,530 273 00:14:14,530 --> 00:14:20,310 >> Tātad tas bija manā vārdā, jo mainīgā maršruts, un tas piepilda to šeit. 274 00:14:20,310 --> 00:14:23,950 Tāpēc es arī parādīt ātrs piemērs dubultošanu. 275 00:14:23,950 --> 00:14:28,600 Tātad, ja jums iet uz / double / 3, tas būs izdrukāt 6. 276 00:14:28,600 --> 00:14:31,440 Tātad šis rūpējās pārvēršanas par mums. 277 00:14:31,440 --> 00:14:34,190 >> Tātad jūs varat arī darīt to ar peldēt, un kaut kas īpašs, 278 00:14:34,190 --> 00:14:37,530 ja jums ir nepieciešams norādīt kaut ko līdzīgu ceļš, kas ļauj tai pieņemt slashes, 279 00:14:37,530 --> 00:14:39,155 bet tas nedrīkst parasti ir problēma. 280 00:14:39,155 --> 00:14:41,480 281 00:14:41,480 --> 00:14:43,820 Līdz šim mēs, joprojām ir tikko atgriežoties 282 00:14:43,820 --> 00:14:46,320 virknes, kas nav ļoti interesants. 283 00:14:46,320 --> 00:14:48,730 >> Mēs patiešām varētu atgriezties burtiskā HTML string. 284 00:14:48,730 --> 00:14:54,322 Tātad kodu mēs varam ievietot kaut ko tāpat kā b-tag, lai padarītu to treknrakstā, 285 00:14:54,322 --> 00:14:56,030 bet lielāko daļu laika jums nav tiešām vēlaties 286 00:14:56,030 --> 00:14:58,420 būt rakstot HTML kodu Jūsu Python kodu. 287 00:14:58,420 --> 00:15:01,940 Tas kļūst patiešām netīrs, un tas nav labs laiks. 288 00:15:01,940 --> 00:15:06,430 >> Kolba ļauj nodalīt out HTML vērā to, ko sauc par Template, 289 00:15:06,430 --> 00:15:09,467 un tāpēc, ja jūs domājat ziņā MVC modeļa 290 00:15:09,467 --> 00:15:11,550 ka jūs esat iepazinušies ar, cerams, no darba 291 00:15:11,550 --> 00:15:15,520 ar CS50 Finance mazliet, Jūs varat domāt par Python failiem 292 00:15:15,520 --> 00:15:19,430 kā vairāk no kontroliera, kur tie mijiedarbojas ar kāda 293 00:15:19,430 --> 00:15:20,970 datu modelis jums varētu būt. 294 00:15:20,970 --> 00:15:24,900 >> Un tad tie prasa, lai Skatīts un iet informāciju šajā View 295 00:15:24,900 --> 00:15:28,120 aizpildīt informāciju HTML, ka tai ir nepieciešama. 296 00:15:28,120 --> 00:15:30,490 Un tas, ko mēs saucam šo viedokli ir Veidnes klasē. 297 00:15:30,490 --> 00:15:35,280 >> Tātad kolba izmanto citu Python modulis, kas tas automātiski 298 00:15:35,280 --> 00:15:38,620 instalēt, ja jūs VIP instalēt Kolba sauc Jinja, kas 299 00:15:38,620 --> 00:15:40,885 ļauj jums pievienot šos anotācijas uz HTML 300 00:15:40,885 --> 00:15:45,140 ka jūs redzēt uz ekrāna, kas ļauj jūs nodot lietas, piemēram conditionals, 301 00:15:45,140 --> 00:15:47,230 un cilpas uz HTML. 302 00:15:47,230 --> 00:15:51,140 >> Tātad, tas izskatās mazliet tāpat kā jūs varētu izmantot PHP ietvaros HTML failu, 303 00:15:51,140 --> 00:15:57,380 bet tas ir tikai tad, kad kolba serveris kalpo up HTML failu, 304 00:15:57,380 --> 00:16:01,610 tas darbosies šo šablonu dzinēju un apstrādāt ar šo un aizpildīt lietas. 305 00:16:01,610 --> 00:16:06,650 Tātad kolba ir render_template funkcija ka jūs varat redzēt apakšā šeit. 306 00:16:06,650 --> 00:16:14,300 Un tad, kad jūs apmeklējat šo lapu, to padarītu šo hello.html veidni, 307 00:16:14,300 --> 00:16:16,407 un tad aizpildiet šo HTML lapā. 308 00:16:16,407 --> 00:16:18,990 Tātad pieņemsim vienkārši palaist šo nekustamo ātri, un redzēt, kā tas izskatās, 309 00:16:18,990 --> 00:16:21,198 un tad es iešu caur nedaudz sīkāk. 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 Tātad, jūsu Veidnes gatavojas doties kādā mapē Veidnes. 312 00:16:30,260 --> 00:16:33,980 Tas automātiski izskatīsies laikā pēc Veidnes mapi šo veidni. 313 00:16:33,980 --> 00:16:35,615 Tātad pieņemsim atvērt šo augšu. 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 Tātad, es palaist šablonu piemēru. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> Tātad, ja es eju uz / sveiki / Ezra, tas ir tas briesmīgs, 318 00:17:03,660 --> 00:17:05,930 nepatīkams telts tag, ka man ir. 319 00:17:05,930 --> 00:17:08,050 Ļoti jauki, ļoti dinamiska. 320 00:17:08,050 --> 00:17:09,349 Es esmu liels ventilators. 321 00:17:09,349 --> 00:17:13,900 Bet kas notiek, ja Es tikai iet uz, / sveiki? 322 00:17:13,900 --> 00:17:15,220 Tātad tas vienkārši saka Hello World. 323 00:17:15,220 --> 00:17:17,678 Es neizturēja tā nosaukumu, un piepildīja to automātiski. 324 00:17:17,678 --> 00:17:22,050 Tātad, pieņemsim redzēt, kā tas bija, ka, un, kā mēs varam atbrīvoties no šīs telts varbūt. 325 00:17:22,050 --> 00:17:26,240 >> Tātad šeit, tas ir sava veida interesants piemērs, 326 00:17:26,240 --> 00:17:29,101 ja jums ir pazīstami ar to, kā slēdzis paziņojumi strādāt valodā. 327 00:17:29,101 --> 00:17:31,350 Saka, tas ir veida, piemēram, ka sava veida izkrist pa, 328 00:17:31,350 --> 00:17:34,266 kur jūs faktiski pievienoti divi dažādi ceļi uz to pašu funkciju. 329 00:17:34,266 --> 00:17:41,190 Tātad mēs pievienot / sveiks maršrutu un uz / sveiki / vārds ceļš uz Sveiki, 330 00:17:41,190 --> 00:17:45,130 un mēs norādīt using-- Python ļauj jums norādīt noklusējuma funkcija arguments-- 331 00:17:45,130 --> 00:17:48,300 Tātad, ja nav vārds, tā ja mēs ejam uz tikko / sveiki, 332 00:17:48,300 --> 00:17:50,680 tas automātiski filtrēt nosaukt ir vienāds nevienam. 333 00:17:50,680 --> 00:17:55,010 >> Tātad, mēs padarītu Template ar nosaukumu = nosaukums, 334 00:17:55,010 --> 00:17:59,510 lai tā iet ar nosaukumu parametrs vienādam ar šo vārdu funkciju parametru, 335 00:17:59,510 --> 00:18:00,730 veidni. 336 00:18:00,730 --> 00:18:04,040 Tas joprojām nav izskaidrots, kā ir izlemt, vai drukāt Hello World, 337 00:18:04,040 --> 00:18:05,100 vai izdrukāt manu vārdu. 338 00:18:05,100 --> 00:18:08,050 Tātad pieņemsim tiešām izskatās uz pašu veidni, 339 00:18:08,050 --> 00:18:11,610 un redzēt, ja tas nāk no. 340 00:18:11,610 --> 00:18:18,680 >> Tātad, šajā veidnes, mēs tiešām ir dažas nosacītu loģika, 341 00:18:18,680 --> 00:18:20,580 ko daži cilvēki apgalvo, jūs faktiski 342 00:18:20,580 --> 00:18:23,730 nevajadzētu būt daudz nosacīta loģika jūsu veidni pati. 343 00:18:23,730 --> 00:18:26,310 Tas būtu vairāk laikā pēc Kontrolieris, bet šajā piemērā 344 00:18:26,310 --> 00:18:27,476 tas ir kaut kas diezgan maza. 345 00:18:27,476 --> 00:18:31,060 Tātad šeit, mēs pārbaudām, vai nosaukums, tāpēc ja nosaukums nav vienāds ar Nav, 346 00:18:31,060 --> 00:18:33,130 ja nosaukums ir faktiski pieņemts, tad mēs 347 00:18:33,130 --> 00:18:36,210 saka Hello, vārdu ar header un telts, 348 00:18:36,210 --> 00:18:41,490 viss tas ir normāli HTML, pretējā gadījumā, mēs izdrukāt Hello, World tikai normāli. 349 00:18:41,490 --> 00:18:45,820 Tātad pāris lietas, lai paziņojuma šeit par to, kā jūs formatēt šablonu, 350 00:18:45,820 --> 00:18:49,110 ir tā, ka tie visi nosacītie apzīmējumi, 351 00:18:49,110 --> 00:18:54,475 veida, piemēram, to, kā mēs PHP, kad vēlaties ievietot kādu PHP, 352 00:18:54,475 --> 00:18:58,380 jūs izmantojat mazāk nekā jautājumu zīmi, tas ir sava veida analogs šeit 353 00:18:58,380 --> 00:19:00,140 Ar {%. 354 00:19:00,140 --> 00:19:02,130 >> Tātad šeit, mums ir mūsu nosacītu kodu. 355 00:19:02,130 --> 00:19:05,920 Un tad, kad jūs tiešām vēlaties burtiski novērtēt kaut ko, un drukāt 356 00:19:05,920 --> 00:19:08,710 tā, lai uz ekrāna, jūs izmantojiet dubultās lencēm. 357 00:19:08,710 --> 00:19:12,310 Tātad, šeit ir dubultā bikšturi, un tad mēs norādīt vārdu, 358 00:19:12,310 --> 00:19:15,500 tā, lai tas, ka tas tiks novērtēt ar mainīgo nosaukumu, kas 359 00:19:15,500 --> 00:19:18,860 tika pieņemts no padarīt veidņu funkciju, 360 00:19:18,860 --> 00:19:21,484 nevis tikai drukāšanai ārā, ja mēs tikām vaļā no tiem, 361 00:19:21,484 --> 00:19:23,150 tas vienkārši izdrukāt vārdu "vārdu." 362 00:19:23,150 --> 00:19:26,340 Tātad, tas ir kaut kas, lai noskatītos, kas paredzēti. 363 00:19:26,340 --> 00:19:29,792 >> Tātad vēl viena lieta paziņojums ir tas, ka tad, kad mēs 364 00:19:29,792 --> 00:19:31,500 vēlas izmantot render_template funkcija, 365 00:19:31,500 --> 00:19:34,490 mums tiešām ir importēt tas nepārprotami no kolbā. 366 00:19:34,490 --> 00:19:36,915 Un šis ir piemērs modularitāti kolbas, 367 00:19:36,915 --> 00:19:39,290 ka jums nav, lai importētu lietas, kas jums nav nepieciešams. 368 00:19:39,290 --> 00:19:41,290 Jūs varat vienkārši ienest funkcijas jūs faktiski 369 00:19:41,290 --> 00:19:43,450 ir nepieciešams, kas dažkārt jauki, tāpēc jums nav 370 00:19:43,450 --> 00:19:46,560 ir ir visas šīs funkcijas sēž, ka jūs nelietojat, 371 00:19:46,560 --> 00:19:49,730 bet arī, ja esat aizmirsis, ka jums nepieciešams importēt render_template, 372 00:19:49,730 --> 00:19:52,660 jūs, iespējams iegūt brīdinājumu kas ļaus jums zināt par to. 373 00:19:52,660 --> 00:19:56,700 Tā, ka ir šablonu. 374 00:19:56,700 --> 00:20:01,680 >> Tātad, mēs esam parādījuši, cik to veikt vienkāršas web lapas, 375 00:20:01,680 --> 00:20:04,947 un pievienot mazliet vairāk loģika tā, runājot par mainīgo maršrutu. 376 00:20:04,947 --> 00:20:08,280 Tas ļauj jums darīt dažādas lietas, pamatojoties uz ko URL jums iet uz, un arī tad, sniedz 377 00:20:08,280 --> 00:20:11,950 HTML mazliet vairāk jēgas par to, kā jūs vēlaties, lai padarītu lietas. 378 00:20:11,950 --> 00:20:14,210 Jums nav, lai visi Jūsu HTML jūsu Python, 379 00:20:14,210 --> 00:20:16,640 bet diezgan daudz katrs interneta lietojumprogrammu, 380 00:20:16,640 --> 00:20:21,480 jūs gatavojas vēlaties kaut kāda datu modelis, kas saistītas ar to. 381 00:20:21,480 --> 00:20:25,560 >> Un tā tradicionāli, tas kaut kas līdzīgs SQL datu bāzi. 382 00:20:25,560 --> 00:20:30,280 Un jūs varat vienkārši mijiedarboties tieši ar SQL. 383 00:20:30,280 --> 00:20:32,190 Python ir, es domāju, ka tā sauc. 384 00:20:32,190 --> 00:20:33,040 SQLite 3. 385 00:20:33,040 --> 00:20:38,454 Jūs varat vienkārši importēt SQLite 3 un izpildīt SQL vaicājumus tieši, 386 00:20:38,454 --> 00:20:40,870 bet es nezinu par jums, bet es tiešām nepatīk, vienkārši, 387 00:20:40,870 --> 00:20:42,750 rakstot out SQL vaicājumus. 388 00:20:42,750 --> 00:20:45,350 Tā ir tendence iegūt patiešām garš un sarežģīts. 389 00:20:45,350 --> 00:20:49,180 >> Un tā, kaut kas Man patīk izmantot, ir to, kas ir 390 00:20:49,180 --> 00:20:53,610 pazīstams kā ORM, kas ir objektu relāciju kartēšanu. 391 00:20:53,610 --> 00:20:56,890 Un punkts objektu relāciju kartēšanu, 392 00:20:56,890 --> 00:21:00,100 ir tas, ka pastāv divi atšķirīgi veidi, kā jūs varat domāt par datu bāzēm. 393 00:21:00,100 --> 00:21:03,240 >> Tātad, piemēram, ka Profesors Malan parasti 394 00:21:03,240 --> 00:21:07,660 izmanto klasē, ir Excel tabula, kur jums ir šīs rindas un šīs kolonnas, 395 00:21:07,660 --> 00:21:10,210 un tas ir patiešām noderīga kā tā ir pārstāvēta SQL 396 00:21:10,210 --> 00:21:13,170 un kā jūs sazināties ar to, bet vēl viens veids, ka tas ir faktiski 397 00:21:13,170 --> 00:21:16,390 lietderīgi domāt par to dažreiz, ir attiecībā uz klasēm un objektiem. 398 00:21:16,390 --> 00:21:20,420 >> Tā vietā, domāšanas Katras tabulas tādu, kam 399 00:21:20,420 --> 00:21:23,040 Šī rinda, kas ir pārliecināti, informāciju, jūs faktiski var 400 00:21:23,040 --> 00:21:26,100 domā par to kā Katrā tabulā ir klases, 401 00:21:26,100 --> 00:21:29,810 un tad katrs gadījums klase ir noteiktas īpašības. 402 00:21:29,810 --> 00:21:35,110 Tātad, šajā piemērā, tad gadījumi klase ir rindas tabulā, 403 00:21:35,110 --> 00:21:37,490 un tad katrs īpašums būtu būt kolonna tabulā. 404 00:21:37,490 --> 00:21:40,840 >> Tātad, ORM ka man patīk izmantot sauc peewee. 405 00:21:40,840 --> 00:21:43,520 Tas ir patiešām maza, kārtot līdzīgu kolbā. 406 00:21:43,520 --> 00:21:46,760 Es domāju, ka viņi iet labi kopā, bet ir daudz citu ORMS 407 00:21:46,760 --> 00:21:47,730 ka jūs varat izmantot. 408 00:21:47,730 --> 00:21:52,180 Vairāk populārs viens ir pazīstams kā SQLAlchemy, 409 00:21:52,180 --> 00:21:56,050 un es nevaru atcerēties, kāpēc es sākotnēji izvēlējās peewee pār SQLAlchemy, 410 00:21:56,050 --> 00:21:58,311 vai es varētu pateikt, kāpēc es domāju, ka tas ir labākais, 411 00:21:58,311 --> 00:22:01,060 bet mēs esam tikai gatavojas izmantot šo viens, jo es zinu, kā to izmantot. 412 00:22:01,060 --> 00:22:04,760 >> Tātad, viens jautājums ir, kāpēc Jums vajadzētu uztraukties izmantojot ORM, 413 00:22:04,760 --> 00:22:07,552 nevis tikai tieši rakstot SQL vaicājumus? 414 00:22:07,552 --> 00:22:09,760 Un es domāju, ka labākajā gadījumā ir tas, ka jums nav faktiski 415 00:22:09,760 --> 00:22:11,356 rakstīt SQL vaicājumu. 416 00:22:11,356 --> 00:22:14,480 Tas ir daudz vieglāk, jo es jums parādīs, uz darīt lietas, piemēram, atlases, ievietošanas, 417 00:22:14,480 --> 00:22:16,157 dzēšanu, jo īpaši veidojot tabulas. 418 00:22:16,157 --> 00:22:17,990 Tas ir daudz vieglāk rakstīt klases struktūru, 419 00:22:17,990 --> 00:22:22,250 nekā tas ir strukturēt Izveidot Galda apgalvojums, bet viena lieta 420 00:22:22,250 --> 00:22:25,710 jāapzinās, ka ORM centīsies visu 421 00:22:25,710 --> 00:22:28,640 izdomāt, ko visvairāk efektīva SQL vaicājums būtu, 422 00:22:28,640 --> 00:22:30,110 bet dažreiz tas izpaužas tā nepareizi. 423 00:22:30,110 --> 00:22:32,660 >> Un jo īpaši, ja esat strādājot ar lielu datu bāzi, 424 00:22:32,660 --> 00:22:35,557 Jūs varat pamanīt, ka vaicājumu kas būtu darbojas ātri, 425 00:22:35,557 --> 00:22:36,640 faktiski ilgāks. 426 00:22:36,640 --> 00:22:40,164 Un, ja paskatās ar kapuci, kā ORM tiek interpretējot ka uz SQL, 427 00:22:40,164 --> 00:22:42,080 tas varētu darīt kaut ko tiešām smieklīgi, 428 00:22:42,080 --> 00:22:44,371 tikai tāpēc, ka sava veida gestured jūsu nodomi nepareizi. 429 00:22:44,371 --> 00:22:48,080 Un ir bijuši reizes, kad Man nācās ignorēt to, un tikai 430 00:22:48,080 --> 00:22:52,429 izpildīt pats savus SQL vaicājumus, vienkārši jo tā bija analizējot kādā dīvainā veidā. 431 00:22:52,429 --> 00:22:54,220 Tātad, ir daži virs galvas, tikai tādā veidā 432 00:22:54,220 --> 00:22:58,680 ka tā apkopo jūsu paziņojumi leju SQL. 433 00:22:58,680 --> 00:23:06,200 >> Tātad, aplūkosim super ātri at vienkāršs piemērs datu modelis 434 00:23:06,200 --> 00:23:07,350 ka jūs varētu izmantot. 435 00:23:07,350 --> 00:23:11,880 Tātad, tas ir Python kods, un tā Pirmā lieta, ko jūs vēlaties darīt, ir no 436 00:23:11,880 --> 00:23:12,950 peewee imports *. 437 00:23:12,950 --> 00:23:15,850 Tātad, atšķirībā no kolba, kur jums ir Visi šie atsevišķie moduļi, 438 00:23:15,850 --> 00:23:18,125 un jūs vēlaties importēt kolbā, un uzrakstīt veidni, un daži citi 439 00:23:18,125 --> 00:23:20,690 ka mēs redzēsim vēlāk, no peewee, Jūs varat vienkārši importēt visu, 440 00:23:20,690 --> 00:23:22,290 jo tas ir diezgan neliela bibliotēka. 441 00:23:22,290 --> 00:23:26,490 >> Tātad, pirmā lieta, ko jūs vēlaties darīt, ir faktiski izveidot šo datu bāzi objektu. 442 00:23:26,490 --> 00:23:31,212 Tātad, jums ir db = SqliteDatabase, un tad nosaukums jūsu datu bāzē. 443 00:23:31,212 --> 00:23:33,170 Un tas patiešām izveidot datu bāzi objektu 444 00:23:33,170 --> 00:23:36,230 ka jūs var mijiedarboties ar, ar peewee. 445 00:23:36,230 --> 00:23:40,570 >> Un tad mums ir faktiskais modelis, mēs vēlamies izveidot. 446 00:23:40,570 --> 00:23:42,470 Tātad galds mēs vēlamies izveidot. 447 00:23:42,470 --> 00:23:47,270 Tātad, laikā peewee, katrā klasē ir pati tabula jūsu datu bāzē. 448 00:23:47,270 --> 00:23:52,800 Tātad, visi no klasēm mantot no bāzes modeļa, 449 00:23:52,800 --> 00:23:55,960 un kapitāla M modelis ir kaut kas ir noteikts peewee. 450 00:23:55,960 --> 00:24:02,162 >> Tātad, visi jūsu modeļiem vajadzētu mantot kā savu augstāko superclass, 451 00:24:02,162 --> 00:24:04,620 viņiem vajadzētu mantot no modelis, bet to, kas ir patiešām atdzist, 452 00:24:04,620 --> 00:24:07,610 ir tas, ka jūs faktiski var būt jūsu modeļi mantot viena no otras. 453 00:24:07,610 --> 00:24:10,530 Un daudz laika, jūsu datu modeļi ne vienmēr 454 00:24:10,530 --> 00:24:13,754 veikt jauku mantojuma hierarhiju, bet reizes, kad viņi dara, tas ir patiešām jauki, 455 00:24:13,754 --> 00:24:15,920 jo jums ir modelis raksturīgi viens no otra. 456 00:24:15,920 --> 00:24:19,710 >> Tātad, mēs definēts šīs klases "students", kas pārmanto modeli, 457 00:24:19,710 --> 00:24:21,170 un tas ir trīs īpašības. 458 00:24:21,170 --> 00:24:24,080 Tas ir ID, kas ir PrimaryKeyField, kas 459 00:24:24,080 --> 00:24:26,920 ir kaut kas, kas ir paredzēta pēc peewee, vārds ir CharField, 460 00:24:26,920 --> 00:24:28,490 un pakāpe ir IntegerField. 461 00:24:28,490 --> 00:24:32,260 Tātad, tas var būt vai var nebūt cik CS50 faktiski uzglabā visus 462 00:24:32,260 --> 00:24:33,650 studentu pakāpēs. 463 00:24:33,650 --> 00:24:36,060 Tas nav, bet tas ir, kā es varētu darīt to. 464 00:24:36,060 --> 00:24:37,920 >> Un tad tas ir, laikā šajā klasē, un tas 465 00:24:37,920 --> 00:24:41,620 ir kaut kas jūs varat darīt ar Python, jūs varat būt ligzdotu nodarbības. 466 00:24:41,620 --> 00:24:43,920 Un tas ir kaut kas kas ir vajadzīgs, ko peewee. 467 00:24:43,920 --> 00:24:47,250 Tātad, šī klase Meta, jums ir noteikt, ka datu bāze ir 468 00:24:47,250 --> 00:24:49,830 vienāds ar objekta ka mēs izveidojām iepriekš. 469 00:24:49,830 --> 00:24:54,339 Un tas saka, ko fails ir šī tabula faktiski tiks ietverti. 470 00:24:54,339 --> 00:24:57,130 Tātad tas ir kaut kas jums ir darīt laikā visiem saviem modeļiem. 471 00:24:57,130 --> 00:24:59,380 Jums vienkārši ir, lai precizētu šajā Meta klasē 472 00:24:59,380 --> 00:25:01,400 ka datu bāze ir vienāda ar db. 473 00:25:01,400 --> 00:25:03,940 Tātad, ko es parasti daru, ja man ir ķekars dažādu modeļu, 474 00:25:03,940 --> 00:25:05,910 ir tā, ka man ir viena bāze modelis, ka es parasti 475 00:25:05,910 --> 00:25:08,839 zvaniet "bāzes modelis" kas ir Meta klasi, 476 00:25:08,839 --> 00:25:10,380 un tā nosaka datubāzi vienāds ar db. 477 00:25:10,380 --> 00:25:13,710 Un tad visas manas turpmākiem modeļiem mantos no šīs bāzes klase. 478 00:25:13,710 --> 00:25:16,760 Un tad man nav jāuztraucas par to, kurā Meta klasi. 479 00:25:16,760 --> 00:25:21,490 >> Tātad, ja tas patiesībā izpaužas apkopoti lejup stājas SQL, 480 00:25:21,490 --> 00:25:24,875 izskatās, ka šī lieta šķebinošs leju šeit, "Izveidot tabulu students ID skaitlim, 481 00:25:24,875 --> 00:25:26,020 "Neatkarīgi. 482 00:25:26,020 --> 00:25:30,002 >> Un, es domāju, ka tas ir īsāks, šis SQL vaicājumu tieši šeit, 483 00:25:30,002 --> 00:25:32,960 bet, ja paskatās šajā klasē šeit jūs varat redzēt, tieši to, kas notiek. 484 00:25:32,960 --> 00:25:36,116 Jūs varat redzēt, ko veidu jomās tur ir, ko viņi sauc par, 485 00:25:36,116 --> 00:25:38,115 un jā, es domāju, ka Aplūkojot šo Python kodu 486 00:25:38,115 --> 00:25:43,340 ir daudz vairāk lasāms nekā cenšos rakstīt šo SQL vaicājumu. 487 00:25:43,340 --> 00:25:45,990 >> Tā, lai faktiski izmantot datu bāzi, 488 00:25:45,990 --> 00:25:48,470 mums ir savienot ar to, Python. 489 00:25:48,470 --> 00:25:52,770 Tātad, es parasti uzrakstīt funkciju sauc initialize_db ka dara divas lietas. 490 00:25:52,770 --> 00:25:54,880 Tā veic datu bāzē objekts db un tas 491 00:25:54,880 --> 00:25:58,360 savieno ar to, kas tikko atver līdz iedaļā datu bāzē. 492 00:25:58,360 --> 00:26:00,860 Ja jūs vienkārši darbojas gan mājaslapa uz jūsu vietējo mašīna, 493 00:26:00,860 --> 00:26:04,320 tas nav super liels galā jāuztraucas par savieno un atvienojot, 494 00:26:04,320 --> 00:26:06,885 bet, ja jūs izmantojat tā mājas lapā, jūs 495 00:26:06,885 --> 00:26:10,010 vēlaties pārliecināties, ka, ikreiz, kad lietotājs savieno ar to, kad tie noslēguma 496 00:26:10,010 --> 00:26:12,270 mājas lapā, tās atvienot, lai jūs nav ķekars cilvēku, kas saistīti 497 00:26:12,270 --> 00:26:14,480 ar savu datu bāzi visu uzreiz. 498 00:26:14,480 --> 00:26:16,370 >> Un tad, kad jūs savienojumu ar datu bāzi, 499 00:26:16,370 --> 00:26:20,832 jūs vēlaties, lai izsauktu db.create_tables, un uzskaitīt modeļus, ko vēlaties 500 00:26:20,832 --> 00:26:21,540 izveidot tabulas. 501 00:26:21,540 --> 00:26:23,950 Tātad šeit, es tikai vēlos, lai izveidot to par šo students. 502 00:26:23,950 --> 00:26:28,070 Un tad, kas ir svarīgi, ir precizēt drošu = True visvairāk laika. 503 00:26:28,070 --> 00:26:30,380 Tātad, ko šis apgalvojums darīs, ir tas, ka 504 00:26:30,380 --> 00:26:33,580 rada tabulās studenta modelis, bet tikai 505 00:26:33,580 --> 00:26:36,109 ja šī tabula ir ne jau ir izveidots. 506 00:26:36,109 --> 00:26:37,400 Tas ko drošas precizēts. 507 00:26:37,400 --> 00:26:39,150 Tātad tas nav pārrakstīt savu esošo galds, 508 00:26:39,150 --> 00:26:41,525 tas būs tikai izveidot jaunu tabula, ja nav viens tur. 509 00:26:41,525 --> 00:26:45,090 Tātad, jūs varētu vienkārši radīt tabulas reizi izmantojot SQL. 510 00:26:45,090 --> 00:26:49,410 Un tad ir šīs datubāzes sēde tur, un pēc tam izveidot savienojumu ar katru reizi, 511 00:26:49,410 --> 00:26:52,450 bet tas parasti ir jauki, tikai, lai likt šajā create_tables zvanu, 512 00:26:52,450 --> 00:26:55,550 tā ka, ja jūs kādreiz izdzēst savu datubāze, palaižot savu web 513 00:26:55,550 --> 00:26:57,960 app atkal, tā būs jauna to. 514 00:26:57,960 --> 00:27:00,730 >> Tātad, tikai pārliecinieties, ka droša ir norādīts, ka True, 515 00:27:00,730 --> 00:27:03,580 vai jūs atradīsiet savus datus tieši kļūst clobbered katru reizi. 516 00:27:03,580 --> 00:27:06,380 Un tad, jūs varat vienkārši piezvanīt initialize_db izveidot 517 00:27:06,380 --> 00:27:09,820 savienojums, un izveidot galdi, ja nepieciešams. 518 00:27:09,820 --> 00:27:13,150 >> Tātad, visbiežāk lieta ka jūs vēlaties darīt, 519 00:27:13,150 --> 00:27:15,920 vai viens no visbiežāk lietām, ir faktiski ievietot lietas 520 00:27:15,920 --> 00:27:17,170 savā datu bāzē. 521 00:27:17,170 --> 00:27:19,430 Un tā, nevis ņemot rakstīt ievietot 522 00:27:19,430 --> 00:27:21,990 paziņojums ar visiem noteikts vērtības, 523 00:27:21,990 --> 00:27:24,650 jūs faktiski var zvanīt funkcija uz studentu klasē. 524 00:27:24,650 --> 00:27:28,200 Tātad, ja jums izveidot klasi kas manto no modeļa, 525 00:27:28,200 --> 00:27:30,200 tas ir tas radītu metodi. 526 00:27:30,200 --> 00:27:33,870 >> Tātad, jūs klases name.create, un norādāt parametrus 527 00:27:33,870 --> 00:27:35,260 ka jūs vēlaties, lai iet ar. 528 00:27:35,260 --> 00:27:39,200 Tātad, ja es gribu pievienot dažas studentus mūsu CS50 grade grāmata piemēram, 529 00:27:39,200 --> 00:27:41,820 Es nolikšu Dāvidu, kurš ir ļoti labs rādītājs, viņam ir 95. 530 00:27:41,820 --> 00:27:45,100 Un pats, kurš nedara tik labi CS50, man ir 50. 531 00:27:45,100 --> 00:27:47,600 Un tā, jauka lieta par ko tas rada funkcija dara, 532 00:27:47,600 --> 00:27:53,040 ir tā, ka tas atgriež gadījums, vai rinda, ka tas izveidots galda, 533 00:27:53,040 --> 00:27:55,750 un tā, tad jums uzglabāt, ka pēc mainīgs, un darbs ar to vēlāk. 534 00:27:55,750 --> 00:27:58,830 Jūs varat mainīt apkārt, kas Es rādām piemēru. 535 00:27:58,830 --> 00:28:03,050 >> Ievērojiet, ka man nav ir jānorāda ID, 536 00:28:03,050 --> 00:28:09,340 jo tā tas ir PrimaryKeyField, tas automātiski 537 00:28:09,340 --> 00:28:10,930 pieauguma, ja jums nav jānorāda to. 538 00:28:10,930 --> 00:28:12,250 Un, patiesībā, jūs, iespējams, nedrīkst norādīt to, 539 00:28:12,250 --> 00:28:14,810 tāpēc, ka jūs varētu nejauši clobber kāds cits ID. 540 00:28:14,810 --> 00:28:16,830 Un jūs vēlaties, lai pārliecināts, ka tas ir unikāls. 541 00:28:16,830 --> 00:28:20,662 >> Tātad, faktiski, visvairāk kopīga lieta, ko vēlaties darīt, 542 00:28:20,662 --> 00:28:22,620 ir iespējams izvēlēties out Datubāzes, kad jūs 543 00:28:22,620 --> 00:28:24,078 ir daudz informācijas tur. 544 00:28:24,078 --> 00:28:27,360 Un tā, ja jūs vēlaties, lai iegūtu visu, tā ekvivalents izvēlieties zvaigzne 545 00:28:27,360 --> 00:28:30,940 no studentiem paziņojumu, to būtu vienkārši student.select. 546 00:28:30,940 --> 00:28:34,380 Un tas dos jums atpakaļ masīvs ar visiem students objekti tajā 547 00:28:34,380 --> 00:28:35,770 ka jūs atkārtot pār vēlaties. 548 00:28:35,770 --> 00:28:37,019 Jūs varat iegūt lietas no tā. 549 00:28:37,019 --> 00:28:39,310 Un lielāko daļu laika, jūs ne tikai gribu darīt izvēlēties, 550 00:28:39,310 --> 00:28:40,935 jūs tiešām vēlaties, lai norādītu kaut ko. 551 00:28:40,935 --> 00:28:44,580 Un tā, jūs varat ķēde Kopā šie funkcija zvani, 552 00:28:44,580 --> 00:28:48,830 tāpat kā jūs varētu ķēde kopā apgalvojumi SQL. 553 00:28:48,830 --> 00:28:53,002 Tātad jūs varat darīt student.select (). Kur šajā piemērā. 554 00:28:53,002 --> 00:28:54,710 Un tad, jūs varat precizētu nosacījumus, 555 00:28:54,710 --> 00:28:57,880 tikai izmantojot parasto Python Booleans pārbaudīt lietas. 556 00:28:57,880 --> 00:29:02,110 >> Tātad, šajā gadījumā, jūs vēlaties ierobežot to, ko jūs izvēlētos, lai, 557 00:29:02,110 --> 00:29:06,790 kur student.grade ir vienāds ar 50, un student.name ir vienāds ar Ezra, 558 00:29:06,790 --> 00:29:09,130 tā ka būs tikai iegūt mani no tā. 559 00:29:09,130 --> 00:29:11,340 Un paziņojums, kādu patiešām smalks lieta šeit ir 560 00:29:11,340 --> 00:29:15,570 ka, ja jūs vēlaties, lai precizētu un / un vai vai / vai, 561 00:29:15,570 --> 00:29:19,840 Python, jūs parasti izmantojat, Es domāju, ka vārds "un" faktiski, 562 00:29:19,840 --> 00:29:23,351 bet šeit jūs izmantojat vienu aizvieto & zīmes, kas parasti ir Bitu līmeņa uzņēmējs, 563 00:29:23,351 --> 00:29:25,600 bet šajā īpašajā gadījumā, tikai veids peewee to dara, 564 00:29:25,600 --> 00:29:27,660 Jūs lietojat vienotais Ampersand precizēt "un". 565 00:29:27,660 --> 00:29:29,451 Tas ir kaut kas, Es jauc daudz, 566 00:29:29,451 --> 00:29:32,530 bet tas nenāk klajā ka daudz praksē. 567 00:29:32,530 --> 00:29:36,350 >> Un tad, kad jums ir visas studenti izrakstās no datubāzes, 568 00:29:36,350 --> 00:29:39,420 pēc tam, kad tas ir izdarīts jūs izvēlieties un jūsu apģērbs vai kāds, 569 00:29:39,420 --> 00:29:42,334 Jūs varat izmantot foreach cilpu, tāpat kā normāli Python, 570 00:29:42,334 --> 00:29:44,500 ar jebkāda veida iterator vai ar jebkāda veida masīvu. 571 00:29:44,500 --> 00:29:46,333 Tātad jūs varat darīt, lai s in student.select (. whe) 572 00:29:46,333 --> 00:29:52,930 re (Student.grade <75), un tāpēc tas būs atkārtot pār katru studentu tabulā 573 00:29:52,930 --> 00:29:56,260 kuru rādītājs ir mazāks par 75, kas Šajā gadījumā, joprojām ir tikai man. 574 00:29:56,260 --> 00:29:59,218 Un tad jūs varētu darīt kaut ko laikā ka cilpa, piemēram, sūtīt man e-pastu 575 00:29:59,218 --> 00:30:01,680 un man tiešām pateikt vērsties manu problēmu kopas. 576 00:30:01,680 --> 00:30:04,550 >> Tātad, vēl viena lieta, jūs varat darīt, tas ir patiešām viegli 577 00:30:04,550 --> 00:30:06,460 atjaunināt rindas ietvaros tabulā. 578 00:30:06,460 --> 00:30:08,720 Tātad, atcerieties atpakaļ šeit, Jūsu kad es ievietota, 579 00:30:08,720 --> 00:30:11,440 Paņēmu vērtību, kas bija atpakaļ student.create, 580 00:30:11,440 --> 00:30:14,920 un es piešķir tai nosaukumu sauc Ezra. 581 00:30:14,920 --> 00:30:18,995 Un tāpēc tagad, jūs varat mainīt vērtībām, kas šajā gadījumā, 582 00:30:18,995 --> 00:30:20,870 tāpat kā jūs būtu normāla klase Python. 583 00:30:20,870 --> 00:30:25,060 >> Tātad jūs varat iestatīt ezra.grade = 95 un kas atjaunina lokālo kopiju, 584 00:30:25,060 --> 00:30:28,380 bet, ja jūs patiešām vēlaties apņemties šīm izmaiņām datu bāzē, 585 00:30:28,380 --> 00:30:31,410 Jums ir, lai izsauktu ezra.save, lai jūs sauc .save metode 586 00:30:31,410 --> 00:30:32,650 uz instancē. 587 00:30:32,650 --> 00:30:38,085 >> Un tāpēc tagad, esmu veiksmīgi mainījušies mana klases ietvaros datubāzē. 588 00:30:38,085 --> 00:30:41,210 Tātad, tad pieņemsim, ka es saņemt nozvejotas mainīt manu pakāpes ietvaros datubāzē. 589 00:30:41,210 --> 00:30:44,126 Profesors Malan, iespējams, gatavojas vēlaties dzēst mani no klases, 590 00:30:44,126 --> 00:30:48,630 un lai jūs varat zvanīt .delete instance metode tikai par šo lietu. 591 00:30:48,630 --> 00:30:51,674 >> Tātad, ja jūs vēlaties, lai iet atpakaļ šīs cilpas šeit, 592 00:30:51,674 --> 00:30:53,465 un patiesībā, tā vietā nosūtot e-pastu visu 593 00:30:53,465 --> 00:30:56,577 no studentiem, kuru pakāpe ir mazāka nekā 75, tu gribēji, lai tos dzēstu, 594 00:30:56,577 --> 00:30:58,660 Šajā cilpa jūs varētu zvaniet s.delete instancē. 595 00:30:58,660 --> 00:31:04,180 596 00:31:04,180 --> 00:31:07,780 Un ļoti pēdējā lieta, ko vēlaties darīt, ir, kad jūs izveidot savienojumu, 597 00:31:07,780 --> 00:31:10,350 un esat pabeidzis ar savu darbu, jūs vēlaties, lai izsauktu db.close, 598 00:31:10,350 --> 00:31:13,190 kur db ir tas, ka datu bāze iebilst, ka mums bija pirms tam. 599 00:31:13,190 --> 00:31:18,290 Un jūs vēlaties, lai pārliecinātos, ka viss tiek slēgts no. 600 00:31:18,290 --> 00:31:18,790 >> Cool. 601 00:31:18,790 --> 00:31:22,410 Tāpēc tagad, man ir piemērs pieteikumu. 602 00:31:22,410 --> 00:31:26,880 Es esmu veida pre-made viss vienkārši tā, ka nebūs jebkuru dzīvu kodēšanas 603 00:31:26,880 --> 00:31:30,220 kļūdas, bet mēs varam iet cauri tas un redzēt, kā jūs varētu likt kolbā 604 00:31:30,220 --> 00:31:33,685 un peewee kopā, un veikt vienkāršu app. 605 00:31:33,685 --> 00:31:38,680 Es aicinu to CS50 skaļas frāzes, un tas ir veida vienkāršu blogu platforma. 606 00:31:38,680 --> 00:31:41,150 >> Tātad, pirmkārt, es palaist to un parādīt, kā tas izskatās, 607 00:31:41,150 --> 00:31:42,890 un tad mēs varam skatīties vairāk uz kodu. 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 Labi, tāpēc pieņemsim tikai palaist to. 610 00:32:02,830 --> 00:32:14,040 611 00:32:14,040 --> 00:32:17,250 Cool, es ņemšu veikt šo nedaudz mazāks. 612 00:32:17,250 --> 00:32:20,000 Tas nav ļoti skaista, tikai tāpēc, ka Man nebija darīt daudz CSS, 613 00:32:20,000 --> 00:32:23,255 bet ko tas ir, tā ir Šī datu bāze blog posts, 614 00:32:23,255 --> 00:32:25,630 un tas iet cauri visiem viņiem, un tas viņiem parādīt 615 00:32:25,630 --> 00:32:28,170 lapā, lai uz jaunāko. 616 00:32:28,170 --> 00:32:30,920 Un tā tie ir tikai daži amati ka man bija saglabāti datu bāzē. 617 00:32:30,920 --> 00:32:35,680 >> Tātad, ja mēs gribam, lai radītu jaunu post, mēs varam doties uz Pievienot jaunu ziņu, 618 00:32:35,680 --> 00:32:42,720 un mēs varam ieiet nosaukumā post, tāpēc kaut kā, CS50 seminārs. 619 00:32:42,720 --> 00:32:45,360 620 00:32:45,360 --> 00:32:46,735 Wow, tiešām bauda semināru. 621 00:32:46,735 --> 00:32:51,070 622 00:32:51,070 --> 00:32:52,270 >> Cool. 623 00:32:52,270 --> 00:32:56,060 Tad jūs nospiežat amatu, un tas būs novirzīt jūs atpakaļ uz mājas lapu, 624 00:32:56,060 --> 00:33:00,039 un tad jūs redzēsiet, ka jaunākā ziņa tika pievienots. 625 00:33:00,039 --> 00:33:01,580 Un mums vēl ir visi tie, kas tur. 626 00:33:01,580 --> 00:33:08,080 Tāpēc tagad, pieņemsim soli pa visi kods un redzēt, kā tas tiek īstenots. 627 00:33:08,080 --> 00:33:11,995 >> Tātad, es domāju, ka pirmā lieta, ka pieņemsim ieskatieties, ir faktiski modeļi. 628 00:33:11,995 --> 00:33:14,120 Vairāki laika daudz, kad jūs projektēšana kaut ko, 629 00:33:14,120 --> 00:33:17,036 Jūs vēlaties, lai padomātu vispirms par to, kā jūs gatavojas pārstāvēt savus datus, 630 00:33:17,036 --> 00:33:22,915 un tad dizains lietas ap ka, tā ka viss ir jēga. 631 00:33:22,915 --> 00:33:25,290 Un tas ir patiesībā, kā es darīja to, kad man bija padarīt šo, 632 00:33:25,290 --> 00:33:28,030 Es apsēdos un domāju, Ko es gribu kādā amatā. 633 00:33:28,030 --> 00:33:32,130 >> Tātad, šeit, mums ir tāda pati struktūra ka man bija minēts iepriekš, 634 00:33:32,130 --> 00:33:33,755 kur mēs db = Sqldatabase ("posts.db"). 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 Patiesībā, jūs, iespējams, nevēlaties uz cietā koda savu vārdu datubāzēs. 637 00:33:40,980 --> 00:33:43,730 Tas būtu iespējams, būtu parametrs kas ir glabāti kaut kur, varbūt 638 00:33:43,730 --> 00:33:45,940 ar config failu, bet neliels piemērs, piemēram, tas, 639 00:33:45,940 --> 00:33:48,310 tas ir labi, lai cieto kods, kas. 640 00:33:48,310 --> 00:33:53,510 >> Tāpēc tagad mums ir šis amats klasē, kas pārmanto no bāzes modeli. 641 00:33:53,510 --> 00:33:56,930 Un tas atkal ir,, tad ID = PrimaryKeyField. 642 00:33:56,930 --> 00:34:02,250 Patiesībā, ja jums nav jānorāda, ja es tiešām got atbrīvoties no šī, 643 00:34:02,250 --> 00:34:07,152 tad peewee mēs parūpēsimies par automātiski radot šo ID lauku, 644 00:34:07,152 --> 00:34:09,360 un tas automātiski padarītu to PrimaryKey, kas 645 00:34:09,360 --> 00:34:12,485 Es domāju, ka ir ļoti jauki, jo parasti, tas ir kaut kas jūs vēlaties, lai būtu, 646 00:34:12,485 --> 00:34:16,239 bet es gribētu likt to konkrēti, tieši tāpēc es atceros, ka tas ir tur. 647 00:34:16,239 --> 00:34:19,480 Bet, ja jums nav jānorāda, ka, ka būs tur automātiski. 648 00:34:19,480 --> 00:34:22,198 >> Tātad, man ir datums, kurā ir DateTimeField, un visi 649 00:34:22,198 --> 00:34:24,864 Šie dažādie lauki, ja jums apskatīt peewee dokumentāciju, 650 00:34:24,864 --> 00:34:28,920 tā došu jums sarakstu ar dažādu lauku tipi, ko var izmantot. 651 00:34:28,920 --> 00:34:34,440 Attiecībā uz lielāko daļu, tas ir analogs to, ko jūs varētu redzēt SQL. 652 00:34:34,440 --> 00:34:37,699 Tātad ir CharField A VarCharFields, TextFields, 653 00:34:37,699 --> 00:34:40,550 kas ir ļoti ilgi teksti, piemēram, blog post 654 00:34:40,550 --> 00:34:44,460 potenciāli, DateTimeFields, DoubleFields, FloatFields, 655 00:34:44,460 --> 00:34:46,100 visas lietas, piemēram, ka. 656 00:34:46,100 --> 00:34:51,570 >> Un jūs varat pāriet uz citu argumentu uz to, ko es neprecizēja šeit. 657 00:34:51,570 --> 00:34:55,719 Say, piemēram, jūs nevēlējās ļauj divas amata vietas, ir pats nosaukums, 658 00:34:55,719 --> 00:34:59,672 jūs varētu norādīt kaut kas līdzīgs unikāls = True, 659 00:34:59,672 --> 00:35:02,880 un tas ir tikai papildus parametrs lauks, ka tad, kad tā apkopo to uz leju 660 00:35:02,880 --> 00:35:06,865 uz SQL, tas norādīs ka tas ir unikāls. 661 00:35:06,865 --> 00:35:09,740 Jūs varat arī norādīt kaut ko līdzīgu nav spēkā visas citas lietas 662 00:35:09,740 --> 00:35:11,750 jūs parasti darīt SQL. 663 00:35:11,750 --> 00:35:16,020 Tātad, tas ir diezgan vienkāršs modelis, kas ir datumu. 664 00:35:16,020 --> 00:35:19,460 Ievērojiet šeit, ietvaros DateTimeField, Es norādīts, kāda noklusējuma ir. 665 00:35:19,460 --> 00:35:22,560 Es norādīts, ka tas ir datetime.datetime.now, 666 00:35:22,560 --> 00:35:24,920 jo no tā, ka Tas izpaužas novērtēts, 667 00:35:24,920 --> 00:35:28,750 tas tiešām novērtē datetime.now kad 668 00:35:28,750 --> 00:35:32,110 tā izpaužas ievietota datu bāzē. 669 00:35:32,110 --> 00:35:34,760 >> Es domāju, ka man ir divkāršot to pārbaudītu, 670 00:35:34,760 --> 00:35:38,222 bet, ja jūs kaut kas līdzīgs šim, tad tas tiešām novērtē, ka reiz, 671 00:35:38,222 --> 00:35:40,180 un pēc tam datetime vienmēr ir tāds pats. 672 00:35:40,180 --> 00:35:44,240 Tātad, tikai tad, ja jūs darāt kaut ko ar datetimes, vēlreiz pārbaudiet 673 00:35:44,240 --> 00:35:47,080 ka tas izvērtētu, kad faktiski izpaužas ievietota, vai cits 674 00:35:47,080 --> 00:35:48,780 jūs varētu sajaukt. 675 00:35:48,780 --> 00:35:51,221 >> Nosaukums ir tikai CharField, kas tur 676 00:35:51,221 --> 00:35:53,970 Ir vairāk argumenti jūs varat iet precizējot, tieši cik ilgi jūs 677 00:35:53,970 --> 00:35:56,170 vēlaties, lai to, bet šeit, tas nav īsti jautājums. 678 00:35:56,170 --> 00:35:58,687 Un teksts būs teksts visa pastu 679 00:35:58,687 --> 00:36:01,020 un kas notiek, lai būtu Teksta lauks tikai tāpēc, ka jūs vēlaties 680 00:36:01,020 --> 00:36:03,370 lai tā varētu būt diezgan garš virkne. 681 00:36:03,370 --> 00:36:05,970 >> Tad mums ir šī Meta apakšklase ka tikko 682 00:36:05,970 --> 00:36:11,250 precizēts, ka mēs gribam datubāzē ja tas ir faktiski atvērta augšup 683 00:36:11,250 --> 00:36:14,267 būt BP objekts, kas mums ir šeit. 684 00:36:14,267 --> 00:36:16,350 Un pēdējā lieta, mums ir šeit, ir tikai šī funkcija 685 00:36:16,350 --> 00:36:18,120 ka mēs ejam izmantot no mūsu galvenajiem app 686 00:36:18,120 --> 00:36:23,970 inicializēt datu bāzi, lai izveidotu savienojumu ar tā, un pēc tam, lai izveidotu Post tabulu. 687 00:36:23,970 --> 00:36:26,880 >> Tagad aplūkosim galvenās app pati. 688 00:36:26,880 --> 00:36:30,800 Tātad šī ir diezgan mazliet ilgāk nekā tie, 689 00:36:30,800 --> 00:36:34,840 ka mēs esam redzējuši iepriekš, bet, cerams, ne pārāk slikti. 690 00:36:34,840 --> 00:36:37,140 Tātad, ļaujiet man paplašināt šo out. 691 00:36:37,140 --> 00:36:38,370 Labi. 692 00:36:38,370 --> 00:36:42,070 >> Tātad, paziņojums un top es ievesti visu ķekars citas lietas 693 00:36:42,070 --> 00:36:44,129 no kolba, ka mums ir ne tiešām redzējis. 694 00:36:44,129 --> 00:36:46,670 Un, cerams, mēs varam iet cauri katrs no tiem viens ar vienu 695 00:36:46,670 --> 00:36:49,420 un runāt mazliet vairāk par tos, sakārtoti pēc piemēru. 696 00:36:49,420 --> 00:36:51,380 Tātad, mums ir kolbas, un render_template, 697 00:36:51,380 --> 00:36:54,370 ko mēs esam redzējuši iepriekš, Šis pieprasījums objekts, 698 00:36:54,370 --> 00:37:00,400 kas nāks klajā, kad mēs skatāmies uz to, kā forma, kas man rādīja patiešām 699 00:37:00,400 --> 00:37:01,170 darbojas. 700 00:37:01,170 --> 00:37:04,850 Novirzīt, kas ļauj novirzīt atpakaļ no Create New Post 701 00:37:04,850 --> 00:37:11,710 atpakaļ uz sākotnējo mājas lapā, un pēc tam URL, kas ir kaut kas, kas ļauj jums 702 00:37:11,710 --> 00:37:15,550 izrēķināt kur uz mājas lapa konkrētais lapa. 703 00:37:15,550 --> 00:37:17,810 >> Tātad, nākamais lieta, ko es daru, ir man imports 704 00:37:17,810 --> 00:37:21,550 visu informāciju no modeļiem faili, kas mums bija tikai meklē. 705 00:37:21,550 --> 00:37:23,140 Un, jā. 706 00:37:23,140 --> 00:37:28,720 >> Tātad, kaut kas cits, kas jauns, kas nāk up, kad jūs nodarbojas ar, 707 00:37:28,720 --> 00:37:31,850 īpaši datu bāzes, ir tas, ka jūs varat norādīt 708 00:37:31,850 --> 00:37:35,110 funkcija, kas izpaužas sauc pirms katru pieprasījumu, un funkcija, kas izpaužas 709 00:37:35,110 --> 00:37:39,690 sauc pēc katras pieprasījuma, izmantojot šo funkcijai dekorators app.before pieprasījums. 710 00:37:39,690 --> 00:37:42,324 >> Un tā tas saņems izpildīts kur šī funkcija ir. 711 00:37:42,324 --> 00:37:44,240 Šis nav jābūt izsaukts pirms pieprasījuma 712 00:37:44,240 --> 00:37:46,281 bet parasti tas ir kaut kas saprātīgi, lai izsauktu to. 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 Jūs varat norādīt neatkarīgi funkciju Jūs vēlaties saņemt sauc tur, 715 00:37:51,650 --> 00:37:56,330 tāpēc esmu norādījis šo initialize_db funkcija, kas mums bija atpakaļ modeļiem 716 00:37:56,330 --> 00:38:02,390 fails, tāpēc pirms katras pieprasījuma jums vēlas, lai izveidotu savienojumu ar datu bāzi. 717 00:38:02,390 --> 00:38:04,560 >> Ir divi dažādi veidi, kā jūs varat darīt. 718 00:38:04,560 --> 00:38:10,830 Jūs varat darītapp., I uzskatu, ka tas ir after_request. 719 00:38:10,830 --> 00:38:13,800 Un starpība starp after_request un teardown_request, 720 00:38:13,800 --> 00:38:17,590 ir tas, ka after_request notiks tikai ja pieprasījums faktiski bija spēkā. 721 00:38:17,590 --> 00:38:20,440 Un tā, tikai tad, ja pieprasījums bija veiksmīga, 722 00:38:20,440 --> 00:38:22,490 ja nekas nogāja greizi, bet teardown_request 723 00:38:22,490 --> 00:38:26,300 notiek gadījumā veiksmīgs pieprasījums, vai gadījumā, ja kļūdu. 724 00:38:26,300 --> 00:38:28,252 >> Tātad, parasti, jūs vēlaties izmantot teardown_request, 725 00:38:28,252 --> 00:38:30,460 ja jūs vēlaties darīt kaut kas, jo īpaši atšķirīgs 726 00:38:30,460 --> 00:38:31,470 gadījumā, ja kļūdu. 727 00:38:31,470 --> 00:38:35,122 Bet tikai par datu bāzē slēgšanu, vai tas izdodas, vai, ja tas neizdodas, 728 00:38:35,122 --> 00:38:37,080 mēs jūs vēlaties atvienot no datu bāzes. 729 00:38:37,080 --> 00:38:41,240 Tā to sauc, db.close uz db objektu. 730 00:38:41,240 --> 00:38:43,740 >> Ievērojiet, ka teardown_request uzņem izņēmums. 731 00:38:43,740 --> 00:38:46,781 Tātad jūs varat pārbaudīt, ja tur bija patiesībā kļūda, kad tā tika slēgtas, 732 00:38:46,781 --> 00:38:49,390 bet šeit, cerams, tur nav visai daudz kļūdu, 733 00:38:49,390 --> 00:38:52,720 tāpēc mēs esam tikai veida ignorējot to. 734 00:38:52,720 --> 00:38:55,990 >> Labi, bet pārējie no tā nav pārāk slikti. 735 00:38:55,990 --> 00:39:02,240 Tātad, kad mēs ejam uz mājas lapā, mēs padarīti šo home.html Template 736 00:39:02,240 --> 00:39:03,490 kas pavērs. 737 00:39:03,490 --> 00:39:06,240 Caurlaide ir amatā vienāds ar, un ko tas 738 00:39:06,240 --> 00:39:10,260 tas ir, atcerieties, mēs esam šo ziņu modelis, lai mēs izvēlētos visus amatus, 739 00:39:10,260 --> 00:39:13,890 un tad cita lieta, jūs varat darīt, Jūs varat norādīt, ja klauzulas, 740 00:39:13,890 --> 00:39:16,910 Jūs varat norādīt pasūtīt ar, un tāpēc mēs ņemam 741 00:39:16,910 --> 00:39:18,820 visi no stabiem, kas iegūt atlasīts, un pēc tam 742 00:39:18,820 --> 00:39:22,590 mēs pasūtīt tos ar post.date.descending. 743 00:39:22,590 --> 00:39:25,030 Un tas norādīs, kad tie faktiski nāk ārā, 744 00:39:25,030 --> 00:39:29,250 visjaunāko būs ļoti pirmais. 745 00:39:29,250 --> 00:39:31,420 >> Un tad mēs iet, kas stājas home.html veidni, 746 00:39:31,420 --> 00:39:34,240 tāpēc pieņemsim faktiski atvērt ka Template tiešām ātri, 747 00:39:34,240 --> 00:39:36,760 un to apskatīt, kā tas strādā. 748 00:39:36,760 --> 00:39:42,130 Un tas nav liels HTML, bet cerams, mēs varam koncentrēties uz Python. 749 00:39:42,130 --> 00:39:46,960 >> Tātad tur ir saite uz pievienot jaunu Post, un tāpēc tas norāda ceļu 750 00:39:46,960 --> 00:39:51,580 ietvaros kolbas, ka mēs definēt, kas ir tepat. 751 00:39:51,580 --> 00:39:56,310 Tas ir jauns amats maršruts, un mēs norādīt, ka šeit. 752 00:39:56,310 --> 00:40:00,450 Un tā tas ir saite, kas būs pēc tam iet lai šajā maršrutā ietvaros kolbas serveri. 753 00:40:00,450 --> 00:40:03,820 >> Jo vairāk interesanta lieta tas ir par cilpu šeit. 754 00:40:03,820 --> 00:40:07,685 Tātad mēs norādīt, ka šis post parametrs, kas 755 00:40:07,685 --> 00:40:09,560 tika pārgāja render_template funkcija, 756 00:40:09,560 --> 00:40:13,550 katram amatam Post objekts, kas izpaužas pieņemts. 757 00:40:13,550 --> 00:40:16,600 Mēs vēlamies, lai izdrukātu amata nosaukums, H1, 758 00:40:16,600 --> 00:40:21,930 un tad tālāk, mēs vēlamies, lai izdrukātu post tekstu ietvaros punktu. 759 00:40:21,930 --> 00:40:25,710 >> Un šeit mēs varam faktiski zvanīt Python funkciju, 760 00:40:25,710 --> 00:40:35,130 tāpēc mēs varam zvanīt strftime, ST-RF-laiks, un jūs varat pāriet formāta virknes 761 00:40:35,130 --> 00:40:37,064 ka jūs vēlaties izdrukāt datus izklāstīti. 762 00:40:37,064 --> 00:40:39,980 Tātad tas ir diezgan jauki, ka jūs varat tiešām aicinu šo Python funkciju 763 00:40:39,980 --> 00:40:41,090 no iekšienes šeit. 764 00:40:41,090 --> 00:40:44,370 Jums nav jādara formatējumu uz kontrolieris pusē, jo tiešām, 765 00:40:44,370 --> 00:40:47,770 formatējumu datumu ir kaut kas Jūs vēlaties, lai risinātu ietvaros View. 766 00:40:47,770 --> 00:40:51,480 >> Un visi no šiem procentiem lietas nav super svarīgs. 767 00:40:51,480 --> 00:40:55,270 Ja paskatās uz augšu dokumentāciju par strftime funkciju Python, 768 00:40:55,270 --> 00:40:57,040 tas nosaka visus šos lietas, bet tas ir 769 00:40:57,040 --> 00:40:59,190 kā, kad mēs meklējām pie mājas lapā šeit, 770 00:40:59,190 --> 00:41:04,440 tas formāti to ar jauku datumu, un tas nosaka, AM vai PM, 771 00:41:04,440 --> 00:41:09,410 bet normāli, ja mēs nebija tas šeit, 772 00:41:09,410 --> 00:41:14,024 jūs, iespējams iegūt kādu atkritumu datums, kas nav izskatās ļoti labi. 773 00:41:14,024 --> 00:41:15,940 Un tad mēs precizētu post.text, un es varētu 774 00:41:15,940 --> 00:41:19,460 ir izveidojuši pāris line pārtraukumiem šeit, tāpat 775 00:41:19,460 --> 00:41:21,820 nodot dažas atstarpes starp katru post. 776 00:41:21,820 --> 00:41:26,270 >> Tātad, es domāju, ka vissvarīgākais lieta šajā piemērā, 777 00:41:26,270 --> 00:41:28,697 ir tas, ka jūs varat izmantot šo cilpu. 778 00:41:28,697 --> 00:41:30,780 Un tas ir analogs lietas, jūs varat darīt PHP. 779 00:41:30,780 --> 00:41:32,905 Jūs varat atkārtot, izmantojot, viss tiek pieņemts, 780 00:41:32,905 --> 00:41:36,719 un jā, tā vietā, lai darīt copy / paste, copy / paste visu HTML, 781 00:41:36,719 --> 00:41:40,010 Jums vienkārši ir rakstīt to vienu reizi, un pēc tam Jūs varat atkārtot pār visiem amatiem. 782 00:41:40,010 --> 00:41:41,510 >> Un tas ir kaut kas kopējā ka jūs vēlaties 783 00:41:41,510 --> 00:41:44,510 ko darīt, ja jums ir daudz datu, ir tā, ka viss jūsu datiem, 784 00:41:44,510 --> 00:41:48,370 jūs vēlaties darīt līdzīga lieta. 785 00:41:48,370 --> 00:41:51,690 Un tad, tikai atcerieties, ka tad, kad jūs vēlas izdrukāt kaut ko skaidri 786 00:41:51,690 --> 00:41:54,780 HTML, jūs izmantojat dubultā bikšturi šeit, 787 00:41:54,780 --> 00:41:57,820 bet tad, kad jūs vēlaties, lai precizētu daži informāciju par nosacījumu, 788 00:41:57,820 --> 00:42:02,430 vai apmēram uz cilpas, jūs izmantot procentu kronšteinu. 789 00:42:02,430 --> 00:42:08,730 >> Tātad, dodas atpakaļ uz Python kodu, lai izskaidro 790 00:42:08,730 --> 00:42:12,242 kas notiek galvenā maršruts, kad mēs ejam uz turieni, 791 00:42:12,242 --> 00:42:14,450 tas tikai parāda visu posts, bet tad jautājums 792 00:42:14,450 --> 00:42:17,440 ir, kā mēs faktiski nokļūt amati datu bāzē, kas 793 00:42:17,440 --> 00:42:18,970 ir nedaudz vairāk interesants. 794 00:42:18,970 --> 00:42:23,960 >> Tātad, kad jūs noklikšķiniet uz New Post saite, ko mēs šeit redzējām, 795 00:42:23,960 --> 00:42:26,000 tas novirza jūs uz šo formu. 796 00:42:26,000 --> 00:42:29,580 Un tas ir tikai vienkāršs aicinājums uz render_template funkcija, kas pēc tam 797 00:42:29,580 --> 00:42:32,110 iet jaunajā amatā HTML formā. 798 00:42:32,110 --> 00:42:36,212 Tātad, pieņemsim to apskatīt, kas. 799 00:42:36,212 --> 00:42:37,420 Tātad šis viens ir diezgan vienkāršs. 800 00:42:37,420 --> 00:42:45,110 Tā ir vienkārša HTML formu, kas izskatīsies mazliet pazīstami, 801 00:42:45,110 --> 00:42:47,380 pamatojoties uz formām CS50 Finance. 802 00:42:47,380 --> 00:42:49,940 Un tā, mēs norādiet šeit, darbību. 803 00:42:49,940 --> 00:42:52,435 Un šeit, ja jūs strādājat ar PHP, parasti, to 804 00:42:52,435 --> 00:42:55,930 būtu kaut kas līdzīgs, create.PHP, bet šeit 805 00:42:55,930 --> 00:42:59,960 mēs faktiski norādīt ceļu ietvaros kolbā serveri. 806 00:42:59,960 --> 00:43:02,520 Un tā, šajā maršrutā Atbilst uz radītu maršrutam 807 00:43:02,520 --> 00:43:05,680 ka mēs esam šeit, kas mēs iedziļināties sekundē. 808 00:43:05,680 --> 00:43:07,630 >> Un tā, mēs norādīt, ka tas ir post metode, 809 00:43:07,630 --> 00:43:09,820 jo mēs vēlamies, lai nosūtītu šo veidlapu datus, un parasti 810 00:43:09,820 --> 00:43:12,945 kad sūtāt datus no veidlapas, jūs varētu vēlēties izmantot post pieprasījumu, 811 00:43:12,945 --> 00:43:15,760 tikai tāpēc jums nav galu galā ar šo lielo, smagnēja URL. 812 00:43:15,760 --> 00:43:18,970 Bet jūs varētu izmantot arī GET pieprasījumu, un nodot to ar mainīgo maršrutēšanu, 813 00:43:18,970 --> 00:43:21,170 bet formās, tas ir jauki amatā pieprasījumu šeit. 814 00:43:21,170 --> 00:43:24,620 Un tā, tad, tāpat kā jūs darītu ar HTML un PHP, 815 00:43:24,620 --> 00:43:28,420 Jūs varat norādīt šīs teksta ievadi, un jūs varat norādīt vārdu tiem, 816 00:43:28,420 --> 00:43:33,490 un tas ir vārds, kas saņems pagājis uz pieprasījuma objektu robežās kolbā. 817 00:43:33,490 --> 00:43:36,960 >> Un tad mums ir Iesniegt poga, kas saka Post. 818 00:43:36,960 --> 00:43:40,760 Un šeit, Post ir nosaukums no poga, jo tas ir blog post, 819 00:43:40,760 --> 00:43:42,700 bet šeit, amats ir pieprasījums metode. 820 00:43:42,700 --> 00:43:47,060 Tāpēc tie ir vienādi vārds bet patiesībā nesaistīti. 821 00:43:47,060 --> 00:43:48,460 Yeah 822 00:43:48,460 --> 00:43:54,800 >> Atgriežoties pie Python kodu, kad mēs sauc izveidot metodi, 823 00:43:54,800 --> 00:43:57,702 ievērosiet šeit, ka jūs varat faktiski norādīt ietvaros maršrutā 824 00:43:57,702 --> 00:44:00,650 ka pieprasījums metodes ka jūs vēlaties pieņemt, 825 00:44:00,650 --> 00:44:04,770 un tāpēc šeit, varu norādīt, ka es tikai vēlas pieņemt Post metodi. 826 00:44:04,770 --> 00:44:09,800 Tātad, ja es tiešām cenšos apmeklēt lapu tieši, kas ir, izmantojot GET pieprasījumu, 827 00:44:09,800 --> 00:44:11,700 tas man pateikt, "metode nav atļauta." 828 00:44:11,700 --> 00:44:15,840 >> Un tā, jums ir lapas, kārtot līdzīgu Tas radītu lapas, kuras es esmu tikai 829 00:44:15,840 --> 00:44:20,192 tiešām izmanto kā veids šo veidlapu, lai iesniegts, 830 00:44:20,192 --> 00:44:22,900 Jūs varat norādīt, ka jums nav gribu, lai cilvēki varētu doties uz turieni 831 00:44:22,900 --> 00:44:25,650 tieši caur GET pieprasījumu, vai arī, ja jūs nevēlaties, 832 00:44:25,650 --> 00:44:28,580 kādu iemeslu dēļ, Pasta pieprasījums, jūs varētu vienkārši norādīt GET šeit, 833 00:44:28,580 --> 00:44:32,720 bet šajā piemērā, mēs tikko vēlas, lai Post pieprasījums iet ārā. 834 00:44:32,720 --> 00:44:38,700 >> Tātad, kad create_post sauc, kad mēs apmeklēt ka caur Post pieprasījuma 835 00:44:38,700 --> 00:44:43,600 kad jūs iet uz konkrētu maršruts, tur ir šis pieprasījums objekts, 836 00:44:43,600 --> 00:44:46,640 un mums bija, lai importētu pieprasījumi pašā augšā, 837 00:44:46,640 --> 00:44:49,640 bet tur ir šis pieprasījums objekts, kas izpaužas pieņemts, 838 00:44:49,640 --> 00:44:53,210 un jūs varat piekļūt veidlapu datus, kas automātiski saņemt piepildīts 839 00:44:53,210 --> 00:44:55,070 kad jūs sūtīt lūgumu no formas. 840 00:44:55,070 --> 00:44:56,990 >> Un tad, ko es domāju, ka ir tiešām foršs, tiek 841 00:44:56,990 --> 00:45:02,840 ka veidlapa mērķi, lai saņemtu pagājis in, ir tikai Python vārdnīcu, kas 842 00:45:02,840 --> 00:45:10,560 satur, ja jūs access-- tāpēc šeit, ļaujiet man uzvilkt HTML blakus tai, vienkārši 843 00:45:10,560 --> 00:45:17,670 lai jūs varētu būt, ka kā atsauci, jā, tāpēc 844 00:45:17,670 --> 00:45:21,060 nosaukumus, kas mums norādīt šeit par dažādām jomām, lai 845 00:45:21,060 --> 00:45:23,900 nosaukumu un tekstu, mēs tad tikai izmantot tiem vairāk šeit 846 00:45:23,900 --> 00:45:27,110 kā indeksiem šo veidlapu datus. 847 00:45:27,110 --> 00:45:28,950 Tātad tas ir super ērts. 848 00:45:28,950 --> 00:45:33,320 >> Tātad mēs saucam post.create, kas radīs un automātiski ievietot 849 00:45:33,320 --> 00:45:36,850 šis jaunais amats objektu datu bāzē. 850 00:45:36,850 --> 00:45:40,690 Un es domāju, ka tas radītu funkciju šeit ir patiešām foršs piemērs tam, kā 851 00:45:40,690 --> 00:45:44,900 spēcīgs kolba ir un strādā ar to, jo, ja jūs darījāt kaut ko 852 00:45:44,900 --> 00:45:48,660 PHP, jums varētu būt darīt daudz validācijas, 853 00:45:48,660 --> 00:45:51,730 jums būtu tad izveidotu datu bāzi savienojumu, 854 00:45:51,730 --> 00:45:55,210 jums būtu tad izpildīt SQL vaicājumu, 855 00:45:55,210 --> 00:45:59,550 bet šeit mums vienkārši ir šī jauki post.create, ko mēs varam, tad tikai 856 00:45:59,550 --> 00:46:01,520 iegūt informāciju no Pieprasījuma mērķis, 857 00:46:01,520 --> 00:46:05,370 un pēc tam nodot to jaunu post, ka mēs esam radot. 858 00:46:05,370 --> 00:46:07,850 >> Un tad, ļoti pēdējā lieta, ko mēs vēlamies darīt, 859 00:46:07,850 --> 00:46:09,630 ir novirzīt lietotājs atpakaļ uz mājām. 860 00:46:09,630 --> 00:46:13,020 Un tāpēc mēs izmantojam šo Kolba novirzīt funkciju. 861 00:46:13,020 --> 00:46:17,770 Un kaut kas mums nebija redzējis pirms, bija šī URL funkcija. 862 00:46:17,770 --> 00:46:21,970 Tātad URL funkcija ļauj jums iet uz faktiski nosaukums 863 00:46:21,970 --> 00:46:26,090 par funkciju jūsu Python kodu, nevis konkrētajā maršrutā 864 00:46:26,090 --> 00:46:26,720 ka tas ir pie. 865 00:46:26,720 --> 00:46:32,107 >> Lai es varētu būt tikpat viegli novirzīts lietotājam slīpsvītra, 866 00:46:32,107 --> 00:46:37,050 kas to nosūtīt atpakaļ uz mājām, bet izmantojot URL funkcija ir jauki, 867 00:46:37,050 --> 00:46:39,990 jo, ja jūs mainīt vieta, kur lietas ir, 868 00:46:39,990 --> 00:46:44,080 tāpēc pieņemsim, ka es mainīt mājvieta būt / mājās, nevis, 869 00:46:44,080 --> 00:46:47,040 tas vēl tad atgriezties / home, jo faktiski iet un uzmeklē 870 00:46:47,040 --> 00:46:50,770 nosaukums funkciju, un tas dos jums atpakaļ URL par to. 871 00:46:50,770 --> 00:46:52,490 >> Tātad, sava veida uz pieņēmums, ka tu esi 872 00:46:52,490 --> 00:46:55,489 visticamāk, mainīt, kur lietas ir, nekā vārdiem funkcijām. 873 00:46:55,489 --> 00:46:58,840 Jūs varat izmantot šo patiešām jauks URL funkciju. 874 00:46:58,840 --> 00:47:02,470 Un viena lieta ir apzināties ka ir mazliet viltīgs, 875 00:47:02,470 --> 00:47:05,750 ir tas, ka jūs domājat, ka jūs varētu vienkārši aicināt novirzīt uz URL, 876 00:47:05,750 --> 00:47:10,600 bet patiesībā visi maršruti atgriezt kādu no teksta un HTML veida, 877 00:47:10,600 --> 00:47:14,360 tāpēc jums tiešām ir atgriezties novirzīt zvanu. 878 00:47:14,360 --> 00:47:18,379 Pretējā gadījumā jūs saņemsiet kaut ko nederīgs par neatgriezīsies virkne, 879 00:47:18,379 --> 00:47:21,420 jo visi šie ir jāatgriežas HTML jūs tiešām vēlaties, lai padarītu. 880 00:47:21,420 --> 00:47:26,980 >> Un tā, kad jūs izsauktu novirzīšanu, tas novirza jūs uz lapas, 881 00:47:26,980 --> 00:47:30,270 bet tas tiešām atgriež HTML Jums ir nepieciešams, lai izpildītu šo novirzīšanu. 882 00:47:30,270 --> 00:47:34,430 883 00:47:34,430 --> 00:47:37,110 Iet atpakaļ uz mājas lapu. 884 00:47:37,110 --> 00:47:39,200 Tāpēc mums ir šie divi atšķirīgi viedokļi. 885 00:47:39,200 --> 00:47:40,132 Mums ir mājas skats. 886 00:47:40,132 --> 00:47:41,590 Vai, es domāju, man vajadzētu teikt veidnes. 887 00:47:41,590 --> 00:47:44,190 Mums ir šīs divas veidnes, mājas veidnes, kas 888 00:47:44,190 --> 00:47:48,500 parāda visas mūsu amatu, un tad mums ir šī reklāmas lieta, 889 00:47:48,500 --> 00:47:52,970 un, kad jūs noklikšķiniet uz amatu, tā iet lai jaunā maršruta garumā kolbas, 890 00:47:52,970 --> 00:47:55,920 bet ka maršruts nav obligāti ir atbilstošu veidni. 891 00:47:55,920 --> 00:47:59,290 892 00:47:59,290 --> 00:48:01,560 Jums nav, lai redzētu kaut kas, bet jūs joprojām varat 893 00:48:01,560 --> 00:48:04,090 ir šis darbs turpinās aiz ainas. 894 00:48:04,090 --> 00:48:07,450 Un tad jums novirzīts atpakaļ uz mājas lapu. 895 00:48:07,450 --> 00:48:12,230 Un noteikti, tas ir viegli strādāt kaut nicer CSS veidni 896 00:48:12,230 --> 00:48:15,580 un padarīt šo izskatās daudz nicer, bet visas galvenās loģikas 897 00:48:15,580 --> 00:48:18,590 ir tur Python. 898 00:48:18,590 --> 00:48:20,020 >> Kādi jautājumi par šo piemēru? 899 00:48:20,020 --> 00:48:22,760 Es zinu, ka ir daudz dažādas lietas notiek tur, 900 00:48:22,760 --> 00:48:25,341 daudzas lietas mums nebija redzējis agrāk, bet, piemēram, neko. 901 00:48:25,341 --> 00:48:25,840 Jā. 902 00:48:25,840 --> 00:48:28,346 >> AUDITORIJA 1: Vai jums ir kaut ko darīt īpašs skrubis datus, kas ir 903 00:48:28,346 --> 00:48:29,600 nāk no formas? 904 00:48:29,600 --> 00:48:31,109 Es pamanīju, jūs tikko teica "radīt," 905 00:48:31,109 --> 00:48:33,900 EZRA ZIGMOND: Jā, tā tas ir patiesībā, tas ir patiešām labs punkts. 906 00:48:33,900 --> 00:48:36,350 Tātad jautājums bija, vai ne nepieciešams pārbaudīt un pārliecināties, 907 00:48:36,350 --> 00:48:39,190 ka dati ir derīgs, un darīt jebkādu beršanu 908 00:48:39,190 --> 00:48:41,840 pārliecināties, ka tas ir derīgs, jo, kā jūs varat redzēt šeit, 909 00:48:41,840 --> 00:48:42,660 Es nedaru to. 910 00:48:42,660 --> 00:48:48,140 Tātad, pieņemsim redzēt, kas notiek ja es post kaut ko tukša. 911 00:48:48,140 --> 00:48:51,190 Tātad, tas būs faktiski tikai veikt tukšs post un aizpildīt DateTime. 912 00:48:51,190 --> 00:48:55,990 >> Tātad patiesībā, jūs, iespējams, vēlas kaut ko darīt, piemēram, 913 00:48:55,990 --> 00:49:04,749 varbūt precizēt, vai nosaukums ir vienāds ar tukša virkne, tad nedariet to. 914 00:49:04,749 --> 00:49:07,290 Vai, darīt tikai to, ja nosaukums ir nav vienāds ar tukšu virkni. 915 00:49:07,290 --> 00:49:10,330 Tātad tas nav reāli automātiski rūpēties par šo attīrīšana 916 00:49:10,330 --> 00:49:12,820 jums, lai jūs joprojām ir nepieciešams, lai to izdarītu. 917 00:49:12,820 --> 00:49:14,330 Jā, labs jautājums. 918 00:49:14,330 --> 00:49:18,497 >> AUDITORIJA 2: vai tas skrubis par turpinājumu injekcijas? 919 00:49:18,497 --> 00:49:19,890 Vai Tu zini? 920 00:49:19,890 --> 00:49:22,830 >> EZRA ZIGMOND: Cerams, peewee dara to. 921 00:49:22,830 --> 00:49:25,830 Es domāju, ka tas noteikti būtu diezgan slikti bibliotēka ja tā nav darīt. 922 00:49:25,830 --> 00:49:29,511 923 00:49:29,511 --> 00:49:32,690 Es precīzi nezinu. 924 00:49:32,690 --> 00:49:34,820 Man ir apskatīt vaicājuma ka tas radīts. 925 00:49:34,820 --> 00:49:38,980 Es domāju, ka, ja es drukāti blog post, ka sava veida izskatījās 926 00:49:38,980 --> 00:49:46,370 kā SQL injekcijas uzbrukumu, kaut kas līdzīgs šim, ja tas 927 00:49:46,370 --> 00:49:49,370 ir kā paroles laukā vai kaut ko, jūs varētu darīt kaut kas līdzīgs šim. 928 00:49:49,370 --> 00:49:53,410 >> Es domāju, ka būs vēl nokļūt burtiski rakstīja, 929 00:49:53,410 --> 00:49:59,200 bet es domāju, ka peewee tas jādara daži attīrīšana no datu veida 930 00:49:59,200 --> 00:50:01,680 pirms tas faktiski izpilda to. 931 00:50:01,680 --> 00:50:04,510 >> AUDITORIJA 1: Šis teksts lauks ir paredzēts veikt vienkāršu tekstu, vai ne? 932 00:50:04,510 --> 00:50:05,710 >> EZRA ZIGMOND: Jā, tā ir. 933 00:50:05,710 --> 00:50:06,465 Jā. 934 00:50:06,465 --> 00:50:09,590 Tāpēc es domāju, ka visi, tāpēc tas ir pareiza uzvedība, kas būs jādara, 935 00:50:09,590 --> 00:50:12,170 bet es domāju, ka peewee cerams, tas jādara 936 00:50:12,170 --> 00:50:13,780 sava veida aizsardzība to galā. 937 00:50:13,780 --> 00:50:16,090 Un, ja jūs vēlaties, lai vēlreiz pārbaudiet, ka tur 938 00:50:16,090 --> 00:50:19,530 Ir veidi, kad jums radīt vaicājumu. 939 00:50:19,530 --> 00:50:22,622 tāpēc jums nav izpildīt tieši. 940 00:50:22,622 --> 00:50:24,330 Man ir veikt apskatīt dokumentāciju, 941 00:50:24,330 --> 00:50:27,930 bet jūs faktiski var apskatīt SQL, ka tā ir radīt, 942 00:50:27,930 --> 00:50:30,840 un to apskatīt to, un padarīt pārliecināts, ka tas ir bēgšanu lietas. 943 00:50:30,840 --> 00:50:33,700 >> Vēl viens iemesls, kāpēc jūs varētu vēlaties apskatīt SQL 944 00:50:33,700 --> 00:50:37,920 ka peewee ir outputting, ir, ja lietas, šķiet, iet tiešām lēni, 945 00:50:37,920 --> 00:50:41,090 Jūs varat to apskatīt un redzēt, kas tas ir faktiski dara, jo tas ir dažreiz 946 00:50:41,090 --> 00:50:44,670 viegli nejauši pievienot jo, kā jūs rakstīt to, 947 00:50:44,670 --> 00:50:47,880 Jūs varat nejauši būt tā atlasiet visas datubāzes, pirmkārt, 948 00:50:47,880 --> 00:50:50,230 un pēc tam darīt kaut kāda darbība par to, kad jūs patiešām 949 00:50:50,230 --> 00:50:51,320 domāts, lai izvēlētos apakškopu. 950 00:50:51,320 --> 00:50:53,560 >> Un tā, ja lietas nav gluži iet labi, 951 00:50:53,560 --> 00:50:57,300 tas ir labi, lai to apskatīt pieprasījuma kas ir faktiski kļūst radīts. 952 00:50:57,300 --> 00:50:57,800 Jā. 953 00:50:57,800 --> 00:51:02,100 >> AUDITORIJA 2: Kad jūs pirmo reizi sāka, jūs likts ostā kā 5000. 954 00:51:02,100 --> 00:51:02,904 >> EZRA ZIGMOND: Jā. 955 00:51:02,904 --> 00:51:06,070 AUDITORIJA 2: Vai default ar peewee, vai arī tas ir kaut kas jūs varat mainīt? 956 00:51:06,070 --> 00:51:10,870 EZRA ZIGMOND: Jā, tā osta ir noklusējuma ar kolbā. 957 00:51:10,870 --> 00:51:13,061 Ja jūs palaist to bez norādot neko, 958 00:51:13,061 --> 00:51:14,310 tas automātiski darīt. 959 00:51:14,310 --> 00:51:16,060 Es uzskatu, ka man ir divkāršot to pārbaudītu, 960 00:51:16,060 --> 00:51:19,130 bet jūs varat norādīt, ka app.run, Es domāju, ka jūs varat darīt, kaut ko līdzīgu, 961 00:51:19,130 --> 00:51:19,629 ostas = 8080. 962 00:51:19,629 --> 00:51:22,375 963 00:51:22,375 --> 00:51:23,750 Pieņemsim, ka dot izmēģināt nekustamo ātri. 964 00:51:23,750 --> 00:51:29,100 965 00:51:29,100 --> 00:51:32,230 Jā, lai jūs varat vienkārši norādīt ostas = 8080, un tas darbosies tur, 966 00:51:32,230 --> 00:51:36,130 ko es domāju, ka, ja jūs vēlaties, lai palaistu to uz IDE, es neesmu mēģinājis šo, 967 00:51:36,130 --> 00:51:38,527 bet es domāju, ka, ja jūs vadīja to uz ostu 8080, 968 00:51:38,527 --> 00:51:40,360 jūs, iespējams, varētu lai piekļūtu serverim, 969 00:51:40,360 --> 00:51:41,870 tāpat kā jums bija, lai mājas lapā. 970 00:51:41,870 --> 00:51:44,390 >> Jā, bet tas ir viegli mainīt, ka, ja jums 971 00:51:44,390 --> 00:51:48,540 ir jebkāda veida, piemēram, ostas ekspedīcija lietas, kas jums jādara. 972 00:51:48,540 --> 00:51:50,410 >> Jebkuri citi jautājumi? 973 00:51:50,410 --> 00:51:50,916 Yeah? 974 00:51:50,916 --> 00:51:53,416 AUDITORIJA 1: Tātad, es redzēju jūsu modeļi, kas, kā jūs minējāt, 975 00:51:53,416 --> 00:51:55,647 Jums ir, lai precizētu datubāzi par katru objektu. 976 00:51:55,647 --> 00:51:58,105 Vai jūs notikt zināt, vai kas padara to ļoti viegli, ja jums 977 00:51:58,105 --> 00:52:03,210 ir daudz SQLite datubāzes, kas jums vēlas izmantot vienu web app, 978 00:52:03,210 --> 00:52:07,210 ka jūs varat norādīt ķekars dažādu tiem, kas savu modeli? 979 00:52:07,210 --> 00:52:11,620 >> EZRA ZIGMOND: Jā, let me atvērt ka līdz nekustamo ātri. 980 00:52:11,620 --> 00:52:17,570 Tātad, jūs sakāt, ja jūs vēlaties, lai būtu ķekars dažādu kaut ko, varbūt 981 00:52:17,570 --> 00:52:22,670 patīk un studenti, dažiem iemesls, kaut kas tamlīdzīgs? 982 00:52:22,670 --> 00:52:26,870 Jā, tāpēc es domāju, ka jūs joprojām, katrs modelis 983 00:52:26,870 --> 00:52:30,652 būtu vēl tikko viena datu bāze tai piešķirtas, 984 00:52:30,652 --> 00:52:32,610 bet, ja jūs vēlētos, lai būtu dažādi modeļi, kas 985 00:52:32,610 --> 00:52:35,818 ir dažādas datu bāzes objektus piešķirts uz to, jūs varētu noteikti darīt. 986 00:52:35,818 --> 00:52:43,070 Tātad, ja es izveidojis jaunu, kaut kas tamlīdzīgs, 987 00:52:43,070 --> 00:52:47,000 un tagad tas ir students, kas izskatās savādi kā blog post, 988 00:52:47,000 --> 00:52:49,390 Es varētu norādīt, ka Datu bāze ir vienāda ar db_2 šeit. 989 00:52:49,390 --> 00:52:51,390 Tātad, es domāju, ka ir Galvenais veids, kā jūs varat darīt. 990 00:52:51,390 --> 00:52:54,560 991 00:52:54,560 --> 00:52:56,200 >> Cool. 992 00:52:56,200 --> 00:52:58,410 Jebkuri citi jautājumi? 993 00:52:58,410 --> 00:53:02,170 >> Tik vienkārši pabeigt līdz maz bit, šeit ir daži resursi, 994 00:53:02,170 --> 00:53:06,030 un šie slaidi tiks publicēta internetā lai jūs faktiski var iegūt līdz šīm saitēm. 995 00:53:06,030 --> 00:53:08,500 Labākais resursi ir patiešām dokumentāciju par kolba 996 00:53:08,500 --> 00:53:09,930 un peewee sevi. 997 00:53:09,930 --> 00:53:12,940 Viņi rakstīts tiešām labi, es domāju. 998 00:53:12,940 --> 00:53:18,180 Tātad, kolbu mājas lapa ir šeit, un viņiem ir QuickStart apmācība, kas 999 00:53:18,180 --> 00:53:20,710 būs staigāt pa līdzīgs lietas, ko es gāju cauri, 1000 00:53:20,710 --> 00:53:23,560 bet, ja jūs vēlaties, jebkādu pārskatīšanu no lietām, ko es devos pāri, 1001 00:53:23,560 --> 00:53:26,200 vai tu domā, ka es paskaidroju kaut kādā veidā mulsinoši, 1002 00:53:26,200 --> 00:53:28,390 tie būs līdzīgi piemēri tur. 1003 00:53:28,390 --> 00:53:31,570 >> Peewee ir dokumentācija, un tie ir QuickStart apmācība 1004 00:53:31,570 --> 00:53:34,650 ka iet pa galvenajiem parametriem ka jūs vēlaties izmantot. 1005 00:53:34,650 --> 00:53:38,900 Tātad, lietas, es runāju par to ar unikālās, un norādot saistību nepildīšanu, 1006 00:53:38,900 --> 00:53:42,710 dažādu veidu jomās, kas jūs varat izmantot, tie visi būtu tur. 1007 00:53:42,710 --> 00:53:44,690 >> Arī tad, ja jums ir jautājumi par peewee, 1008 00:53:44,690 --> 00:53:47,530 un tu pēc tās par stackoverflow, puisis, kurš izgatavots peewee faktiski 1009 00:53:47,530 --> 00:53:49,500 tālāk un atbild tiem reizēm. 1010 00:53:49,500 --> 00:53:53,200 Ja jums ir jautājums, cerams viņš būs spējīgs atbildēt uz to, 1011 00:53:53,200 --> 00:53:54,867 jo viņš rakstīja viss. 1012 00:53:54,867 --> 00:53:56,700 Es domāju, ka tas viss Es gribēju, lai segtu. 1013 00:53:56,700 --> 00:53:58,930 Paldies par iznāks. 1014 00:53:58,930 --> 00:54:02,688