1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:03,227 [Muusika mängib] 3 00:00:03,227 --> 00:00:04,705 4 00:00:04,705 --> 00:00:05,830 EZRA ZIGMOND: Tere, kõigile. 5 00:00:05,830 --> 00:00:08,020 Tänan, et tulid täna. 6 00:00:08,020 --> 00:00:10,660 See seminar on "Python Web Apps kolbi. " 7 00:00:10,660 --> 00:00:14,510 >> Niisiis, ma lähen rääkima natuke miks 8 00:00:14,510 --> 00:00:17,400 võiksite kasutada Kolb teha veebirakendusi Python, mitte 9 00:00:17,400 --> 00:00:21,556 mõne muu raamistike seal, nagu Django, mis on tuntuim. 10 00:00:21,556 --> 00:00:24,330 Alapealkiri "ja peewee ", mis on midagi 11 00:00:24,330 --> 00:00:27,250 me ei kavatse rääkida, kuidas suhelda SQL andmebaase. 12 00:00:27,250 --> 00:00:29,610 See muudab tõesti kena. 13 00:00:29,610 --> 00:00:32,390 >> Nii, siin on lihtsalt kiire hooletussejäetud mida ma tahan minna üle. 14 00:00:32,390 --> 00:00:35,520 Niisiis, esimene, vaid üks slaid mis saab olema QuickStart, 15 00:00:35,520 --> 00:00:38,530 mis on, kuidas saada kõike luua oma arvutis. 16 00:00:38,530 --> 00:00:41,760 Ma lähen näidates see minu kohaliku Mac masin, 17 00:00:41,760 --> 00:00:45,220 lihtsalt sellepärast, et see on kui ma olen teinud seda Enne, ma olen kõige mugavamalt siis, 18 00:00:45,220 --> 00:00:48,510 kuid see on kindlasti võimalik on CD50 IDE. 19 00:00:48,510 --> 00:00:52,050 >> Niisiis, pärast seda, ma tahan tutvustada, mida kolb, 20 00:00:52,050 --> 00:00:55,089 ja veenda teid, miks sa peaksid kasuta seda esiteks. 21 00:00:55,089 --> 00:00:56,880 Siis ma annan kiire näide sellest, mida 22 00:00:56,880 --> 00:01:00,550 saab teha Kolb, kiire näide mida saate teha peewee, 23 00:01:00,550 --> 00:01:05,010 ja siis ma näitan sulle rohkem täielik näide rakendus 24 00:01:05,010 --> 00:01:07,520 et panin kokku, et me ei käi kokku. 25 00:01:07,520 --> 00:01:10,040 >> Ja siis lõpuks ka viimase slaidi, mul on 26 00:01:10,040 --> 00:01:12,730 mõned vahendid, et sa vaatad kell Internetist lisateabe saamiseks. 27 00:01:12,730 --> 00:01:15,560 See ei ole täielik juhendaja, kuidas kasutada kolbi. 28 00:01:15,560 --> 00:01:18,140 Ja ma loodan, et jätta Mõne aja eest küsimusi. 29 00:01:18,140 --> 00:01:21,050 Igaüks vaadates kohapeal, vaid nagu, Hüüab keskel 30 00:01:21,050 --> 00:01:22,340 Kui teil on mingeid küsimusi. 31 00:01:22,340 --> 00:01:27,150 >> Nii kiire paigaldus kraami, Kui soovite jälgida mööda, 32 00:01:27,150 --> 00:01:29,240 või kui sa tahad saada seda up oma arvutisse, 33 00:01:29,240 --> 00:01:32,440 Ma lähen kasutades Python 2.7.10. 34 00:01:32,440 --> 00:01:35,860 Kolb ei töö Python 3, aga mulle meeldib 35 00:01:35,860 --> 00:01:38,660 kasutades Python 2, sest seal on mõned Python paketid 36 00:01:38,660 --> 00:01:40,910 ei tööta 3 veel. 37 00:01:40,910 --> 00:01:44,800 Kui teil on pip paigaldatud, mis on Python paketi manager, 38 00:01:44,800 --> 00:01:48,190 Ma arvan, et kui teie Python on suurem või võrdne 2.7.9, 39 00:01:48,190 --> 00:01:52,220 sul on see juba paigaldatud, see on super lihtne paigaldada neid pakendeid. 40 00:01:52,220 --> 00:01:54,990 >> Seda saab teha pip paigaldada Kolb, pip paigaldada peewee, 41 00:01:54,990 --> 00:01:58,600 Tavaliselt pead käivitama sudo lihtsalt nii et load välja töötada. 42 00:01:58,600 --> 00:02:01,080 Ja kui te kasutate super vana versioon Python, 43 00:02:01,080 --> 00:02:05,100 Ma soovitan ajakohastamine oma Python, või kasutades EasyInstallile paigaldada pip. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 Niisiis, järgmine küsimus on, milline on Kolb? 46 00:02:11,120 --> 00:02:13,280 Ja ma arvan, kõigepealt mõistlik küsimus Ma imestasin 47 00:02:13,280 --> 00:02:15,585 pikka aega on, mida on web app? 48 00:02:15,585 --> 00:02:17,960 Sest see on sõna, mis ma arvan visatakse ümber palju 49 00:02:17,960 --> 00:02:19,240 et ma ei tea. 50 00:02:19,240 --> 00:02:22,340 Ja ma arvan, et parim Näiteks, mida web app on, 51 00:02:22,340 --> 00:02:26,960 tõesti on CS50 Finance, kus see ei ole tõesti ainult kodulehel, 52 00:02:26,960 --> 00:02:29,320 kuid see on midagi, mida sa võiks omamoodi suhelda. 53 00:02:29,320 --> 00:02:31,736 On kasutajakontod ja igasuguseid erinevaid asju. 54 00:02:31,736 --> 00:02:35,010 Niisiis, kus täpselt sa juhtida piir, mida on veebileht, 55 00:02:35,010 --> 00:02:38,780 ja mis on veebirakendus, on omamoodi suvaline, kuid ma arvan, et idee, 56 00:02:38,780 --> 00:02:42,110 see on midagi enamat kui kodulehel ja see on kasulik rakendus. 57 00:02:42,110 --> 00:02:46,081 >> Nii, kolb raamistiku tehes web apps kasutades Python. 58 00:02:46,081 --> 00:02:48,330 Ja loodetavasti lõpuks Selle ma sind veenda 59 00:02:48,330 --> 00:02:52,210 et siis võiks tegelikult midagi kirjutada nagu CS50 Finance kasutades Python, mida ma 60 00:02:52,210 --> 00:02:53,950 nagu palju parem kui PHP isiklikult. 61 00:02:53,950 --> 00:02:57,320 >> Nii, kolb, nad kutsuvad microframework, mille, 62 00:02:57,320 --> 00:02:59,800 nad tähenda, et see on väga Lihtne, kuid laiendatav. 63 00:02:59,800 --> 00:03:02,980 Nii, see on just see, mida sa vajad, aga kui sa tahad rohkem funktsioone, 64 00:03:02,980 --> 00:03:04,522 see on lihtne tuua neid. 65 00:03:04,522 --> 00:03:06,480 Aga kuna see on microframework, ei 66 00:03:06,480 --> 00:03:08,960 tähenda, et see on ainult väikestele projektidele. 67 00:03:08,960 --> 00:03:12,590 Mul on link siin, mis ütleb, et Obama kasutatud Kolb 2012 68 00:03:12,590 --> 00:03:14,410 tema kampaania veebileht, mis loodetavasti 69 00:03:14,410 --> 00:03:16,937 on midagi kinnitus. 70 00:03:16,937 --> 00:03:18,770 Kuid asi, mis ma tõesti meeldib Kolb 71 00:03:18,770 --> 00:03:22,401 on see, et see ei ole tegelikult teevad mingit otsust teile. 72 00:03:22,401 --> 00:03:24,150 Just sellepärast oleme räägime web apps, 73 00:03:24,150 --> 00:03:26,940 Mul on võrrelda seda Ruby on Rails ja Django, mis mõlemad 74 00:03:26,940 --> 00:03:30,450 on suur raamistikud, kuid nad mõlemad teha oletusi 75 00:03:30,450 --> 00:03:33,600 kuidas soovid suhelda andmebaasid 76 00:03:33,600 --> 00:03:36,900 kuidas soovite esitada oma seisukohti, ja nad kindlasti 77 00:03:36,900 --> 00:03:38,850 häid külgi on see. 78 00:03:38,850 --> 00:03:41,490 >> Näiteks Ruby on Rails on see aktiivne rekord süsteem, 79 00:03:41,490 --> 00:03:43,100 mis on tõesti kena kuidas suhelda andmed, 80 00:03:43,100 --> 00:03:45,960 aga kui sa tahad kasutada Ruby on Rails, sa oled mingi siduva seda. 81 00:03:45,960 --> 00:03:47,835 Aga Kolb, kui ma tulen näidata teile peewee, 82 00:03:47,835 --> 00:03:49,830 mida saab kasutada ükskõik mis sorti Andmebaasi soovite, 83 00:03:49,830 --> 00:03:53,980 ja sa võid tõmmata, et laiendusena kolbi. 84 00:03:53,980 --> 00:03:56,350 >> Nii et miks ma tõesti nagu Kolb, see, et ta 85 00:03:56,350 --> 00:04:01,170 Ei tee oletusi teile põhineb asju sa ei pea tõesti. 86 00:04:01,170 --> 00:04:04,440 >> Niisiis, miks peaks kasutama Kolb? 87 00:04:04,440 --> 00:04:08,230 Eelised on see lihtsalt on tõesti põhifunktsioonid 88 00:04:08,230 --> 00:04:09,420 ehitatud nii, et teil on vaja. 89 00:04:09,420 --> 00:04:11,980 Niisiis, sa ei pea muretsema mõista terve hunnik asju 90 00:04:11,980 --> 00:04:13,175 et sa tegelikult ei vaja. 91 00:04:13,175 --> 00:04:15,060 Sa ei pea muretsema umbes lülitades omadused 92 00:04:15,060 --> 00:04:16,620 et sa tegelikult ei vaja. 93 00:04:16,620 --> 00:04:21,082 >> Ja nagu ma mainisin, see on super lihtne lisada laiendusi asju 94 00:04:21,082 --> 00:04:21,790 et sa ei pea. 95 00:04:21,790 --> 00:04:24,700 Mõned neist, kolvi oma toetust sellele. 96 00:04:24,700 --> 00:04:28,230 Nii et siin on midagi nimega Kolb admin, mis peegeldab selle admin 97 00:04:28,230 --> 00:04:32,060 paneeli, et Django annab, mis annab teile kena visuaalne viis 98 00:04:32,060 --> 00:04:33,405 hallata oma kodulehel. 99 00:04:33,405 --> 00:04:35,280 Aga jälle, kui sa oled tehes midagi lihtsat, 100 00:04:35,280 --> 00:04:39,550 sa ilmselt ei pea suur admin paneeli, nii et ma arvan, et see super kena. 101 00:04:39,550 --> 00:04:45,940 Ja miinused on, et sul on vähem võimu karbist. 102 00:04:45,940 --> 00:04:49,660 Niisiis, kui te esimest korda avada kolbi ja oma Python programmi 103 00:04:49,660 --> 00:04:53,150 sa lihtsalt kirjuta kolvist import *, või mis iganes, 104 00:04:53,150 --> 00:04:55,957 sa ei täpselt saada kõik funktsioonid võiksite. 105 00:04:55,957 --> 00:04:58,540 Ja et sa pead selgemalt nimekiri funktsioone, mida soovite. 106 00:04:58,540 --> 00:05:01,990 Nii et üks puudus, kuid ma arvan, et hoone väike web 107 00:05:01,990 --> 00:05:04,782 apps nagu ma näitan sa, et see ei ole tegelikult probleem. 108 00:05:04,782 --> 00:05:07,281 Ja mida viimane asi on peaks ütlema, mis on kirjaviga, 109 00:05:07,281 --> 00:05:10,240 on see, et seal on vähem standardiseeritud konventsioone, kuidas kasutada kolbi 110 00:05:10,240 --> 00:05:12,400 lihtsalt sellepärast, et seal ei ole nii palju inimesed, kes kasutavad seda professionaalselt 111 00:05:12,400 --> 00:05:13,191 Võrreldes Django. 112 00:05:13,191 --> 00:05:16,380 Niisiis, kui te vaatate midagi, "kuidas ma seda teen x" Django, 113 00:05:16,380 --> 00:05:18,190 sa leiad ta. 114 00:05:18,190 --> 00:05:20,260 >> Seal on hea disain mustrid, mida saab kasutada, 115 00:05:20,260 --> 00:05:22,660 kuid Kolb, et see on omamoodi minna oma teed, 116 00:05:22,660 --> 00:05:24,850 lihtsalt sellepärast, et see on päris väike raamatukogu. 117 00:05:24,850 --> 00:05:27,100 Nii et need on puudused, kuid ma arvan, 118 00:05:27,100 --> 00:05:29,370 et see on ikka hea raamatukogu kasutada. 119 00:05:29,370 --> 00:05:31,909 >> Nii saab lihtsalt hüpata paremale kolbi. 120 00:05:31,909 --> 00:05:34,200 See ei ole kindlasti lähen olema täielik õpetus, 121 00:05:34,200 --> 00:05:37,480 aga see, et anda teile idee kuidas kujundada asju, 122 00:05:37,480 --> 00:05:40,790 ja nii see on mugav minna välja ja vaadata dokumentatsioon 123 00:05:40,790 --> 00:05:42,570 ja leida rohkem. 124 00:05:42,570 --> 00:05:48,500 >> Niisiis, lubage mul avada tõesti Lihtne näide alguses, 125 00:05:48,500 --> 00:05:50,737 ja näidata, mida see Tundub, ja siis me 126 00:05:50,737 --> 00:05:52,070 jaotada see natuke rohkem. 127 00:05:52,070 --> 00:05:56,160 >> Nii et see siin, las ma saan seda näidata. 128 00:05:56,160 --> 00:06:06,800 129 00:06:06,800 --> 00:06:09,750 Nii, mul on nüüd minu rakendus. 130 00:06:09,750 --> 00:06:15,910 Ma lähen avama Safari, ja see töötab minu kohalikus masinas. 131 00:06:15,910 --> 00:06:19,360 Nii et ma olen lihtsalt kavatse teha seda suurem. 132 00:06:19,360 --> 00:06:23,960 Aga localhost: 5000 133 00:06:23,960 --> 00:06:27,650 >> Ja nii, just nüüd, kõik see teeb on, kui külastate veebilehte, 134 00:06:27,650 --> 00:06:31,490 see prindib "Tere Kolb," mis ei ole super kasulikud, 135 00:06:31,490 --> 00:06:34,630 aga ma arvan, et see on lahe, et see väike pilt siin, 136 00:06:34,630 --> 00:06:37,390 meil veebiserver töötab mis prindib midagi. 137 00:06:37,390 --> 00:06:40,500 Niisiis, oletame, tegelikult otsima kell kood teine, 138 00:06:40,500 --> 00:06:43,080 ja jaotada see natuke. 139 00:06:43,080 --> 00:06:45,260 Kas suurus hea kõigile siin? 140 00:06:45,260 --> 00:06:51,560 >> Niisiis, loodetavasti olete mõnevõrra mugav kasutada Python. 141 00:06:51,560 --> 00:06:55,820 Oletan, et saame vaadata Pythoni ja see läbi lugeda. 142 00:06:55,820 --> 00:06:59,290 Kui teil on küsimusi midagi, ma ei saa minna ka üle, et. 143 00:06:59,290 --> 00:07:03,974 >> Nii et esimene rida on, kolvist, Toome, kolb kapitali "F" 144 00:07:03,974 --> 00:07:06,140 mis on omamoodi kõik põhijooned, mida vajate. 145 00:07:06,140 --> 00:07:08,890 Kui sa oled kirjalikult faili ja kasutades kolbi 146 00:07:08,890 --> 00:07:12,120 sa lähed tahan importida, et lihtsalt sellepärast, et on olemas kõik peamised asjad. 147 00:07:12,120 --> 00:07:15,400 Järgmine asi, mida me teeme, on meil nimetame seda funktsiooni Kolb, lihtsalt 148 00:07:15,400 --> 00:07:19,270 luua app objekti, ja sa oled alati saab soovi seda teha. 149 00:07:19,270 --> 00:07:25,960 >> Ja siis, hüpates alla alt kiiresti, see osa siin on, 150 00:07:25,960 --> 00:07:28,760 "if_name _ ==" _ main_ "", mis on omamoodi Python konventsioon. 151 00:07:28,760 --> 00:07:32,750 Nii et see täidab ainult siis, kui teil käivitada seda faili otse, kasutades Python. 152 00:07:32,750 --> 00:07:36,040 Siis me nimetame app.run, mis tegelikult alustada app läheb. 153 00:07:36,040 --> 00:07:39,570 >> Nii, see on põhiline ülesehitus, mis pead mingil Kolb taotluse, 154 00:07:39,570 --> 00:07:48,550 on sul seda app = Kolb (_NAME_) ja seejärel app.run. 155 00:07:48,550 --> 00:07:54,940 >> Niisiis, kaks asja, mida ma pean siin on, mida me nimetame liinidel. 156 00:07:54,940 --> 00:07:57,150 Niisiis, räägime suunamises natuke rohkem. 157 00:07:57,150 --> 00:07:58,430 Ma lähen tagasi slide. 158 00:07:58,430 --> 00:08:02,540 >> Nii kõige põhilisem kontseptsiooni kolb suunamises. 159 00:08:02,540 --> 00:08:06,750 Ja see mõte, et sa määrata funktsioonid Python 160 00:08:06,750 --> 00:08:11,280 teatud aadressid oma veebilehel. 161 00:08:11,280 --> 00:08:13,930 Niisiis, kui soovite luua uus marsruut, 162 00:08:13,930 --> 00:08:16,500 sa kasutad seda @ app.route funktsiooni dekoraator. 163 00:08:16,500 --> 00:08:19,770 Niisiis, kui te ei tunne funktsiooni sisekujundaja Python, 164 00:08:19,770 --> 00:08:24,160 see on see mõiste, et Võimaldab teil teha funktsiooni 165 00:08:24,160 --> 00:08:26,800 ja aseta see midagi muud. 166 00:08:26,800 --> 00:08:30,140 >> Nii et tõesti, mida see dekoraator teeb, see võtab funktsiooni all, 167 00:08:30,140 --> 00:08:33,409 ja see lisab rohkem infot et see, aga mida Kolb tegelikult 168 00:08:33,409 --> 00:08:37,480 ei teha, mis juhtub ei ole super väga oluline, kuid mis on oluline, 169 00:08:37,480 --> 00:08:43,640 on see, et enne tee, siis pane see @ app.route ja seejärel 170 00:08:43,640 --> 00:08:46,480 aadress liinil nii kaldkriipsuga on see, mida me 171 00:08:46,480 --> 00:08:48,360 nägin, kui me lihtsalt avada veebileht. 172 00:08:48,360 --> 00:08:49,580 Nii et kodulehel. 173 00:08:49,580 --> 00:08:51,037 See on lihtsalt kaldkriips teed. 174 00:08:51,037 --> 00:08:52,370 Ja siis on see funktsioon. 175 00:08:52,370 --> 00:08:54,453 Nimi funktsiooni võib olla mida iganes sa tahad. 176 00:08:54,453 --> 00:08:56,930 See ei pea tingimata pistmist liinil. 177 00:08:56,930 --> 00:08:59,440 Ja siis, mida iganes Funktsiooni tagasi, 178 00:08:59,440 --> 00:09:01,730 funktsioon peaks tagasi string. 179 00:09:01,730 --> 00:09:03,740 Ja see string saab sisaldavad HTML või midagi, 180 00:09:03,740 --> 00:09:06,920 ja mis on tegelikult, mida saab tagasi oma veebilehitseja nagu HTML, 181 00:09:06,920 --> 00:09:08,200 ja see muudab seda. 182 00:09:08,200 --> 00:09:12,030 >> Nii et see on sama kood mis oli näide 183 00:09:12,030 --> 00:09:16,430 et ma lihtsalt jooksin, nii et kui me külastada kaldkriipsuga ta nõuab Hello World funktsioon, mis 184 00:09:16,430 --> 00:09:20,470 lihtsalt tagastab stringi, Tere kolbi ja mis saab nende nimesid. 185 00:09:20,470 --> 00:09:27,290 >> Nii et on veel üks näide, mis on, kui sa külastad / hello, 186 00:09:27,290 --> 00:09:30,370 see prindib Tere Word, mis peaks tegelikult öelda, Hello World, 187 00:09:30,370 --> 00:09:32,010 kuid olgem teeselda, et oli tahtlik. 188 00:09:32,010 --> 00:09:35,140 Nii saab tõmmata, et üles reaalne kiire. 189 00:09:35,140 --> 00:09:41,290 >> Nii et kui te lähete localhost / hello, see on nüüd midagi muud printida. 190 00:09:41,290 --> 00:09:45,680 Nii et lihtsalt kiire näide sellest, kuidas saate luua kahel erineval moel. 191 00:09:45,680 --> 00:09:50,630 >> Niisiis, kuivõrd see ei ole super kasulikud, seal ei ole palju saate teha, 192 00:09:50,630 --> 00:09:55,360 võid lihtsalt teha kõik, et koos erineva HTML lehed, 193 00:09:55,360 --> 00:09:58,000 ja kui sa külastad konkreetse lk see lihtsalt laeb lehele. 194 00:09:58,000 --> 00:10:00,864 Vaatame mõned rohkem kasulikke asju, mida saate teha. 195 00:10:00,864 --> 00:10:03,780 Niisiis, üks asi, mida sa võib-olla märgata näiteks, et ma tõmmatakse 196 00:10:03,780 --> 00:10:07,160 up, et mul oli app.run (siluda = True). 197 00:10:07,160 --> 00:10:09,580 Ja jah, siis mis see silumise argument teeb, on 198 00:10:09,580 --> 00:10:14,600 et kui sa käivitada oma veebiserver, kui oled oma taotluse 199 00:10:14,600 --> 00:10:18,100 kui muudad faili, siis automaatselt uuesti serveriga. 200 00:10:18,100 --> 00:10:21,160 >> Ja nii sa tegelikult ei pea restart Python, mis on super kasulik. 201 00:10:21,160 --> 00:10:24,020 Ma ei näidata seda. 202 00:10:24,020 --> 00:10:26,960 Lubage mul tõmba oma koodi koos kirjaviga see, 203 00:10:26,960 --> 00:10:30,420 ja teeselda, et kirjaviga pandi seal tahtlikult õpetlik eesmärkidel. 204 00:10:30,420 --> 00:10:31,625 Lisame selle tagasi. 205 00:10:31,625 --> 00:10:33,140 Nüüd ta ütleb Hello World. 206 00:10:33,140 --> 00:10:34,410 Ma päästan ta. 207 00:10:34,410 --> 00:10:36,540 Ja kui me tõmmake tagasi üles terminali, saate 208 00:10:36,540 --> 00:10:39,520 öelda, et see on taaskäivitust sest see avastatakse muutusi, 209 00:10:39,520 --> 00:10:43,620 ja nii nüüd kui me laadige see leht, see välja printida õige asi. 210 00:10:43,620 --> 00:10:45,630 >> Nii siluda on super kasulik seda. 211 00:10:45,630 --> 00:10:48,740 Samuti, kui teil on omamoodi krahhi, nii 212 00:10:48,740 --> 00:10:54,370 las ma teen selle rakenduse krahhi võttes ta ei tagasta string. 213 00:10:54,370 --> 00:10:57,540 Niisiis, oletame, lihtsalt see tagasi Puudub mingil põhjusel. 214 00:10:57,540 --> 00:11:00,810 Ja siis, kui ma külastan seda lehele, see lihtsalt krahhi, 215 00:11:00,810 --> 00:11:04,465 aga server ei ole lihtsalt krahhi, see tegelikult annab teile super kasulik tagasi 216 00:11:04,465 --> 00:11:06,490 jälgi kõik, mis valesti läks. 217 00:11:06,490 --> 00:11:10,050 Ja mis on tõesti kena, on see, et igal samm selles back jälgi, 218 00:11:10,050 --> 00:11:14,260 võid avada interaktiivse laduma siin, ja omamoodi välja trükkida, mida 219 00:11:14,260 --> 00:11:17,780 muutujad soovite võtta pilk. 220 00:11:17,780 --> 00:11:21,054 >> Ja nii silumine on tõesti kasulik figuring 221 00:11:21,054 --> 00:11:23,470 mis toimub teie server, mitte lihtsalt näinud 222 00:11:23,470 --> 00:11:28,201 midagi PHP nagu 500 sisemine serveri viga, mis on super kasutu. 223 00:11:28,201 --> 00:11:30,700 Üks asi, mida peaks teadma, on et kui paned oma app Internetis 224 00:11:30,700 --> 00:11:34,260 nii et see on avalikkusele nähtav, siis ei taha lahkuda silumisrežiimis kohta, 225 00:11:34,260 --> 00:11:37,320 sest inimesed saavad tegelikult kasutada, et konsooli, et ma 226 00:11:37,320 --> 00:11:39,150 näitasin teile täita suvalise koodi. 227 00:11:39,150 --> 00:11:42,120 >> Et nad saaksid välja trükkida nagu iga salakoodi teil on seal, 228 00:11:42,120 --> 00:11:44,755 nad võivad vaadata täpselt kuidas teie veebileht töötab. 229 00:11:44,755 --> 00:11:46,630 Nii et see on väga kasulik katsetamiseks, kuid alati 230 00:11:46,630 --> 00:11:50,090 veenduge, et see välja võtta enne avaldate midagi online. 231 00:11:50,090 --> 00:11:56,640 >> Nii et kui te kasutate midagi nagu PHP, seal on seda ideed 232 00:11:56,640 --> 00:11:58,920 et sa ei liigu info vahel veebilehti 233 00:11:58,920 --> 00:12:03,620 pannes kohta tegelikult URL, mis on GET taotluse, 234 00:12:03,620 --> 00:12:07,490 kuid Kolb saab tegelikult midagi sedasorti, 235 00:12:07,490 --> 00:12:10,590 võttes liinil, mis on Muutuva osana sellest. 236 00:12:10,590 --> 00:12:14,090 >> Nii et kui te vaatate seda Näiteks ekraanil siin 237 00:12:14,090 --> 00:12:19,930 meil liinil, mis on ("/ hello /"), ja nii, kui sa külastad 238 00:12:19,930 --> 00:12:23,790 / hello / midagi, et midagi läheb tegelikult saada täidetud 239 00:12:23,790 --> 00:12:25,490 nimesse muutuja. 240 00:12:25,490 --> 00:12:27,850 Ja märkate, et funktsiooni mis kaasas, et marsruut 241 00:12:27,850 --> 00:12:31,302 peab võtma parameetri Nime, nii et see on tegelikult 242 00:12:31,302 --> 00:12:32,510 saada läks funktsiooni. 243 00:12:32,510 --> 00:12:34,190 >> Ja siis, kui sa oled sees, et funktsiooni, 244 00:12:34,190 --> 00:12:36,420 saab ravida, et nagu normaalne Python muutuja 245 00:12:36,420 --> 00:12:39,650 ja nii siis see välja printida Tere, ja see 246 00:12:39,650 --> 00:12:42,000 täitke nime kasutades mõned string formaati. 247 00:12:42,000 --> 00:12:48,060 >> Nii et lisada muutuja osad suunamises, kasutate nurksulu tähistamine. 248 00:12:48,060 --> 00:12:51,220 Ja soovi korral saad kasutada mida nimetatakse konverter. 249 00:12:51,220 --> 00:12:56,840 Ja nii, kui paned selle annotatsioon jämesooles, 250 00:12:56,840 --> 00:13:00,015 saate määrata, et see on int või float või tee, 251 00:13:00,015 --> 00:13:01,640 ja see automaatselt teisendada, et. 252 00:13:01,640 --> 00:13:05,130 Võite teha konverteerimine jooksul Python funktsiooni, 253 00:13:05,130 --> 00:13:09,710 lihtsalt kasutades valatud, kuid mõnikord, kui sa tahad, et see on keskmine, 254 00:13:09,710 --> 00:13:12,080 võite panna, et konverteerimise eeskiri olemas. 255 00:13:12,080 --> 00:13:15,930 >> Nii saab tõmba näide Mõne muutuja reegleid. 256 00:13:15,930 --> 00:13:21,480 Nii et siin see on samasugused struktuur, kolvist import 257 00:13:21,480 --> 00:13:25,030 Kolb, app = Kolb (_NAME_) ja siis jookseb lõpus. 258 00:13:25,030 --> 00:13:28,050 Meil on need kaks erinevat muutuja liinidel siin. 259 00:13:28,050 --> 00:13:29,900 Ja esimene, on üks, mis ma näitasin 260 00:13:29,900 --> 00:13:34,230 slaidi, mis oli see lihtsalt võtab string nimi 261 00:13:34,230 --> 00:13:35,650 ja siis välja printida Tere nimi. 262 00:13:35,650 --> 00:13:41,410 >> Ja siis teine üks kasutab muutmist. 263 00:13:41,410 --> 00:13:44,690 Nii et see automaatselt teisendada see int, ja siis topelt int, 264 00:13:44,690 --> 00:13:46,150 ja printida, et välja. 265 00:13:46,150 --> 00:13:48,220 Ja me ei tee mingit konverteerimise sees 266 00:13:48,220 --> 00:13:49,594 sest Kolb hoolitseb selle. 267 00:13:49,594 --> 00:13:53,181 Nii lähme see töötab. 268 00:13:53,181 --> 00:13:54,930 Kui teil on Kolb rakendus, 269 00:13:54,930 --> 00:13:58,440 Saate kontrollida-C välja peatada server töötab. 270 00:13:58,440 --> 00:14:02,420 Ja siis ma jooksen muutujad. 271 00:14:02,420 --> 00:14:11,740 >> Nii lähme localhost / hello / Esra ja Loodetavasti tere öelda mulle. 272 00:14:11,740 --> 00:14:14,530 273 00:14:14,530 --> 00:14:20,310 >> Nii kulus minu nimel, muutuja marsruut, ja täitis seda siin. 274 00:14:20,310 --> 00:14:23,950 Nii et ma näidata ka kiire Näiteks kahekordistada. 275 00:14:23,950 --> 00:14:28,600 Nii et kui te lähete / double / 3, see välja printida 6. 276 00:14:28,600 --> 00:14:31,440 Nii et see hoolitses muundumine juures. 277 00:14:31,440 --> 00:14:34,190 >> Nii saab ka seda teha float, ja midagi erilist, 278 00:14:34,190 --> 00:14:37,530 Kui teil on vaja täpsustada midagi tee, mis võimaldab seda aktsepteerida kaldkriipsud, 279 00:14:37,530 --> 00:14:39,155 kuid see ei tohiks tavaliselt olla probleem. 280 00:14:39,155 --> 00:14:41,480 281 00:14:41,480 --> 00:14:43,820 Seni oleme, veel äsja tagasi 282 00:14:43,820 --> 00:14:46,320 stringid, mis ei ole väga huvitav. 283 00:14:46,320 --> 00:14:48,730 >> Me võiksime tegelikult tagasi grammatiline HTML string. 284 00:14:48,730 --> 00:14:54,322 Nii kood saame lisada midagi nagu b-tag teha see julge, 285 00:14:54,322 --> 00:14:56,030 kuid enamik ajast sa tegelikult ei taha 286 00:14:56,030 --> 00:14:58,420 olema kirjalikult HTML kood Teie Pythoni kood. 287 00:14:58,420 --> 00:15:01,940 Läheb tõesti räpane, ja see ei ole hea aeg. 288 00:15:01,940 --> 00:15:06,430 >> Kolb võimaldab meil eraldi välja HTML sellest, mida nimetatakse Mall, 289 00:15:06,430 --> 00:15:09,467 ja nii kui sa mõtled nii MVC mudel 290 00:15:09,467 --> 00:15:11,550 et te olete juba tuttav, loodetavasti töötamine 291 00:15:11,550 --> 00:15:15,520 koos CS50 Finance natuke, sa ei mõtle Pythoni faile 292 00:15:15,520 --> 00:15:19,430 kui on rohkem Controller, kus nad suhtlevad iganes 293 00:15:19,430 --> 00:15:20,970 andmemudel, mida oleks võinud. 294 00:15:20,970 --> 00:15:24,900 >> Ja siis nad hüüdes Views ja edastavad teavet, et View 295 00:15:24,900 --> 00:15:28,120 täita teave HTML, mida ta vajab. 296 00:15:28,120 --> 00:15:30,490 Ja mida me nimetame neid seisukohti on Templates klassis. 297 00:15:30,490 --> 00:15:35,280 >> Nii Kolb kasutab teise Python moodul, mis see automaatselt 298 00:15:35,280 --> 00:15:38,620 paigaldada kui PIP paigaldada Kolb nimetatakse Jinja, mis 299 00:15:38,620 --> 00:15:40,885 võimaldab teil lisada need kokkuvõtvate HTML 300 00:15:40,885 --> 00:15:45,140 et näete ekraani, mis võimaldab paned asjad conditionals, 301 00:15:45,140 --> 00:15:47,230 ja silmad HTML. 302 00:15:47,230 --> 00:15:51,140 >> Nii tundub natuke nagu kuidas sa Võib kasutada PHP jooksul HTML-faili, 303 00:15:51,140 --> 00:15:57,380 kuid see on vaid siis, kui kolb server mahutab kuni HTML faili, 304 00:15:57,380 --> 00:16:01,610 see kestab see templating mootori ja sõeluda läbi selle ja täitke asju. 305 00:16:01,610 --> 00:16:06,650 Nii Kolb on render_template funktsiooni et näed allosas siin. 306 00:16:06,650 --> 00:16:14,300 Ja nii, kui sa seda lehekülge külastada, siis muudaks see hello.html Mall, 307 00:16:14,300 --> 00:16:16,407 ja siis täitke see HTML lehel. 308 00:16:16,407 --> 00:16:18,990 Nii saab lihtsalt käivitada see reaalne kiire, ja vaata, kuidas see välja näeb, 309 00:16:18,990 --> 00:16:21,198 ja siis ma lähen läbi natuke lähemalt. 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 Niisiis, teie Templates ei kavatse minna oma Blanketid. 312 00:16:30,260 --> 00:16:33,980 See automaatselt otsima jooksul Blanketid eest, et mall. 313 00:16:33,980 --> 00:16:35,615 Nii saab avada see üles. 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 Niisiis, ma joosta templating näiteks. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> Nii et kui ma lähen / hello / Esra, see on see kohutav, 318 00:17:03,660 --> 00:17:05,930 ebameeldiv telk tag et panin. 319 00:17:05,930 --> 00:17:08,050 Väga kena, väga dünaamiline. 320 00:17:08,050 --> 00:17:09,349 Ma olen suur fänn. 321 00:17:09,349 --> 00:17:13,900 Aga mis juhtub siis, kui Ma lihtsalt minema, / hello? 322 00:17:13,900 --> 00:17:15,220 Nii see lihtsalt ütleb Hello World. 323 00:17:15,220 --> 00:17:17,678 Ma ei liigu see nimi ja ta täitis seda automaatselt. 324 00:17:17,678 --> 00:17:22,050 Vaatame, kuidas ta seda tegi, et kuidas saame lahti saada, et telk võibolla. 325 00:17:22,050 --> 00:17:26,240 >> Nii et siin, see on omamoodi huvitav näide, 326 00:17:26,240 --> 00:17:29,101 Kui te olete tuttav, kuidas lüliti avaldused tööd keeles. 327 00:17:29,101 --> 00:17:31,350 Ütle see on omamoodi nagu, et mingi kukkumise läbi, 328 00:17:31,350 --> 00:17:34,266 kus sa tegelikult lisatud kaks teistmoodi sama funktsiooni. 329 00:17:34,266 --> 00:17:41,190 Nii me kinnitage / hello marsruudi ja Kirje / hello / nimi liinil Tere, 330 00:17:41,190 --> 00:17:45,130 ja me määrata kasutades-- Python võimaldab täpsustada vaikefunktsioon arguments-- 331 00:17:45,130 --> 00:17:48,300 nii et kui puudub nime, nii Kui me läheme lihtsalt / hello, 332 00:17:48,300 --> 00:17:50,680 see automaatselt filtreerida et nimi on võrdne Puudub. 333 00:17:50,680 --> 00:17:55,010 >> Niisiis, me muuta Malli nimi = nimi, 334 00:17:55,010 --> 00:17:59,510 nii see läheb nime parameeter võrdub selle nime funktsiooni parameeter, 335 00:17:59,510 --> 00:18:00,730 malli. 336 00:18:00,730 --> 00:18:04,040 See ikka ei selgita, kuidas on otsustada, kas printida Hello World, 337 00:18:04,040 --> 00:18:05,100 või printida oma nime. 338 00:18:05,100 --> 00:18:08,050 Nii saab tegelikult otsima malli ise, 339 00:18:08,050 --> 00:18:11,610 ja vaata, kui see on pärit. 340 00:18:11,610 --> 00:18:18,680 >> Niisiis, selles Mall, me tegelikult on mõned tingimisi loogika 341 00:18:18,680 --> 00:18:20,580 mida mõned inimesed väidavad, siis tegelikult 342 00:18:20,580 --> 00:18:23,730 ei tohiks olla palju tingimisi Loogika teie Mall ise. 343 00:18:23,730 --> 00:18:26,310 See peaks olema rohkem piires Controller, kuid see näide 344 00:18:26,310 --> 00:18:27,476 see on midagi üsna väike. 345 00:18:27,476 --> 00:18:31,060 Nii et siin, me kontrollime, kui nime, nii Kui nimi ei ole võrdne Puudub, 346 00:18:31,060 --> 00:18:33,130 Kui nimi on tegelikult möödunud aastal, siis me 347 00:18:33,130 --> 00:18:36,210 tere öelda, nime ja selle Päise ja telk, 348 00:18:36,210 --> 00:18:41,490 kõik see normaalne HTML, muidu me välja printida Tere, maailm lihtsalt tavaliselt. 349 00:18:41,490 --> 00:18:45,820 Nii paar asja märkate siin kuidas vormindada templating, 350 00:18:45,820 --> 00:18:49,110 on see, et kõik need tingimisi avaldused, 351 00:18:49,110 --> 00:18:54,475 omamoodi nagu kuidas me PHP seda, kui soovite lisada mõned PHP, 352 00:18:54,475 --> 00:18:58,380 Te kasutate vähem kui küsimus märk, see on omamoodi analoogne siin 353 00:18:58,380 --> 00:19:00,140 koos {%. 354 00:19:00,140 --> 00:19:02,130 >> Nii et siin on meil tingimisi koodi. 355 00:19:02,130 --> 00:19:05,920 Ja siis, kui sa tegelikult tahad sõna otseses mõttes hinnata midagi, ja print 356 00:19:05,920 --> 00:19:08,710 see välja ekraani, siis kasutage kahekordset traksid. 357 00:19:08,710 --> 00:19:12,310 Nii et siin on topelt traksid, ja siis me täpsustada nimi, 358 00:19:12,310 --> 00:19:15,500 nii selles, et anda hinnang muutuja nimi, mida 359 00:19:15,500 --> 00:19:18,860 võeti vastu alates muuta malli funktsioon, 360 00:19:18,860 --> 00:19:21,484 mitte ainult trükkimise välja, kui me saime lahti neist, 361 00:19:21,484 --> 00:19:23,150 see oleks lihtsalt välja printida sõna "nime." 362 00:19:23,150 --> 00:19:26,340 Nii, see on midagi, olge. 363 00:19:26,340 --> 00:19:29,792 >> Nii teine ​​asi teade on, et kui me 364 00:19:29,792 --> 00:19:31,500 soovite kasutada render_template funktsiooni, 365 00:19:31,500 --> 00:19:34,490 meil tegelikult on importida seda selgesõnaliselt kolbi. 366 00:19:34,490 --> 00:19:36,915 Ja see on näide moodulpõhimõtet kolbi 367 00:19:36,915 --> 00:19:39,290 et sa ei pea importima asjad, mida sa enam ei vaja. 368 00:19:39,290 --> 00:19:41,290 Sa võid tuua funktsioone sa tegelikult 369 00:19:41,290 --> 00:19:43,450 ei pea, mis on mõnikord kena, et sa seda ei tee 370 00:19:43,450 --> 00:19:46,560 on, et kõik need funktsioonid istuvad, et te ei kasuta, 371 00:19:46,560 --> 00:19:49,730 ka, kui te unustada, et teil vaja importida render_template, 372 00:19:49,730 --> 00:19:52,660 sa ilmselt saad hoiatuse et anname teile teada, et. 373 00:19:52,660 --> 00:19:56,700 Niisiis, mis on üle templating. 374 00:19:56,700 --> 00:20:01,680 >> Niisiis, oleme näidanud, kuidas lihtsaid veebilehti, 375 00:20:01,680 --> 00:20:04,947 ja lisada natuke rohkem loogikat see poolest muutuja suunamises. 376 00:20:04,947 --> 00:20:08,280 See võimaldab teil teha erinevaid asju, mis põhineb Mis URL lähete, ja ka siis, anda 377 00:20:08,280 --> 00:20:11,950 HTML natuke rohkem mõistust osas, kuidas sa tahad, et muuta asju. 378 00:20:11,950 --> 00:20:14,210 Sa ei pea panema kõik HTML oma Python, 379 00:20:14,210 --> 00:20:16,640 aga päris palju iga veebirakendus, 380 00:20:16,640 --> 00:20:21,480 sa lähed tahan mingisugune Andmete mudeli sellega seotud. 381 00:20:21,480 --> 00:20:25,560 >> Ja nii traditsiooniliselt, see oleks midagi nagu SQL andmebaasi. 382 00:20:25,560 --> 00:20:30,280 Ja sa võid suhelda otse SQL. 383 00:20:30,280 --> 00:20:32,190 Python on, ma arvan, et see nn. 384 00:20:32,190 --> 00:20:33,040 SQLite 3. 385 00:20:33,040 --> 00:20:38,454 Sa võid importida SQLite 3 ja täita SQL päringuid otse, 386 00:20:38,454 --> 00:20:40,870 aga ma ei tea sinust, aga ma tõesti ei meeldi, lihtsalt, 387 00:20:40,870 --> 00:20:42,750 kirjalikult esitatud SQL päringuid. 388 00:20:42,750 --> 00:20:45,350 See kipub saada tõesti pikk ja keeruline. 389 00:20:45,350 --> 00:20:49,180 >> Ja nii, midagi, mis Mulle meeldib kasutada on, mis on 390 00:20:49,180 --> 00:20:53,610 tuntakse ORM, mis on objekti-relatsiooniline kaardistamine. 391 00:20:53,610 --> 00:20:56,890 Ja punkti kohta objekti-relatsiooniline kaardistamine, 392 00:20:56,890 --> 00:21:00,100 on see, et on olemas kaks erinevat kuidas saate mõelda andmebaasides. 393 00:21:00,100 --> 00:21:03,240 >> Nii näiteks, et Professor Humala tavaliselt 394 00:21:03,240 --> 00:21:07,660 kasutab klassis, on Exceli tabeli, kus sul on need read ja need sambad, 395 00:21:07,660 --> 00:21:10,210 ja see on tõesti kasulik kuidas see on esindatud SQL 396 00:21:10,210 --> 00:21:13,170 ja kuidas sa suhtled, kuid teine ​​võimalus, et see on tegelikult 397 00:21:13,170 --> 00:21:16,390 kasulik mõelda mõnikord, on nii klassid ja objektid. 398 00:21:16,390 --> 00:21:20,420 >> Nii et selle asemel mõtlemine Iga tabeli, millel 399 00:21:20,420 --> 00:21:23,040 Selles reas, mis on teatud teavet, saate tegelikult 400 00:21:23,040 --> 00:21:26,100 ma arvan et kui on Iga tabel on klass, 401 00:21:26,100 --> 00:21:29,810 ja seejärel iga astme klass on teatud omadused. 402 00:21:29,810 --> 00:21:35,110 Niisiis, selles näites juhtumeid klassi on read tabelis, 403 00:21:35,110 --> 00:21:37,490 ja siis iga kinnisasja olla tabeli tulbas. 404 00:21:37,490 --> 00:21:40,840 >> Niisiis, ORM, et mulle meeldib kasutada nimetatakse peewee. 405 00:21:40,840 --> 00:21:43,520 See on tõesti väike, omamoodi nagu kolbi. 406 00:21:43,520 --> 00:21:46,760 Ma arvan, et nad lähevad hästi kokku, kuid on olemas palju teisi ORMS 407 00:21:46,760 --> 00:21:47,730 mida saab kasutada. 408 00:21:47,730 --> 00:21:52,180 Palju populaarsem neist on tuntud SQLAlchemy, 409 00:21:52,180 --> 00:21:56,050 ja ma ei mäleta, miks ma algselt Valisin peewee üle SQLAlchemy, 410 00:21:56,050 --> 00:21:58,311 või ma ütlen teile, miks ma arvan, et see on parim, 411 00:21:58,311 --> 00:22:01,060 aga me lihtsalt kavatse kasutada seda üks, sest ma tean, kuidas seda kasutada. 412 00:22:01,060 --> 00:22:04,760 >> Niisiis, üks küsimus on, miks sa vaeva kasutades ORM, 413 00:22:04,760 --> 00:22:07,552 selle asemel, et lihtsalt otse kirjalikult SQL päringuid? 414 00:22:07,552 --> 00:22:09,760 Ja ma arvan, et parimal juhul on see, et sa ei ole tegelikult 415 00:22:09,760 --> 00:22:11,356 on kirjutada SQL päringuid. 416 00:22:11,356 --> 00:22:14,480 See on palju lihtsam, kui ma näitan sulle, et teha asju nagu valikut, sisestamise, 417 00:22:14,480 --> 00:22:16,157 kustutamine, eriti luues tabelid. 418 00:22:16,157 --> 00:22:17,990 See on palju lihtsam kirjutada klassi struktuur, 419 00:22:17,990 --> 00:22:22,250 kui see on struktureerida Loo Tabel avalduse, kuid üks asi 420 00:22:22,250 --> 00:22:25,710 olema teadlikud, et ORM püüan oma parima, 421 00:22:25,710 --> 00:22:28,640 aru saada, mis on kõige tõhus SQL päringu oleks, 422 00:22:28,640 --> 00:22:30,110 kuid mõnikord saab see vale. 423 00:22:30,110 --> 00:22:32,660 >> Ja eriti kui sa oled töötamisel suur andmebaas, 424 00:22:32,660 --> 00:22:35,557 võite märgata, et päringu et tuleks töötab kiiresti, 425 00:22:35,557 --> 00:22:36,640 tegelikult aset enam. 426 00:22:36,640 --> 00:22:40,164 Ja kui te vaatate kapoti alla kuidas ORM tõlgendab et SQL, 427 00:22:40,164 --> 00:22:42,080 see võib olla midagi tõesti naeruväärne, 428 00:22:42,080 --> 00:22:44,371 lihtsalt sellepärast, et see omamoodi viipas oma kavatsustest valesti. 429 00:22:44,371 --> 00:22:48,080 Ja seal on olnud aegu, kus Olen olnud alistada see, ja lihtsalt 430 00:22:48,080 --> 00:22:52,429 täita oma SQL päringuid, vaid sest see oli sõelumine kummaline viis. 431 00:22:52,429 --> 00:22:54,220 Niisiis, seal on mõned õhuliini, just nii, nagu 432 00:22:54,220 --> 00:22:58,680 et ta koostab oma avaldused jaguneb SQL. 433 00:22:58,680 --> 00:23:06,200 >> Nii, vaatame super kiiresti kell lihtne näide andmemudel 434 00:23:06,200 --> 00:23:07,350 et sa võiksid kasutada. 435 00:23:07,350 --> 00:23:11,880 Niisiis, see on Pythoni kood, ja nii Esimene asi, mida sa teha tahad on 436 00:23:11,880 --> 00:23:12,950 peewee import *. 437 00:23:12,950 --> 00:23:15,850 Niisiis, erinevalt Kolb, kus teil on kõik need üksikud moodulid, 438 00:23:15,850 --> 00:23:18,125 ja soovid importida kolbi ja kirjutada Mall, ja mõned teised 439 00:23:18,125 --> 00:23:20,690 et me näeme hiljem, alates peewee, saate lihtsalt importida kõik, 440 00:23:20,690 --> 00:23:22,290 sest see on päris väike raamatukogu. 441 00:23:22,290 --> 00:23:26,490 >> Niisiis, esimene asi, mida sa teha tahad, on tegelikult luua selle andmebaasi objekt. 442 00:23:26,490 --> 00:23:31,212 Nii, teil on db = SqliteDatabase, ja siis nime oma andmebaasis. 443 00:23:31,212 --> 00:23:33,170 Ja see tegelikult luua andmebaasi objekt 444 00:23:33,170 --> 00:23:36,230 et saab suhelda, koos peewee. 445 00:23:36,230 --> 00:23:40,570 >> Ja siis on meil tegelik mudel, mida me tahame luua. 446 00:23:40,570 --> 00:23:42,470 Nii tabelis tahame luua. 447 00:23:42,470 --> 00:23:47,270 Niisiis, mis peewee, igas klassis on oma laua jooksul oma andmebaasi. 448 00:23:47,270 --> 00:23:52,800 Niisiis, kõik tunnid pärivad baasmudel 449 00:23:52,800 --> 00:23:55,960 ja kapitali M mudel midagi, mis on määratletud peewee. 450 00:23:55,960 --> 00:24:02,162 >> Niisiis, kõik teie mudelid peaksid pärivad oma kõrgeima ülemklassi, 451 00:24:02,162 --> 00:24:04,620 nad peaksid pärivad mudel, kuid milline on väga lahe, 452 00:24:04,620 --> 00:24:07,610 on see, et saate tegelikult on teie mudelid pärivad. 453 00:24:07,610 --> 00:24:10,530 Ja palju aega, teie andmed mudelid ei pruugi 454 00:24:10,530 --> 00:24:13,754 teha kena pärandi hierarhia, kuid korda, kus nad teevad, see on tõesti kena, 455 00:24:13,754 --> 00:24:15,920 sest sa oled mudel omane üksteisest. 456 00:24:15,920 --> 00:24:19,710 >> Niisiis, me määratletud selle klassi "õpilane", mis pärib mudel, 457 00:24:19,710 --> 00:24:21,170 ja see on kolm omadust. 458 00:24:21,170 --> 00:24:24,080 See on ID, mis on PrimaryKeyField, mis 459 00:24:24,080 --> 00:24:26,920 on midagi, mis on sätestatud poolt peewee nimi on CharField, 460 00:24:26,920 --> 00:24:28,490 ja hinne on IntegerField. 461 00:24:28,490 --> 00:24:32,260 Nii et see võib olla või mitte olla kuidas CS50 tegelikult salvestab kõik 462 00:24:32,260 --> 00:24:33,650 õpilaste klassid. 463 00:24:33,650 --> 00:24:36,060 Ei ole, kuid see, kuidas ma teeksin seda. 464 00:24:36,060 --> 00:24:37,920 >> Ja siis on sees Selle klassi, ja see 465 00:24:37,920 --> 00:24:41,620 on midagi, mida saate teha koos Python, sul võib olla pesastatud klassid. 466 00:24:41,620 --> 00:24:43,920 Ja see on midagi, mis on nõutud peewee. 467 00:24:43,920 --> 00:24:47,250 Nii, see klass Meta, sa pead täpsustada, et andmebaas on 468 00:24:47,250 --> 00:24:49,830 võrdne objekti et oleme loonud üle. 469 00:24:49,830 --> 00:24:54,339 Ja seda ütleb, mida faili on selles tabelis tegelikult läheb sisalduda. 470 00:24:54,339 --> 00:24:57,130 Nii et see on midagi, mida sa pead teha kõigis oma mudeleid. 471 00:24:57,130 --> 00:24:59,380 Sa pead lihtsalt täpsustada selle Meta klassi 472 00:24:59,380 --> 00:25:01,400 et andmebaas on võrdne db. 473 00:25:01,400 --> 00:25:03,940 Mida ma tavaliselt teen, kui mul on hunnik erinevaid mudeleid, 474 00:25:03,940 --> 00:25:05,910 on see, et mul on üks alus mudel, mida ma tavaliselt 475 00:25:05,910 --> 00:25:08,839 lihtsalt helistada "baasmudel" mis on Meta klassi, 476 00:25:08,839 --> 00:25:10,380 ja see seab andmebaasi võrdne db. 477 00:25:10,380 --> 00:25:13,710 Ja siis kõik mu järgnevate mudelite pärivad selle baasi klassi. 478 00:25:13,710 --> 00:25:16,760 Ja siis ma ei pea muretsema seadmise kohta Meta klassi. 479 00:25:16,760 --> 00:25:21,490 >> Niisiis, kui see tegelikult saab koostatud jaguneb SQL avalduse 480 00:25:21,490 --> 00:25:24,875 see näeb välja selline vastik asi maha siin, "create table õpilase ID täisarv, 481 00:25:24,875 --> 00:25:26,020 " mida iganes. 482 00:25:26,020 --> 00:25:30,002 >> Ja ma arvan, et see on lühem, see SQL päring siin, 483 00:25:30,002 --> 00:25:32,960 aga kui sa vaatad seda klassi siin näed täpselt, mis toimub. 484 00:25:32,960 --> 00:25:36,116 Näete, mida elualaldel seal on, mida nad on kutsutud, 485 00:25:36,116 --> 00:25:38,115 ja nii, ma arvan, et Vaadates seda Pythoni kood 486 00:25:38,115 --> 00:25:43,340 on palju selgem ja arusaadavam kui üritan kirjutada seda SQL päring. 487 00:25:43,340 --> 00:25:45,990 >> Nii, et tegelikult Andmebaasi kasutamiseks 488 00:25:45,990 --> 00:25:48,470 meil ühendada jooksul Python. 489 00:25:48,470 --> 00:25:52,770 Niisiis, ma tavaliselt kirjutada funktsiooni nimetatakse initialize_db mis teeb kahte asja. 490 00:25:52,770 --> 00:25:54,880 See võtab andmebaasis objekti db ja see 491 00:25:54,880 --> 00:25:58,360 ühendub see, mis lihtsalt avab JAGU andmebaasi. 492 00:25:58,360 --> 00:26:00,860 Kui sa oled lihtsalt töötab küll veebisait teie kohalikus arvutis, 493 00:26:00,860 --> 00:26:04,320 see ei ole super suur asi muretsema umbes ühendamisel ja lahtiühendamisel, 494 00:26:04,320 --> 00:26:06,885 aga kui teil on see veebilehel, siis 495 00:26:06,885 --> 00:26:10,010 soovite veenduda, et iga kord, kui kasutaja ühendub see, kui nad sulgeda 496 00:26:10,010 --> 00:26:12,270 kodulehel, et nad lahti nii, et teil ei ole kamp inimesi ühendada 497 00:26:12,270 --> 00:26:14,480 oma andmebaasi kõik korraga. 498 00:26:14,480 --> 00:26:16,370 >> Ja siis, kui te ühendust andmebaasi, 499 00:26:16,370 --> 00:26:20,832 soovite helistada db.create_tables, ja nimekirja mudelid, mida soovite 500 00:26:20,832 --> 00:26:21,540 Tabelite loomine. 501 00:26:21,540 --> 00:26:23,950 Nii et siin ma tahan luua seda tudeng. 502 00:26:23,950 --> 00:26:28,070 Ja siis, mis on oluline, on täpsustada ohutu = True kõige aeg. 503 00:26:28,070 --> 00:26:30,380 Mis see avaldus teeme, on see, et 504 00:26:30,380 --> 00:26:33,580 loob lauad õpilase mudel, kuid ainult 505 00:26:33,580 --> 00:26:36,109 kui see tabel ei ole loodud juba. 506 00:26:36,109 --> 00:26:37,400 Seda ohutu täpsustab. 507 00:26:37,400 --> 00:26:39,150 Seega ei kirjuta Sinu olemasolevasse tabelisse, 508 00:26:39,150 --> 00:26:41,525 see ainult luua uusi tabel, kui ei ole kedagi. 509 00:26:41,525 --> 00:26:45,090 Nii võid lihtsalt luua Tabelite kord kasutades SQL. 510 00:26:45,090 --> 00:26:49,410 Ja siis on andmebaasi istung seal, ja siis ühendada iga kord, 511 00:26:49,410 --> 00:26:52,450 kuid see on tavaliselt kena lihtsalt panna see create_tables kõne 512 00:26:52,450 --> 00:26:55,550 nii et kui sa kunagi kustutada oma andmebaasi, kui sa jooksed oma veebilehitseja 513 00:26:55,550 --> 00:26:57,960 app uuesti, siis uuesti seda. 514 00:26:57,960 --> 00:27:00,730 >> Niisiis, lihtsalt veendumaks, et ohutu täpsustatakse, et olla tõsi, 515 00:27:00,730 --> 00:27:03,580 või leiad oma andmed lihtsalt saada clobbered iga kord. 516 00:27:03,580 --> 00:27:06,380 Ja siis saate lihtsalt helistada initialize_db luua 517 00:27:06,380 --> 00:27:09,820 ühendus ja luua tabelid vajadusel. 518 00:27:09,820 --> 00:27:13,150 >> Niisiis, kõige tavalisem asi mida sa tahad seda teha, 519 00:27:13,150 --> 00:27:15,920 või üks levinumaid asju, on tegelikult asjade sisestamiseks 520 00:27:15,920 --> 00:27:17,170 oma andmebaasi. 521 00:27:17,170 --> 00:27:19,430 Ja nii, selle asemel kirjutada lisada 522 00:27:19,430 --> 00:27:21,990 avalduse koos kõigi määratletud väärtustele, 523 00:27:21,990 --> 00:27:24,650 tegelikult võite helistada funktsiooni õpilase klassi. 524 00:27:24,650 --> 00:27:28,200 Niisiis, kui loote klassi et pärib mudel, 525 00:27:28,200 --> 00:27:30,200 see on see luua meetod. 526 00:27:30,200 --> 00:27:33,870 >> Niisiis, sa klassi name.create, ja teie parameetrid 527 00:27:33,870 --> 00:27:35,260 mida soovite läbida. 528 00:27:35,260 --> 00:27:39,200 Niisiis, kui ma tahan lisada mõned õpilased meie CS50 hinne raamat näiteks 529 00:27:39,200 --> 00:27:41,820 Ma panen David, kes on väga hea hinne, ta on 95. 530 00:27:41,820 --> 00:27:45,100 Ja mina, kes ei tee nii hästi CS50, mul on 50. 531 00:27:45,100 --> 00:27:47,600 Ja nii kena asi mida see luua funktsioon teeb, 532 00:27:47,600 --> 00:27:53,040 on see, et ta tagastab näiteks või rida, et loodud tabelis 533 00:27:53,040 --> 00:27:55,750 ja nii siis salvestada et on varieeruv ning töö hiljem. 534 00:27:55,750 --> 00:27:58,830 Teil on võimalik muuta ümber, mis Ma näitan näide. 535 00:27:58,830 --> 00:28:03,050 >> Pange tähele, et ma ei ole tuleks täpsustada ID, 536 00:28:03,050 --> 00:28:09,340 sest kuna see on PrimaryKeyField see automaatselt 537 00:28:09,340 --> 00:28:10,930 juurdekasvu, kui sa ei määra seda. 538 00:28:10,930 --> 00:28:12,250 Ja tegelikult, siis ilmselt ei täpsusta ta, 539 00:28:12,250 --> 00:28:14,810 sest te võite kogemata Tellida kellegi ID. 540 00:28:14,810 --> 00:28:16,830 Ja sa tahad teha kindel, et see on ainulaadne. 541 00:28:16,830 --> 00:28:20,662 >> Niisiis, tegelikult kõige ühine asi, mida sa teha tahad, 542 00:28:20,662 --> 00:28:22,620 Ilmselt valida välja Andmebaasi kui sa 543 00:28:22,620 --> 00:28:24,078 on palju teavet seal. 544 00:28:24,078 --> 00:28:27,360 Ja nii, kui sa tahad saada kõike, nii samaväärne valige star 545 00:28:27,360 --> 00:28:30,940 üliõpilased avalduses, et oleks lihtsalt student.select. 546 00:28:30,940 --> 00:28:34,380 Ja see annab sulle tagasi massiivi kõik õpilase vastuväite see 547 00:28:34,380 --> 00:28:35,770 et sa Käi soovite. 548 00:28:35,770 --> 00:28:37,019 Saad asju välja. 549 00:28:37,019 --> 00:28:39,310 Ja enamiku ajast, siis ei lihtsalt tahan teha vali, 550 00:28:39,310 --> 00:28:40,935 sa tegelikult tahad midagi täpsustada. 551 00:28:40,935 --> 00:28:44,580 Ja nii saate kett koos nende funktsioon nõuab, 552 00:28:44,580 --> 00:28:48,830 meeldib, kuidas sa oleks kett koos avaldused SQL. 553 00:28:48,830 --> 00:28:53,002 Nii saab teha student.select (). Kus selles näites. 554 00:28:53,002 --> 00:28:54,710 Ja siis saate täpsustada tingimused, 555 00:28:54,710 --> 00:28:57,880 lihtsalt tavaliste Python Tõeväärtused vaadata asju. 556 00:28:57,880 --> 00:29:02,110 >> Niisiis, sel juhul sa tahad piirata, mida sa seadmise, 557 00:29:02,110 --> 00:29:06,790 kus student.grade on võrdne 50, ja student.name on võrdne Esra, 558 00:29:06,790 --> 00:29:09,130 nii, et lihtsalt mind välja. 559 00:29:09,130 --> 00:29:11,340 Ja teate, üks tõesti peen asi siin on 560 00:29:11,340 --> 00:29:15,570 et kui soovite täpsustada ja / ja või või / või 561 00:29:15,570 --> 00:29:19,840 Python, sa muidu kasutaksid, Ma arvan, et sõna "ja" tegelikult, 562 00:29:19,840 --> 00:29:23,351 aga siin kasutada ühtse ampersand, mis on tavaliselt bitwise operaator, 563 00:29:23,351 --> 00:29:25,600 kuid seekord erandkorras, just nii peewee teeb seda, 564 00:29:25,600 --> 00:29:27,660 kasutate ühe ampersand täpsustada "ja". 565 00:29:27,660 --> 00:29:29,451 See on midagi, mis Ma saan sassi palju, 566 00:29:29,451 --> 00:29:32,530 aga see ei tulnud välja et palju praktikas. 567 00:29:32,530 --> 00:29:36,350 >> Ja siis, kui olete kõik õpilased välja andmebaasi, 568 00:29:36,350 --> 00:29:39,420 kui olete teinud oled valige ja teie kulumise või mis iganes, 569 00:29:39,420 --> 00:29:42,334 saate foreach loop, nagu normaalne Python, 570 00:29:42,334 --> 00:29:44,500 koos mingit iteraatoris või mingit valikut. 571 00:29:44,500 --> 00:29:46,333 Nii saate teha, et s in student.select (). whe 572 00:29:46,333 --> 00:29:52,930 re (Student.grade <75), ja nii see tahe Käi iga õpilane tabelis 573 00:29:52,930 --> 00:29:56,260 kelle hinne on vähem kui 75, mis Sel juhul on ikka ainult mulle. 574 00:29:56,260 --> 00:29:59,218 Ja siis võiks teha midagi jooksul et loop, nagu Kirjuta mulle e-mail 575 00:29:59,218 --> 00:30:01,680 ja ütle mulle, et tegelikult pöörduda minu probleem komplekti. 576 00:30:01,680 --> 00:30:04,550 >> Nii, teine ​​asi, mida saab teha, on see väga lihtne 577 00:30:04,550 --> 00:30:06,460 uuendada rida koos tabeli. 578 00:30:06,460 --> 00:30:08,720 Niisiis, pidage meeles siia tagasi, Teie kui ma järele, 579 00:30:08,720 --> 00:30:11,440 Võtsin väärtust, mis oli tagastatud student.create, 580 00:30:11,440 --> 00:30:14,920 ja ma määras selle nimeks Ezra. 581 00:30:14,920 --> 00:30:18,995 Ja nii nüüd, saate muuta väärtuste, et näiteks 582 00:30:18,995 --> 00:30:20,870 nagu sa oleks normaalne klassi Python. 583 00:30:20,870 --> 00:30:25,060 >> Nii saab ezra.grade = 95 ja mis uuendab kohaliku koopia, 584 00:30:25,060 --> 00:30:28,380 aga kui sa tegelikult tahad kinnitama, et muutus andmebaasis 585 00:30:28,380 --> 00:30:31,410 sa pead helistada ezra.save, siis nimetatakse .save meetod 586 00:30:31,410 --> 00:30:32,650 kohta näiteks. 587 00:30:32,650 --> 00:30:38,085 >> Ja nii nüüd olen edukalt muudetud minu klass jooksul andmebaasis. 588 00:30:38,085 --> 00:30:41,210 Nii, siis oletame, et ma takerduda muudan hinne sees andmebaasis. 589 00:30:41,210 --> 00:30:44,126 Professor Humala on ilmselt läheb et soovid kustutada mind klassi, 590 00:30:44,126 --> 00:30:48,630 ja nii võite helistada .delete Näiteks meetod lihtsalt, et asi. 591 00:30:48,630 --> 00:30:51,674 >> Niisiis, kui sa tahad minna tagasi see loop siin 592 00:30:51,674 --> 00:30:53,465 ja reaalselt asemel E-kirjade saatmine kõigile 593 00:30:53,465 --> 00:30:56,577 õpilased, kelle palgaaste on vähem kui 75, siis tahtsin need kustutada, 594 00:30:56,577 --> 00:30:58,660 selle loop võid helistada s.delete näiteks. 595 00:30:58,660 --> 00:31:04,180 596 00:31:04,180 --> 00:31:07,780 Ja kõige viimane asi, mida sa teha tahad, on, kui sa ühendust luua, 597 00:31:07,780 --> 00:31:10,350 ja sa oled teinud oma töö, soovite helistada db.close, 598 00:31:10,350 --> 00:31:13,190 kus db on selles andmebaasis vastuväiteid, mis meil oli enne. 599 00:31:13,190 --> 00:31:18,290 Ja sa tahad teha kindel, et kõik suletakse välja. 600 00:31:18,290 --> 00:31:18,790 >> Cool. 601 00:31:18,790 --> 00:31:22,410 Nüüd on mul näiteks taotluse. 602 00:31:22,410 --> 00:31:26,880 Olen omamoodi eelnevalt teinud kõike lihtsalt nii, et seal ei ole ühtegi live kodeerimine 603 00:31:26,880 --> 00:31:30,220 vigu, aga me ei käi seda ja vaata, kuidas sa paneks Kolb 604 00:31:30,220 --> 00:31:33,685 ja peewee kokku ja teha lihtne app. 605 00:31:33,685 --> 00:31:38,680 Ma kutsun seda CS50 käratsema, ja see on omamoodi lihtne blogi platvormi. 606 00:31:38,680 --> 00:31:41,150 >> Niisiis, esimene, ma käivitada ja näidata kuidas see välja näeb, 607 00:31:41,150 --> 00:31:42,890 ja siis saame uurida täpsemalt koodi. 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 Okei, nii et olgem lihtsalt käivitada. 610 00:32:02,830 --> 00:32:14,040 611 00:32:14,040 --> 00:32:17,250 Cool, ma teen seda natuke väiksem. 612 00:32:17,250 --> 00:32:20,000 See ei ole väga ilus, lihtsalt sellepärast, Ma ei teinud palju CSS, 613 00:32:20,000 --> 00:32:23,255 Aga mida see tähendab, et ta on Selle andmebaasi blogipostitusi, 614 00:32:23,255 --> 00:32:25,630 ja see läheb läbi kõik neid, ning see näitab nende 615 00:32:25,630 --> 00:32:28,170 lehel, et viimaste. 616 00:32:28,170 --> 00:32:30,920 Ja nii need on vaid mõned postitused et mul oli salvestatud andmebaasi. 617 00:32:30,920 --> 00:32:35,680 >> Nii et kui me tahame luua uus post, saame minna Lisa uus postitus, 618 00:32:35,680 --> 00:32:42,720 ja saame sisestada pealkiri post, nii midagi, CS50 seminar. 619 00:32:42,720 --> 00:32:45,360 620 00:32:45,360 --> 00:32:46,735 Wow, tõesti nautida seminar. 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 Siis vajuta post, ja see suunata teid tagasi kodulehele, 624 00:32:56,060 --> 00:33:00,039 ja siis näete, et Viimane postitus lisati. 625 00:33:00,039 --> 00:33:01,580 Ja meil on veel kõik need olemas. 626 00:33:01,580 --> 00:33:08,080 Nüüd oletame, sammult läbi kõik koodi ja kuidas seda rakendatakse. 627 00:33:08,080 --> 00:33:11,995 >> Niisiis, ma arvan, et esimene asi, mis olgem vaatleme, on tegelikult mudelid. 628 00:33:11,995 --> 00:33:14,120 Palju aega, mil sa projekteerimisel midagi, 629 00:33:14,120 --> 00:33:17,036 tahad mõelda kõigepealt, kuidas sa lähed esindavad oma andmeid, 630 00:33:17,036 --> 00:33:22,915 ja siis kavandada asju ümber, et nii et kõik on mõtet. 631 00:33:22,915 --> 00:33:25,290 Ja see on tegelikult, kuidas ma tegin seda, kui olin tehes seda, 632 00:33:25,290 --> 00:33:28,030 Istusin ja mõtlesin, Mida ma tahan ametikohal. 633 00:33:28,030 --> 00:33:32,130 >> Nii, siin on meil sama struktuur et ma mainida varem 634 00:33:32,130 --> 00:33:33,755 kus me db = Sqldatabase ("posts.db"). 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 Tegelikult sa ilmselt ei taha kõvasti kood oma nime andmebaasides. 637 00:33:40,980 --> 00:33:43,730 Ilmselt peaks parameeter mis on salvestatud kusagil, võibolla 638 00:33:43,730 --> 00:33:45,940 a config faili, kuid väike näide niimoodi, 639 00:33:45,940 --> 00:33:48,310 see on okei kõva kood, et. 640 00:33:48,310 --> 00:33:53,510 >> Nüüd on meil selle Post klassi, mis pärib baasmudel. 641 00:33:53,510 --> 00:33:56,930 Ja see on jällegi ID = PrimaryKeyField. 642 00:33:56,930 --> 00:34:02,250 Tegelikult, kui sa ei täpsusta, kui ma tegelikult sain lahti sellest, 643 00:34:02,250 --> 00:34:07,152 siis peewee me hoolitseme automaatselt luua, et ID väli, 644 00:34:07,152 --> 00:34:09,360 ja see automaatselt Tee PrimaryKey, mis 645 00:34:09,360 --> 00:34:12,485 Ma arvan, et on tore, sest tavaliselt, see on midagi, mida sa tahad olla, 646 00:34:12,485 --> 00:34:16,239 aga mulle meeldib, et pane see täpsemalt just nii ma mäletan, et see on olemas. 647 00:34:16,239 --> 00:34:19,480 Aga kui sa ei täpsusta, et et on olemas automaatselt. 648 00:34:19,480 --> 00:34:22,198 >> Niisiis, mul on kuupäev, mis on DateTimeField ja kõik 649 00:34:22,198 --> 00:34:24,864 Nende erinevates valdkondades, kui te vaadata peewee dokumentatsiooni, 650 00:34:24,864 --> 00:34:28,920 see annab sulle nimekirja erinevate tüüpi väljad, mida saab kasutada. 651 00:34:28,920 --> 00:34:34,440 Enamasti on see analoogne mida sa näeksid SQL. 652 00:34:34,440 --> 00:34:37,699 Seega on CharField, et VarCharFields, TextFields, 653 00:34:37,699 --> 00:34:40,550 mis on väga pikk tekste, nagu blogi postitus 654 00:34:40,550 --> 00:34:44,460 potentsiaalselt DateTimeFields, DoubleFields, FloatFields, 655 00:34:44,460 --> 00:34:46,100 kõik asjad niimoodi. 656 00:34:46,100 --> 00:34:51,570 >> Ja sa ei liigu teiste argumendid et see, mida ma ei täpsustanud siin. 657 00:34:51,570 --> 00:34:55,719 Ütle, näiteks, siis ei taha võimaldavad kaks ametikohta on sama pealkiri, 658 00:34:55,719 --> 00:34:59,672 sa võiksid täpsustada midagi unikaalset = True, 659 00:34:59,672 --> 00:35:02,880 ja see on just ekstra parameeter valdkonnas, et kui ta koostab ta maha 660 00:35:02,880 --> 00:35:06,865 arvesse SQL, peab ta täpsustama, et see peab olema unikaalne. 661 00:35:06,865 --> 00:35:09,740 Võite määrata ka midagi ei ole null ja kõik muud asjad 662 00:35:09,740 --> 00:35:11,750 sa tavaliselt teha SQL. 663 00:35:11,750 --> 00:35:16,020 Nii, see on päris lihtne mudel, mis on kuupäev. 664 00:35:16,020 --> 00:35:19,460 Pange siia jooksul DateTimeField, Ma täpsustatud, mida vaikimisi. 665 00:35:19,460 --> 00:35:22,560 Ma täpsustatud, et see on datetime.datetime.now, 666 00:35:22,560 --> 00:35:24,920 sellepärast, et see see saab hinnata, 667 00:35:24,920 --> 00:35:28,750 see tegelikult hindab datetime.now kui 668 00:35:28,750 --> 00:35:32,110 see läheb lisada andmebaasi. 669 00:35:32,110 --> 00:35:34,760 >> Ma arvan, et ma pean kontrollige seda, 670 00:35:34,760 --> 00:35:38,222 aga kui sa tegid midagi sellist, siis see oleks tegelikult hinnata, et kui, 671 00:35:38,222 --> 00:35:40,180 ja siis dateTime oleks alati sama. 672 00:35:40,180 --> 00:35:44,240 Nii lihtsalt, kui sa teed midagi koos datetimes, kontrollige 673 00:35:44,240 --> 00:35:47,080 et see on hinnata, kui tegelikult saab lisada, või muidu 674 00:35:47,080 --> 00:35:48,780 Teile võib ajada. 675 00:35:48,780 --> 00:35:51,221 >> Pealkiri on lihtsalt CharField, mis on 676 00:35:51,221 --> 00:35:53,970 on rohkem argumente saab läbida täpsustamisel täpselt, kui kaua 677 00:35:53,970 --> 00:35:56,170 tahad seda, aga siin, see ei ole tegelikult küsimus. 678 00:35:56,170 --> 00:35:58,687 Ja Tekst läheb teksti kogu post, 679 00:35:58,687 --> 00:36:01,020 ja mis on kavatse olla TextField lihtsalt sellepärast, et sa tahad 680 00:36:01,020 --> 00:36:03,370 et ta saaks olla päris pikk jada. 681 00:36:03,370 --> 00:36:05,970 >> Siis on meil see Meta alamklass, et lihtsalt 682 00:36:05,970 --> 00:36:11,250 täpsustatakse, et me tahame andmebaasis kui see on tegelikult avanud sisse 683 00:36:11,250 --> 00:36:14,267 olla db objekt, mis meil siin on. 684 00:36:14,267 --> 00:36:16,350 Ja viimane asi, mida me peame Siin on just seda funktsiooni 685 00:36:16,350 --> 00:36:18,120 et me ei kavatse kasutada meie peamine app 686 00:36:18,120 --> 00:36:23,970 initsialiseerida andmebaasi ühendada seda ja seejärel luua Post tabelis. 687 00:36:23,970 --> 00:36:26,880 >> Nüüd vaatame peamine app ise. 688 00:36:26,880 --> 00:36:30,800 Nii et see üks on üsna natuke kauem kui need, 689 00:36:30,800 --> 00:36:34,840 et me oleme näinud, kuid loodetavasti mitte liiga halb. 690 00:36:34,840 --> 00:36:37,140 Niisiis, lubage mul laiendada seda. 691 00:36:37,140 --> 00:36:38,370 Okei. 692 00:36:38,370 --> 00:36:42,070 >> Nii, märgata ja top ma imporditud terve hulk muid asju 693 00:36:42,070 --> 00:36:44,129 kolvist, et meil ei ole tõesti näinud. 694 00:36:44,129 --> 00:36:46,670 Ja loodetavasti saame läbida igaühel neist ükshaaval 695 00:36:46,670 --> 00:36:49,420 ja rääkida veidi rohkem neid, sorteeritud näiteks. 696 00:36:49,420 --> 00:36:51,380 Niisiis, meil on kolb, ja render_template, 697 00:36:51,380 --> 00:36:54,370 mis me oleme näinud, selle taotluse ese, 698 00:36:54,370 --> 00:37:00,400 mis saab tulla, kui me vaatame, kuidas kujul, et ma olin näitab tegelikult 699 00:37:00,400 --> 00:37:01,170 töötab. 700 00:37:01,170 --> 00:37:04,850 Suuna, mis võimaldab suunata tagasi Loo uus postitus 701 00:37:04,850 --> 00:37:11,710 tagasi algse kodulehele ja siis URL, mis on midagi, mida saate 702 00:37:11,710 --> 00:37:15,550 aru saada, kus on kodulehel konkreetse leht on. 703 00:37:15,550 --> 00:37:17,810 >> Niisiis, järgmine asi, mida ma teen, on mul import 704 00:37:17,810 --> 00:37:21,550 kõik infot mudelid failid, et me olime lihtsalt vaadata. 705 00:37:21,550 --> 00:37:23,140 Ja, jah. 706 00:37:23,140 --> 00:37:28,720 >> Niisiis, midagi uut, et tegemist up, kui olete tegelevad, 707 00:37:28,720 --> 00:37:31,850 eriti andmebaasid on see, et saate määrata 708 00:37:31,850 --> 00:37:35,110 funktsioon, mis saab nn enne iga taotluse ja funktsioon, mis saab 709 00:37:35,110 --> 00:37:39,690 nimetatakse pärast iga taotluse, kasutades seda funktsiooni dekoraator app.before taotluse. 710 00:37:39,690 --> 00:37:42,324 >> Ja nii see saada hukati kus see funktsioon on. 711 00:37:42,324 --> 00:37:44,240 See ei pea olema nimetatakse enne taotluse 712 00:37:44,240 --> 00:37:46,281 kuid tavaliselt see on midagi mõistlik kutsuda. 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 Saate määrata iganes funktsiooni soovite saada hüüdis seal, 715 00:37:51,650 --> 00:37:56,330 nii et ma täpsustada seda initialize_db funktsioon, mis meil oli tagasi mudelid 716 00:37:56,330 --> 00:38:02,390 faili, nii et enne iga taotluse, siis tahan ühendada andmebaasi. 717 00:38:02,390 --> 00:38:04,560 >> On kaks erinevat kuidas saate seda teha. 718 00:38:04,560 --> 00:38:10,830 Seda saab tehaapp., I usun, et see after_request. 719 00:38:10,830 --> 00:38:13,800 Ja vahest after_request ja teardown_request, 720 00:38:13,800 --> 00:38:17,590 on see, et after_request juhtub vaid kui taotlus tegelikult kehtis. 721 00:38:17,590 --> 00:38:20,440 Ja nii, ainult siis, kui Taotluse oli edukas, 722 00:38:20,440 --> 00:38:22,490 Kui midagi läks valesti, kuid teardown_request 723 00:38:22,490 --> 00:38:26,300 juhtub näiteks eduka taotlusel või juhul, kui viga. 724 00:38:26,300 --> 00:38:28,252 >> Niisiis, enamasti, tahad kasutada teardown_request, 725 00:38:28,252 --> 00:38:30,460 kui sa tahad teha midagi, eriti erinevat 726 00:38:30,460 --> 00:38:31,470 puhul viga. 727 00:38:31,470 --> 00:38:35,122 Aga sulgemiseks andmebaasis kas see õnnestub või kui see ei õnnestu, 728 00:38:35,122 --> 00:38:37,080 me tahad lahti andmebaasist. 729 00:38:37,080 --> 00:38:41,240 Nii seda nimetatakse, db.close DB objekti. 730 00:38:41,240 --> 00:38:43,740 >> Pange tähele, et teardown_request võtab erand. 731 00:38:43,740 --> 00:38:46,781 Nii saate kontrollida, kui oli tegelikult viga, kui ta oli sulgemise, 732 00:38:46,781 --> 00:38:49,390 kuid siin, loodetavasti ei ei ole kogu palju vigu, 733 00:38:49,390 --> 00:38:52,720 nii me lihtsalt omamoodi ignoreerides seda. 734 00:38:52,720 --> 00:38:55,990 >> Okei, ja ülejäänud ei ole liiga halb. 735 00:38:55,990 --> 00:39:02,240 Niisiis, kui me läheme kodulehekülg, me sulatatud see home.html Mall 736 00:39:02,240 --> 00:39:03,490 mis avab. 737 00:39:03,490 --> 00:39:06,240 Läbipääsuloal on post võrdne, ja mida see 738 00:39:06,240 --> 00:39:10,260 ei ei, ärge unustage meil on selle postituse mudel, nii et me vali kõik postitused, 739 00:39:10,260 --> 00:39:13,890 ja siis veel üks asi, mida saate teha, saate määrata WHERE klauslit, 740 00:39:13,890 --> 00:39:16,910 saab määrata telli, ja nii me võtame 741 00:39:16,910 --> 00:39:18,820 kõik postitused, mis saada valitud ja seejärel 742 00:39:18,820 --> 00:39:22,590 tellime neile post.date.descending. 743 00:39:22,590 --> 00:39:25,030 Ja mis täpsustada, millal nad tegelikult välja tulema, 744 00:39:25,030 --> 00:39:29,250 Kõige hiljutisem on kõige esimene. 745 00:39:29,250 --> 00:39:31,420 >> Ja siis, võtame selle arvesse home.html malli, 746 00:39:31,420 --> 00:39:34,240 nii et vaatame tegelikult avada et Mall tõesti kiire, 747 00:39:34,240 --> 00:39:36,760 ja kui heita pilk, kuidas see töötab. 748 00:39:36,760 --> 00:39:42,130 Ja see ei ole suur HTML, kuid Loodetavasti saame keskenduda Python. 749 00:39:42,130 --> 00:39:46,960 >> Nii et link Lisa uus Post, ja nii see määrab marsruudi 750 00:39:46,960 --> 00:39:51,580 jooksul kolbi, et me määratleda, mis on siinsamas. 751 00:39:51,580 --> 00:39:56,310 See on uus postitus liinil ja me täpsustada, et siin. 752 00:39:56,310 --> 00:40:00,450 Ja nii see on link, et siis minna sellele marsruudile jooksul kolbi server. 753 00:40:00,450 --> 00:40:03,820 >> Mida rohkem huvitav asi on see silmus siin. 754 00:40:03,820 --> 00:40:07,685 Nii et me täpsustada, et see post parameeter, mis 755 00:40:07,685 --> 00:40:09,560 võeti arvesse render_template funktsiooni, 756 00:40:09,560 --> 00:40:13,550 iga postitus postituste objekt, mis saab edasi ka. 757 00:40:13,550 --> 00:40:16,600 Tahame välja printida Postituse pealkiri, H1, 758 00:40:16,600 --> 00:40:21,930 ja siis alla, tahame välja printida pärast teksti sees punkt. 759 00:40:21,930 --> 00:40:25,710 >> Ja siin, me saame tegelikult helistada Pythoni funktsiooni, 760 00:40:25,710 --> 00:40:35,130 et saaksime helistada strftime, ST-RF-ajal ja sa ei liigu vormingus string 761 00:40:35,130 --> 00:40:37,064 mida soovite printida andmeid välja. 762 00:40:37,064 --> 00:40:39,980 Nii see on päris tore, et saate tegelikult nimetan seda Python funktsiooni 763 00:40:39,980 --> 00:40:41,090 seest siin. 764 00:40:41,090 --> 00:40:44,370 Sa ei pea tegema vormingu kohta töötleja poole, sest tõesti, 765 00:40:44,370 --> 00:40:47,770 vormindamist kuupäev on midagi, mis sa tahad tegeleda sees View. 766 00:40:47,770 --> 00:40:51,480 >> Ja kõik need protsenti asjad ei ole super oluline. 767 00:40:51,480 --> 00:40:55,270 Kui sa vaatad üles dokumentatsioon jaoks strftime funktsiooni Python, 768 00:40:55,270 --> 00:40:57,040 see määrab kõik need asju, kuid see on 769 00:40:57,040 --> 00:40:59,190 kuidas, millal me otsisime esilehel siin 770 00:40:59,190 --> 00:41:04,440 see vormingud seda kena kuupäeva ja see määrab AM või PM, 771 00:41:04,440 --> 00:41:09,410 kuid normaalselt, kui me ei ole see siin, 772 00:41:09,410 --> 00:41:14,024 sa ilmselt saaksin prügi kuupäeva, mis ei tundu väga hea. 773 00:41:14,024 --> 00:41:15,940 Ja siis me täpsustada post.text ja suutsin 774 00:41:15,940 --> 00:41:19,460 pannud paar reavahetused siin, just 775 00:41:19,460 --> 00:41:21,820 panna mõned vahed iga postitust. 776 00:41:21,820 --> 00:41:26,270 >> Niisiis, ma arvan, et kõige olulisem asi selles näites 777 00:41:26,270 --> 00:41:28,697 on, et saate kasutada seda loop. 778 00:41:28,697 --> 00:41:30,780 Ja see on analoogne asju saab teha PHP. 779 00:41:30,780 --> 00:41:32,905 Võite korrata läbi, kõik õnnelikult läbitud, 780 00:41:32,905 --> 00:41:36,719 ja nii, selle asemel, et teha copy / paste, copy / paste kõikide HTML, 781 00:41:36,719 --> 00:41:40,010 sa lihtsalt kirjutada seda üks kord ja seejärel võite korrata üle kõik postitused. 782 00:41:40,010 --> 00:41:41,510 >> Ja see on midagi, tavaline, et soovite 783 00:41:41,510 --> 00:41:44,510 teha, kui sul on palju andmeid, on see, et kõik oma andmed, 784 00:41:44,510 --> 00:41:48,370 sa tahad teha sarnane asi. 785 00:41:48,370 --> 00:41:51,690 Ja siis, just mäleta, et kui sa soovite välja printida midagi otseselt 786 00:41:51,690 --> 00:41:54,780 HTML, mida kasutate topelt traksid siin 787 00:41:54,780 --> 00:41:57,820 aga siis, kui soovite täpsustada infoga tingimus, 788 00:41:57,820 --> 00:42:02,430 või umbes for loop, siis kasuta protsenti sulg. 789 00:42:02,430 --> 00:42:08,730 >> Nii, minnes tagasi Python koodi, nii et seletab 790 00:42:08,730 --> 00:42:12,242 mis toimub peamine marsruudi, kui me sinna minna, 791 00:42:12,242 --> 00:42:14,450 see lihtsalt näitab kõiki ametikohta, kuid siis küsimus 792 00:42:14,450 --> 00:42:17,440 on, kuidas me tegelikult saada postitusi andmebaasi, mis 793 00:42:17,440 --> 00:42:18,970 on natuke huvitavamaks. 794 00:42:18,970 --> 00:42:23,960 >> Niisiis, kui klõpsate New Post link, mis nägime siin 795 00:42:23,960 --> 00:42:26,000 see suunab teid selle vormi. 796 00:42:26,000 --> 00:42:29,580 Ja see on lihtsalt kõne render_template funktsioon, mis siis 797 00:42:29,580 --> 00:42:32,110 möödub uus postitus HTML kujul. 798 00:42:32,110 --> 00:42:36,212 Võtame pilk seda. 799 00:42:36,212 --> 00:42:37,420 Nii see on üsna lihtne. 800 00:42:37,420 --> 00:42:45,110 See on lihtne HTML kujul, mis vaatame natuke tuttav, 801 00:42:45,110 --> 00:42:47,380 põhineb vormid CS50 Finance. 802 00:42:47,380 --> 00:42:49,940 Ja nii me siin täpsustada, tegevus. 803 00:42:49,940 --> 00:42:52,435 Ja siin, kui te töötate PHP, tavaliselt, see 804 00:42:52,435 --> 00:42:55,930 oleks midagi, create.PHP, kuid siin 805 00:42:55,930 --> 00:42:59,960 me tegelikult määrata marsruudi jooksul kolbi server. 806 00:42:59,960 --> 00:43:02,520 Ja nii see teekond vastab et luua marsruut 807 00:43:02,520 --> 00:43:05,680 et meil on siin, mis me minna teise. 808 00:43:05,680 --> 00:43:07,630 >> Ja nii me täpsustada, et see on post meetod, 809 00:43:07,630 --> 00:43:09,820 sest me tahame saata Selle vormi andmed, ja tavaliselt 810 00:43:09,820 --> 00:43:12,945 kui saadate andmeid sellisel kujul, võiksite kasutada ametikoha taotlus, 811 00:43:12,945 --> 00:43:15,760 lihtsalt, et sa ei jõua Selle suur, kohmakas URL. 812 00:43:15,760 --> 00:43:18,970 Aga sa võid kasutada ka GET taotluse, ja liigu see muutuva suunamises, 813 00:43:18,970 --> 00:43:21,170 kuid vorme, see on tore ametikohale taotluse siin. 814 00:43:21,170 --> 00:43:24,620 Ja nii siis, just nagu sina teeks koos HTML ja PHP, 815 00:43:24,620 --> 00:43:28,420 saate määrata need teksti sisendid, ja saate määrata nime neist, 816 00:43:28,420 --> 00:43:33,490 ja see on nimi, mis saavad vastu arvesse taotluse objektiks jooksul kolbi. 817 00:43:33,490 --> 00:43:36,960 >> Ja siis on meil Esita nuppu, mis ütleb Post. 818 00:43:36,960 --> 00:43:40,760 Ja siin Post nimi nuppu, sest see on blogi postitus, 819 00:43:40,760 --> 00:43:42,700 kuid siin, post on taotluse meetod. 820 00:43:42,700 --> 00:43:47,060 Nii et need on sama sõna kuid tegelikult seotud. 821 00:43:47,060 --> 00:43:48,460 Jah 822 00:43:48,460 --> 00:43:54,800 >> Tulles tagasi Pythoni kood, kui me nimetatakse luua meetod, 823 00:43:54,800 --> 00:43:57,702 märkate siin, et saate tegelikult täpsustada jooksul marsruut 824 00:43:57,702 --> 00:44:00,650 taotluse meetodid mis sa tahad võtta, 825 00:44:00,650 --> 00:44:04,770 ja nii siin, ma täpsustama, et ma Ainult taha nõustuda Post meetod. 826 00:44:04,770 --> 00:44:09,800 Niisiis, kui ma tegelikult proovida külastada lehekülge otse, mida kasutab GET taotluse, 827 00:44:09,800 --> 00:44:11,700 ta ütleb mulle "meetod ei ole lubatud." 828 00:44:11,700 --> 00:44:15,840 >> Ja nii, teil on lehti, omamoodi nagu Selle loo juures, kus ma olen ainult 829 00:44:15,840 --> 00:44:20,192 tõesti, kasutades teed vormi saada esitanud, 830 00:44:20,192 --> 00:44:22,900 saate määrata, et sa seda ei tee taha, et inimesed saaks sinna minna 831 00:44:22,900 --> 00:44:25,650 otse GET taotluse, või kui te ei taha, 832 00:44:25,650 --> 00:44:28,580 miskipärast Post taotlus, võid lihtsalt täpsustada siia, 833 00:44:28,580 --> 00:44:32,720 kuid selles näites me lihtsalt taha Post taotluse minema. 834 00:44:32,720 --> 00:44:38,700 >> Niisiis, kui create_post nimetatakse, kui külastame et vahendusel Post taotlus, 835 00:44:38,700 --> 00:44:43,600 iga kord, kui te lähete eriti marsruut, seal on see taotluse objektiks, 836 00:44:43,600 --> 00:44:46,640 ja meil oli import taotlused tipus, 837 00:44:46,640 --> 00:44:49,640 kuid seal on see taotlus objekt, mis saab edasi ka, 838 00:44:49,640 --> 00:44:53,210 ja pääsete vormi andmed, mis automaatselt saada täidetud 839 00:44:53,210 --> 00:44:55,070 kui saadate taotluse vormi. 840 00:44:55,070 --> 00:44:56,990 >> Ja siis, mida ma arvan on väga lahe, on 841 00:44:56,990 --> 00:45:02,840 et vorm eesmärk, et saan edasi aastal, on lihtsalt Python sõnastik, mis 842 00:45:02,840 --> 00:45:10,560 Sisaldab kui te access-- nii siin, las mulle tõmba HTML kõrval, lihtsalt 843 00:45:10,560 --> 00:45:17,670 siis võite olla, et võrdluseks, jah, nii 844 00:45:17,670 --> 00:45:21,060 nimed, mida me siin täpsustada Erinevate väljad, nii 845 00:45:21,060 --> 00:45:23,900 pealkiri ja tekst, me siis lihtsalt kasutada neid siia 846 00:45:23,900 --> 00:45:27,110 kui indeksid vormi andmed. 847 00:45:27,110 --> 00:45:28,950 Nii et super mugav. 848 00:45:28,950 --> 00:45:33,320 >> Siis me nimetame post.create, mis loob ja sisestada automaatselt 849 00:45:33,320 --> 00:45:36,850 see uus postitus objekti andmebaasis. 850 00:45:36,850 --> 00:45:40,690 Ja ma arvan, et see loob funktsiooni Siin on väga lahe näide, kuidas 851 00:45:40,690 --> 00:45:44,900 võimas kolb ja töötavad selle, sest kui sa teed midagi 852 00:45:44,900 --> 00:45:48,660 PHP, siis võib-olla teha palju valideerimine, 853 00:45:48,660 --> 00:45:51,730 siis oleks siis luua andmebaasi ühendus, 854 00:45:51,730 --> 00:45:55,210 siis oleks siis täita SQL päringu 855 00:45:55,210 --> 00:45:59,550 kuid siin me lihtsalt nii hea post.create, mis suudame, siis lihtsalt 856 00:45:59,550 --> 00:46:01,520 saada teavet läbi taotluse objektiks, 857 00:46:01,520 --> 00:46:05,370 ja siis liigu see uude lisada, et me loome. 858 00:46:05,370 --> 00:46:07,850 >> Ja siis, kõige viimane asi, mida me tahame teha, 859 00:46:07,850 --> 00:46:09,630 on suunata kasutaja tagasi koju. 860 00:46:09,630 --> 00:46:13,020 Ja nii me kasutame seda Kolb suunata funktsiooni. 861 00:46:13,020 --> 00:46:17,770 Ja mida me ei näinud Enne oli see URL funktsiooni. 862 00:46:17,770 --> 00:46:21,970 Nii URL funktsioon võimaldab sa sündis tegelikult nime 863 00:46:21,970 --> 00:46:26,090 funktsiooni oma Pythoni kood, mitte konkreetse marsruudi 864 00:46:26,090 --> 00:46:26,720 et see on. 865 00:46:26,720 --> 00:46:32,107 >> Nii et ma oleks võinud sama hästi suunatakse kasutaja kärpida, 866 00:46:32,107 --> 00:46:37,050 mis saadaks ta koju, kuid kasutades URL funktsioon on kena, 867 00:46:37,050 --> 00:46:39,990 sest kui te ei muuda koht, kus asjad on, 868 00:46:39,990 --> 00:46:44,080 Ütleme, et ma saan muuta kodus olla / home asemel, 869 00:46:44,080 --> 00:46:47,040 see ikka siis tagasi / home, sest tegelikult läheb ja vaatab üles 870 00:46:47,040 --> 00:46:50,770 nimi funktsioon, mis teile tagasi URL selle eest. 871 00:46:50,770 --> 00:46:52,490 >> Nii, justkui kohta eeldusel, et sa oled 872 00:46:52,490 --> 00:46:55,489 tõenäolisem muuta, kus asjad on, kui nimed funktsioone. 873 00:46:55,489 --> 00:46:58,840 Võite kasutada seda tõesti kena URL funktsiooni. 874 00:46:58,840 --> 00:47:02,470 Ja üks asi olema teadlik see on natuke keeruline, 875 00:47:02,470 --> 00:47:05,750 on see, et sa arvad, et sa võiksid lihtsalt helistada suunata on URL, 876 00:47:05,750 --> 00:47:10,600 aga tegelikult kõik teed, tagasi mingi tekst ja HTML, 877 00:47:10,600 --> 00:47:14,360 siis tegelikult on tagasi suunata kõne. 878 00:47:14,360 --> 00:47:18,379 Muidu saad midagi kehtetuks kohta ei tule string, 879 00:47:18,379 --> 00:47:21,420 sest kõik need peavad taas HTML sa tegelikult tahad muuta. 880 00:47:21,420 --> 00:47:26,980 >> Ja nii, kui helistate suunata, see suunab teid lehele, 881 00:47:26,980 --> 00:47:30,270 kuid tegelikult tagastab HTML sa pead täitma, et suunata. 882 00:47:30,270 --> 00:47:34,430 883 00:47:34,430 --> 00:47:37,110 Mine tagasi avalehele. 884 00:47:37,110 --> 00:47:39,200 Nii et meil on need kaks erinevat vaadet. 885 00:47:39,200 --> 00:47:40,132 Meil on kodus vaadata. 886 00:47:40,132 --> 00:47:41,590 Või ma arvan, et ma peaks ütlema malle. 887 00:47:41,590 --> 00:47:44,190 Meil on neid kaks malle, kodus mall, mis 888 00:47:44,190 --> 00:47:48,500 kuvab kõik meie postitused ja siis on meil seda kuulutust asi, 889 00:47:48,500 --> 00:47:52,970 ja kui klõpsate post, see läheb uue trassi kolbi 890 00:47:52,970 --> 00:47:55,920 kuid sellel liinil ei pruugi olema vastav mall. 891 00:47:55,920 --> 00:47:59,290 892 00:47:59,290 --> 00:48:01,560 Sa ei pea nägema midagi, kuid saate siiski 893 00:48:01,560 --> 00:48:04,090 on see töö läheb kulisside taga. 894 00:48:04,090 --> 00:48:07,450 Ja siis sa saad suunata tagasi avalehele. 895 00:48:07,450 --> 00:48:12,230 Ja kindlasti, see on lihtne töö Mõnes kenamaks CSS malli 896 00:48:12,230 --> 00:48:15,580 ja seda vaatama palju kenamaks, kuid kõik peamised loogika 897 00:48:15,580 --> 00:48:18,590 on seal Python. 898 00:48:18,590 --> 00:48:20,020 >> Küsimusi, et näiteks? 899 00:48:20,020 --> 00:48:22,760 Tean, et on palju erinevaid asju toimub seal, 900 00:48:22,760 --> 00:48:25,341 palju asju, mida me ei näinud Enne, kuid nagu midagi. 901 00:48:25,341 --> 00:48:25,840 Jah. 902 00:48:25,840 --> 00:48:28,346 >> PUBLIKU 1: Kas teil on midagi teha erilist nühkima andmed, mis on 903 00:48:28,346 --> 00:48:29,600 äärelt vorm? 904 00:48:29,600 --> 00:48:31,109 Märkasin just ütles "luua," 905 00:48:31,109 --> 00:48:33,900 EZRA ZIGMOND: Jah, nii see on tegelikult, see on tõesti hea koht. 906 00:48:33,900 --> 00:48:36,350 Nii et küsimus oli, kas sa on vaja kontrollida ja veenduge, 907 00:48:36,350 --> 00:48:39,190 et andmed on kehtivad ja teha mingit puhastamine 908 00:48:39,190 --> 00:48:41,840 veenduda, et see kehtib, sest nagu näete siin, 909 00:48:41,840 --> 00:48:42,660 Ma ei tee seda. 910 00:48:42,660 --> 00:48:48,140 Vaatame, mis juhtub kui ma pärast midagi tühi. 911 00:48:48,140 --> 00:48:51,190 Nii, see saab tegelikult lihtsalt teha tühi postitus ja täitke DateTime. 912 00:48:51,190 --> 00:48:55,990 >> Nii et tegelikult sa ilmselt tahan teha midagi sellist, 913 00:48:55,990 --> 00:49:04,749 äkki täpsustada, kui pealkiri on võrdne tühi string, siis ei tee seda. 914 00:49:04,749 --> 00:49:07,290 Või teevad seda vaid juhul, kui pealkiri on ei võrdu tühi string. 915 00:49:07,290 --> 00:49:10,330 Seega ei ole tegelikult automaatselt hoolitseda, et puhastamine 916 00:49:10,330 --> 00:49:12,820 teile, et teil on vaja veel teha. 917 00:49:12,820 --> 00:49:14,330 Jah, hea küsimus. 918 00:49:14,330 --> 00:49:18,497 >> PUBLIKU 2: see nühkima jaoks järge süsti? 919 00:49:18,497 --> 00:49:19,890 Kas sa tead? 920 00:49:19,890 --> 00:49:22,830 >> EZRA ZIGMOND: Loodetavasti peewee ei tee seda. 921 00:49:22,830 --> 00:49:25,830 Ma arvan, et see oleks kindlasti päris halb raamatukogu kui ta seda ei teinud. 922 00:49:25,830 --> 00:49:29,511 923 00:49:29,511 --> 00:49:32,690 Ma ei tea täpselt. 924 00:49:32,690 --> 00:49:34,820 Ma pean vaatama päringuid, et see tekitas. 925 00:49:34,820 --> 00:49:38,980 Ma arvan, et kui ma kirjutada oma blogipostituse et mingisugune vaatasin 926 00:49:38,980 --> 00:49:46,370 nagu SQL süst rünnak, midagi sellist, kui see 927 00:49:46,370 --> 00:49:49,370 on nagu parool valdkonnas või midagi, võite teha midagi sellist. 928 00:49:49,370 --> 00:49:53,410 >> Ma arvan, et ikkagi saada sõna otseses mõttes postitatud 929 00:49:53,410 --> 00:49:59,200 aga ma arvan, et peewee ei tee mingi puhastamine andmete 930 00:49:59,200 --> 00:50:01,680 Enne seda tegelikult täidab ta. 931 00:50:01,680 --> 00:50:04,510 >> PUBLIKU 1: See tekst valdkonnas on eesmärk on võtta lihttekstina, eks? 932 00:50:04,510 --> 00:50:05,710 >> EZRA ZIGMOND: Jah, on küll. 933 00:50:05,710 --> 00:50:06,465 Jah. 934 00:50:06,465 --> 00:50:09,590 Nii et ma arvan, et kõik, nii et see on õige käitumine, mis teha, 935 00:50:09,590 --> 00:50:12,170 aga ma arvan, et peewee loodetavasti ei tee 936 00:50:12,170 --> 00:50:13,780 mingi kaitse kohta nende lõppu. 937 00:50:13,780 --> 00:50:16,090 Ja kui sa tahad kontrollige, et seal 938 00:50:16,090 --> 00:50:19,530 On viise, kui teil luua päringu. 939 00:50:19,530 --> 00:50:22,622 nii et sa ei pea käivitada otse. 940 00:50:22,622 --> 00:50:24,330 Ma pean võtma vaata dokumentatsiooni, 941 00:50:24,330 --> 00:50:27,930 kuid tegelikult võite vaadata SQL et see tekitab, 942 00:50:27,930 --> 00:50:30,840 ja kui heita pilk see, ja teha kindel, et see on põgenedes asju. 943 00:50:30,840 --> 00:50:33,700 >> Teine põhjus, miks sa tahan vaadata SQL 944 00:50:33,700 --> 00:50:37,920 et peewee on väljastamist, on see, kui asjad tunduvad minevat tõesti aeglaselt, 945 00:50:37,920 --> 00:50:41,090 võite minna ja vaadata, mis see on tegelikult teevad, sest see on mõnikord 946 00:50:41,090 --> 00:50:44,670 lihtne kogemata lisada aastal, kuidas sa kirjutad seda, 947 00:50:44,670 --> 00:50:47,880 võite kogemata on see vali kogu andmebaasi esimene, 948 00:50:47,880 --> 00:50:50,230 ja siis teha mingi operatsioon kohta, et kui sa tõesti 949 00:50:50,230 --> 00:50:51,320 tähendas, et valida alamhulk. 950 00:50:51,320 --> 00:50:53,560 >> Ja nii, kui asjad ei ole üsna läheb paremale, 951 00:50:53,560 --> 00:50:57,300 see on hea heita pilk taotluse See on tegelikult saada loodud. 952 00:50:57,300 --> 00:50:57,800 Jah. 953 00:50:57,800 --> 00:51:02,100 >> PUBLIKU 2: Kui alustasin, paned port 5000. 954 00:51:02,100 --> 00:51:02,904 >> EZRA ZIGMOND: Jah. 955 00:51:02,904 --> 00:51:06,070 PUBLIKU 2: Kas vaikimisi peewee, või on see midagi, mida saab muuta? 956 00:51:06,070 --> 00:51:10,870 EZRA ZIGMOND: Jah, nii port on vaikimisi kolbi. 957 00:51:10,870 --> 00:51:13,061 Kui seda käitada ilma täpsustades midagi, 958 00:51:13,061 --> 00:51:14,310 see automaatselt seda teha. 959 00:51:14,310 --> 00:51:16,060 Ma usun, et ma oleksin kontrollige seda, 960 00:51:16,060 --> 00:51:19,130 aga saate määrata, et app.run, Ma arvan, et sa saad teha midagi sellist, 961 00:51:19,130 --> 00:51:19,629 port = 8080. 962 00:51:19,629 --> 00:51:22,375 963 00:51:22,375 --> 00:51:23,750 Anname et proovida reaalne kiire. 964 00:51:23,750 --> 00:51:29,100 965 00:51:29,100 --> 00:51:32,230 Jah, nii saad lihtsalt täpsustada port = 8080, ja see töötab seal, 966 00:51:32,230 --> 00:51:36,130 mis ma arvan, et kui sa tahad, et kasutada seda IDE, ma ei ole proovinud seda välja, 967 00:51:36,130 --> 00:51:38,527 aga ma arvan, et kui sa jooksis ta sadama 8080, 968 00:51:38,527 --> 00:51:40,360 Te ilmselt oleks võimalik pääseda serverile, 969 00:51:40,360 --> 00:51:41,870 just nagu sina olid kodulehel. 970 00:51:41,870 --> 00:51:44,390 >> Jah, kuid see on lihtne muuta, et kui sa 971 00:51:44,390 --> 00:51:48,540 on mingit nagu sadama ekspedeerimine asju, mida sa pead tegema. 972 00:51:48,540 --> 00:51:50,410 >> Muid küsimusi? 973 00:51:50,410 --> 00:51:50,916 Jah? 974 00:51:50,916 --> 00:51:53,416 PUBLIKU 1: Niisiis, ma nägin oma mudelid, et te mainisite, 975 00:51:53,416 --> 00:51:55,647 teil täpsustada andmebaasi iga objekti. 976 00:51:55,647 --> 00:51:58,105 Kas teil juhtub tea, kas et oleks tõesti lihtne, kui 977 00:51:58,105 --> 00:52:03,210 on palju SQLite andmebaasid, et teil soovite kasutada ühe veebirakendus, 978 00:52:03,210 --> 00:52:07,210 et sa võid määrata kamp eri ones oma mudel? 979 00:52:07,210 --> 00:52:11,620 >> EZRA ZIGMOND: Jah, lase mind avada see üles reaalne kiire. 980 00:52:11,620 --> 00:52:17,570 Niisiis, sa räägid, kui sa tahad olla hunnik erinevaid midagi, võibolla 981 00:52:17,570 --> 00:52:22,670 meeldib ja õpilased, mõned Põhjus, midagi sellist? 982 00:52:22,670 --> 00:52:26,870 Jah, nii et ma arvan, et sa ikka, iga mudel 983 00:52:26,870 --> 00:52:30,652 oleks veel lihtsalt ühest andmebaasist temale pandud 984 00:52:30,652 --> 00:52:32,610 aga kui sa tahad olla erinevaid mudeleid, et 985 00:52:32,610 --> 00:52:35,818 on teise andmebaasi objektide määratud et see, mida võiks kindlasti teha. 986 00:52:35,818 --> 00:52:43,070 Niisiis, kui ma loodud uus, midagi sellist, 987 00:52:43,070 --> 00:52:47,000 ja nüüd on see õpilasele, et tundub imelik nagu blogi postitus, 988 00:52:47,000 --> 00:52:49,390 Ma võiks täpsustada, et andmebaasis on võrdne db_2 siin. 989 00:52:49,390 --> 00:52:51,390 Niisiis, ma arvan, et see on Peamine viis, kuidas saate teha. 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 Muid küsimusi? 993 00:52:58,410 --> 00:53:02,170 >> Nii lihtsalt, et lõpetada veidi natuke, siin on mõned vahendid, 994 00:53:02,170 --> 00:53:06,030 ja need slaidid pannakse Internetis nii et saate tegelikult saada nende lingid. 995 00:53:06,030 --> 00:53:08,500 Parim ressursid on tõesti dokumentatsiooni Kolb 996 00:53:08,500 --> 00:53:09,930 ja peewee ise. 997 00:53:09,930 --> 00:53:12,940 Nad kirjutatud väga hästi, ma arvan. 998 00:53:12,940 --> 00:53:18,180 Nii, kolb veebileht on siin, ja neil QuickStart juhendaja, et 999 00:53:18,180 --> 00:53:20,710 kõnnime läbi sarnase asju, mida ma kõndinud, 1000 00:53:20,710 --> 00:53:23,560 aga kui sa tahad mingit läbivaatamine asju, mida ma läksin üle, 1001 00:53:23,560 --> 00:53:26,200 või sa arvasid, et ma selgitasin midagi segane viis, 1002 00:53:26,200 --> 00:53:28,390 nad on sarnased näited olemas. 1003 00:53:28,390 --> 00:53:31,570 >> Peewee on dokumentatsiooni ja neil QuickStart juhendaja 1004 00:53:31,570 --> 00:53:34,650 mis läheb üle põhiparameetrid et sa tahaksid kasutada. 1005 00:53:34,650 --> 00:53:38,900 Niisiis, mida ma rääkisime unikaalne, ja täpsustades vaikimisi, 1006 00:53:38,900 --> 00:53:42,710 Erinevate elualaldel et saate need oleks kõik olemas. 1007 00:53:42,710 --> 00:53:44,690 >> Samuti, kui teil on küsimusi peewee, 1008 00:53:44,690 --> 00:53:47,530 ja sa pärast neid stackoverflow, mees, kes tegi peewee tegelikult 1009 00:53:47,530 --> 00:53:49,500 läheb ja vastused neile mõnikord. 1010 00:53:49,500 --> 00:53:53,200 Kui teil on küsimusi, loodetavasti ta pead suutma vastata, 1011 00:53:53,200 --> 00:53:54,867 sest ta kirjutas kogu asi. 1012 00:53:54,867 --> 00:53:56,700 Ma arvan, et kõik Ma tahtsin, et katta. 1013 00:53:56,700 --> 00:53:58,930 Täname tulemas. 1014 00:53:58,930 --> 00:54:02,688