1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:03,227 [Prehrávanie hudby] 3 00:00:03,227 --> 00:00:04,705 4 00:00:04,705 --> 00:00:05,830 EZRA zigmond: Ahoj, všetci. 5 00:00:05,830 --> 00:00:08,020 Vďaka, vyjde dnes. 6 00:00:08,020 --> 00:00:10,660 Tento seminár je "Python Web Apps s banky. " 7 00:00:10,660 --> 00:00:14,510 >> Takže budem hovoriť trochu o tom, prečo 8 00:00:14,510 --> 00:00:17,400 možno budete chcieť používať banky, aby sa Webové aplikácie s Python, na rozdiel od 9 00:00:17,400 --> 00:00:21,556 na niektorých iných rámcov vonku, ako je Django, ktorý je najviac známy. 10 00:00:21,556 --> 00:00:24,330 Podtitul je "a Peewee, "čo je niečo, 11 00:00:24,330 --> 00:00:27,250 budeme hovoriť o tom, ako k interakcii s SQL databázou. 12 00:00:27,250 --> 00:00:29,610 To je to naozaj pekné. 13 00:00:29,610 --> 00:00:32,390 >> Takže, tu je to len rýchly prehľad z toho, čo chcem ísť preč. 14 00:00:32,390 --> 00:00:35,520 Tak, ako prvý, len jeden snímok že to bude Quickstart, 15 00:00:35,520 --> 00:00:38,530 čo je, ako sa dostať všetko, nastaviť na vašom počítači. 16 00:00:38,530 --> 00:00:41,760 Budem demonštrovať to na mojom lokálnom počítači Mac, 17 00:00:41,760 --> 00:00:45,220 len preto, že je miesto, kde som to urobil predtým, som najpohodlnejšie s tým, 18 00:00:45,220 --> 00:00:48,510 ale je to rozhodne možné na CD50 IDE. 19 00:00:48,510 --> 00:00:52,050 >> Takže po tom, chcem predstaviť, čo Banka je, 20 00:00:52,050 --> 00:00:55,089 a presvedčiť vás, prečo by ste mali použiť v prvom rade. 21 00:00:55,089 --> 00:00:56,880 Potom, dám rýchly príkladom toho, čo vás 22 00:00:56,880 --> 00:01:00,550 môžete urobiť v banke rýchly príklad o tom, čo môžete urobiť v Peewee, 23 00:01:00,550 --> 00:01:05,010 a potom som vám ukáže viac Kompletné príklad aplikácie 24 00:01:05,010 --> 00:01:07,520 že som dal dohromady, že my môžu prejsť spolu. 25 00:01:07,520 --> 00:01:10,040 >> A nakoniec, v Posledná snímka, mám 26 00:01:10,040 --> 00:01:12,730 niektoré zdroje, že sa pozeráte na viac informácií online. 27 00:01:12,730 --> 00:01:15,560 To nie je kompletný tutorial o tom, ako používať banky. 28 00:01:15,560 --> 00:01:18,140 A ja dúfam, že k odchodu nejaký čas na otázky. 29 00:01:18,140 --> 00:01:21,050 Každý, kto sleduje lokálne, stačí ako, kričať v stredu 30 00:01:21,050 --> 00:01:22,340 ak máte nejaké otázky. 31 00:01:22,340 --> 00:01:27,150 >> Takže rýchla inštalácia veci, Ak chcete sledovať spolu, 32 00:01:27,150 --> 00:01:29,240 alebo ak chcete si to na vašom vlastnom stroji, 33 00:01:29,240 --> 00:01:32,440 Budem používať Python 2.7.10. 34 00:01:32,440 --> 00:01:35,860 Banka funguje s Python 3, ale páči sa mi 35 00:01:35,860 --> 00:01:38,660 pomocou Python 2, pretože tam je Niektoré balíčky, ktoré Python 36 00:01:38,660 --> 00:01:40,910 nefungujú s 3 doteraz. 37 00:01:40,910 --> 00:01:44,800 Ak ste nainštalovali pip, ktorý je správca Python balíček, 38 00:01:44,800 --> 00:01:48,190 Myslím si, že ak váš Python je väčší alebo rovný bodu 2.7.9, 39 00:01:48,190 --> 00:01:52,220 to máte už nainštalovaný, je to super ľahké inštaláciu týchto balíčkov. 40 00:01:52,220 --> 00:01:54,990 >> Môžete si nainštalovať jadro Banka, pip nainštalovať Peewee, 41 00:01:54,990 --> 00:01:58,600 Obvykle máte spustiť sudo len takže oprávnenie fungovať. 42 00:01:58,600 --> 00:02:01,080 A ak ste pomocou Super starú verziu Pythone, 43 00:02:01,080 --> 00:02:05,100 Odporúčam aktualizáciu Python, alebo používanie EasyInstall na inštaláciu PIP. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 Takže ďalšia otázka je, čo je banky? 46 00:02:11,120 --> 00:02:13,280 A myslím, najprv rozumná otázka Uvažoval som, 47 00:02:13,280 --> 00:02:15,585 na dlhú dobu, je, čo je to webová aplikácia? 48 00:02:15,585 --> 00:02:17,960 Vzhľadom k tomu, že je to slovo, ktoré som myslíte, že je hodená asi veľa 49 00:02:17,960 --> 00:02:19,240 že som ani nevedel. 50 00:02:19,240 --> 00:02:22,340 A ja si myslím, že najlepšie príkladom toho, čo webová aplikácia je, 51 00:02:22,340 --> 00:02:26,960 Naozaj je CS50 Financie, kde to nie je naozaj len webové stránky, 52 00:02:26,960 --> 00:02:29,320 ale je to niečo, čo vás by mohla nejako komunikovať s. 53 00:02:29,320 --> 00:02:31,736 K dispozícii sú užívateľské účty a všetky druhy rôznych vecí. 54 00:02:31,736 --> 00:02:35,010 Takže, kde presne ste čerpať čiara medzi tým, čo je webová stránka, 55 00:02:35,010 --> 00:02:38,780 a to, čo je webová aplikácia, je druh ľubovoľná, ale myslím, že nápad, 56 00:02:38,780 --> 00:02:42,110 je to niečo viac než len webové stránky a je to užitočná aplikácia. 57 00:02:42,110 --> 00:02:46,081 >> Takže, banky je rámec pre vytváranie webových aplikácií pomocou jazyka Python. 58 00:02:46,081 --> 00:02:48,330 A dúfajme, že do konca to, budem vás presvedčí 59 00:02:48,330 --> 00:02:52,210 že by ste mohli skutočne napísať niečo ako CS50 financií Python, ktorý som 60 00:02:52,210 --> 00:02:53,950 ako oveľa lepšie, ako PHP, osobne. 61 00:02:53,950 --> 00:02:57,320 >> Takže, banka, sa hovorí microframework, ktorým, 62 00:02:57,320 --> 00:02:59,800 myslí, že je to veľmi jednoduché, ale rozšíriteľné. 63 00:02:59,800 --> 00:03:02,980 Tak, to má len to, čo potrebujete, ale ak chcete viac funkcií, 64 00:03:02,980 --> 00:03:04,522 je to jednoduché, aby boli v. 65 00:03:04,522 --> 00:03:06,480 Ale len preto, že je to microframework, nie je 66 00:03:06,480 --> 00:03:08,960 znamená, že je to len pre malé projekty. 67 00:03:08,960 --> 00:03:12,590 Mám odkaz tu, ktorý hovorí, že Obama používa banky v roku 2012 68 00:03:12,590 --> 00:03:14,410 pre jeho kampaň webové stránky, čo dúfajme, 69 00:03:14,410 --> 00:03:16,937 je niečo schválenie. 70 00:03:16,937 --> 00:03:18,770 Ale vec, ktorú som naozaj rád o banky 71 00:03:18,770 --> 00:03:22,401 je to, že to naozaj nie je robiť nejaký druh rozhodnutia pre vás. 72 00:03:22,401 --> 00:03:24,150 Len preto, že sme hovorí o webových aplikácií, 73 00:03:24,150 --> 00:03:26,940 Musím porovnať s Ruby on Koľajnice a Django, z ktorých oba 74 00:03:26,940 --> 00:03:30,450 sú skvelé rámce, ale obaja, aby predpoklady 75 00:03:30,450 --> 00:03:33,600 o tom, ako chcete komunikovať s databázou, 76 00:03:33,600 --> 00:03:36,900 ako chcete prezentovať svoje pohľady, a sú to rozhodne 77 00:03:36,900 --> 00:03:38,850 dobré aspekty, ktoré. 78 00:03:38,850 --> 00:03:41,490 >> Napríklad, Ruby on Rails má túto účinnú záznamový systém, 79 00:03:41,490 --> 00:03:43,100 čo je naozaj pekný spôsob interakcie s dátami, 80 00:03:43,100 --> 00:03:45,960 ale ak chcete používať Ruby on Koľajnice, ste nejako zviazané do toho. 81 00:03:45,960 --> 00:03:47,835 Ale s banky, ako budem ukáže vám Peewee, 82 00:03:47,835 --> 00:03:49,830 môžete použiť bez ohľadu na druh databázy budete chcieť, 83 00:03:49,830 --> 00:03:53,980 a vy môžete len vytiahnuť, že v ako rozšírenie do banky. 84 00:03:53,980 --> 00:03:56,350 >> Takže to je dôvod, prečo som sa naozaj rovnako ako banky, je to, že to 85 00:03:56,350 --> 00:04:01,170 nedáva predpoklady pre vás založené na veci, ktoré nepotrebujete, naozaj. 86 00:04:01,170 --> 00:04:04,440 >> Takže, prečo by ste mali používať banky? 87 00:04:04,440 --> 00:04:08,230 Výhodou je, že len má naozaj základné funkcie 88 00:04:08,230 --> 00:04:09,420 vstavané do neho, že budete potrebovať. 89 00:04:09,420 --> 00:04:11,980 Tak, nemusíte sa starať o porozumenie veľa vecí 90 00:04:11,980 --> 00:04:13,175 že nemáte naozaj potrebujú. 91 00:04:13,175 --> 00:04:15,060 Nemusíte mať strach o vypnutie funkcie 92 00:04:15,060 --> 00:04:16,620 že nemáte naozaj potrebujú. 93 00:04:16,620 --> 00:04:21,082 >> A ako už som sa zmienil, je to super ľahko pridať do rozšírenia vecí 94 00:04:21,082 --> 00:04:21,790 že si potrebujete. 95 00:04:21,790 --> 00:04:24,700 Niektoré z nich, banky má ich vlastné pre neho podporu. 96 00:04:24,700 --> 00:04:28,230 Takže je tu niečo, čo nazýva banky admin, ktorý odráža to admin 97 00:04:28,230 --> 00:04:32,060 panel, ktorý poskytuje Django, čo vám dáva príjemný vizuálny spôsob, 98 00:04:32,060 --> 00:04:33,405 spravovať svoje webové stránky. 99 00:04:33,405 --> 00:04:35,280 Ale na druhú stranu, ak ste robiť niečo jednoduchého, 100 00:04:35,280 --> 00:04:39,550 pravdepodobne nebudete potrebovať veľký admin panel, takže si myslím, že je super pekné. 101 00:04:39,550 --> 00:04:45,940 A nevýhody sú, že máte menej energie po vybalení z krabice. 102 00:04:45,940 --> 00:04:49,660 Takže, keď ste prvýkrát otvoriť banky, a vo vašom programe Python, 103 00:04:49,660 --> 00:04:53,150 stačí zadať z banky import *, alebo čokoľvek, 104 00:04:53,150 --> 00:04:55,957 nemusíte presne získať všetky funkcie budete chcieť. 105 00:04:55,957 --> 00:04:58,540 A tak budete musieť jasnejšie zoznam funkcie, ktoré chcete. 106 00:04:58,540 --> 00:05:01,990 Takže to je jedna nevýhoda, ale ja si myslí, že pre budovanie malých web 107 00:05:01,990 --> 00:05:04,782 aplikácie ako Budem ukazovať vám, že to nie je naozaj problém. 108 00:05:04,782 --> 00:05:07,281 A čo je posledná vec, ktorú je mal povedať, ktorý je preklep, 109 00:05:07,281 --> 00:05:10,240 je, že existujú menej štandardizované konvencie pre ako používať banky, 110 00:05:10,240 --> 00:05:12,400 len preto, že tam nie sú toľko Ľudia, ktoré ho používajú profesionálne 111 00:05:12,400 --> 00:05:13,191 v porovnaní s Django. 112 00:05:13,191 --> 00:05:16,380 Takže, keď sa pozriete niečo ako, "Ako to mám urobiť x" v Django, 113 00:05:16,380 --> 00:05:18,190 budete pravdepodobne nájsť. 114 00:05:18,190 --> 00:05:20,260 >> Tam je dobrý dizajn vzory, ktoré môžete použiť, 115 00:05:20,260 --> 00:05:22,660 ale s banky, to je druh ísť svojou vlastnou cestou, 116 00:05:22,660 --> 00:05:24,850 len preto, že je to celkom malá knižnica. 117 00:05:24,850 --> 00:05:27,100 Takže to sú tie nevýhody, ale myslím, že 118 00:05:27,100 --> 00:05:29,370 že je to stále dobrý knižnicu použiť. 119 00:05:29,370 --> 00:05:31,909 >> Tak nech to len skočiť priamo do banky. 120 00:05:31,909 --> 00:05:34,200 To rozhodne nebude byť kompletný tutorial, 121 00:05:34,200 --> 00:05:37,480 ale je to, aby vám predstavu o tom, ako štruktúrovať veci, 122 00:05:37,480 --> 00:05:40,790 a tak budete cítiť pohodlne ísť off a pri pohľade na dokumentáciu 123 00:05:40,790 --> 00:05:42,570 a dozvedieť sa viac. 124 00:05:42,570 --> 00:05:48,500 >> Takže mi dovoľte, aby som otvoriť naozaj Jednoduchý príklad na prvý, 125 00:05:48,500 --> 00:05:50,737 a ukázať vám, čo to vyzerá, a potom sa 126 00:05:50,737 --> 00:05:52,070 rozobrať to trochu viac. 127 00:05:52,070 --> 00:05:56,160 >> Tak to tu, dovoľte mi, aby som si to beží. 128 00:05:56,160 --> 00:06:06,800 129 00:06:06,800 --> 00:06:09,750 Tak som teraz mať svoje aplikácie bežia. 130 00:06:09,750 --> 00:06:15,910 Idem otvoriť Safari, a je to beh na mojom lokálnom počítači. 131 00:06:15,910 --> 00:06:19,360 Takže som len tak, aby to väčšie. 132 00:06:19,360 --> 00:06:23,960 Ale localhost: 5000 133 00:06:23,960 --> 00:06:27,650 >> A tak, práve teraz, to všetko robí je, keď navštívite webové stránky, 134 00:06:27,650 --> 00:06:31,490 to vytlačí "Hello banky," čo nie je mimoriadne užitočné, 135 00:06:31,490 --> 00:06:34,630 ale myslím, že je to v pohode, že V tomto malom súboru tu, 136 00:06:34,630 --> 00:06:37,390 máme webový server beží že sa tlačí niečo. 137 00:06:37,390 --> 00:06:40,500 Takže, poďme sa pozrieť vlastne na kód na sekundu, 138 00:06:40,500 --> 00:06:43,080 a rozobrať to trochu. 139 00:06:43,080 --> 00:06:45,260 Je veľkosť dobré pre všetky tu? 140 00:06:45,260 --> 00:06:51,560 >> Takže dúfajme, že ste trochu pohodlne používať Python. 141 00:06:51,560 --> 00:06:55,820 Som za predpokladu, že sa môžeme pozrieť na Python a čítať cez to. 142 00:06:55,820 --> 00:06:59,290 Ak máte akékoľvek otázky ohľadom čokoľvek, môžem tiež ísť cez to. 143 00:06:59,290 --> 00:07:03,974 >> Takže prvý riadok je, z banky, dovážame, banky s kapitálom "F" 144 00:07:03,974 --> 00:07:06,140 čo je trochu všetko Kľúčové funkcie, ktoré budete potrebovať. 145 00:07:06,140 --> 00:07:08,890 Kedykoľvek píšete súbor a pomocou banky, 146 00:07:08,890 --> 00:07:12,120 budete chcieť importovať, že, len preto, že má všetky hlavné veci. 147 00:07:12,120 --> 00:07:15,400 Ďalšia vec, ktorú robíme, je, že sme volanie tejto funkcie banky, len 148 00:07:15,400 --> 00:07:19,270 vytvoriť aplikáciu objekt, a vy ste vždy bude chcieť urobiť. 149 00:07:19,270 --> 00:07:25,960 >> A potom, zoskočil do Dno rýchlo, táto časť je tu, 150 00:07:25,960 --> 00:07:28,760 'if_name _ == "_ main_"', čo je niečo ako Python dohovoru. 151 00:07:28,760 --> 00:07:32,750 Takže to bude pracovať iba ak ste spustiť tento súbor priamo pomocou Python. 152 00:07:32,750 --> 00:07:36,040 Potom, nazývame app.run, ktorý bude skutočne začať aplikáciu deje. 153 00:07:36,040 --> 00:07:39,570 >> Tak, to je hlavná štruktúra, ktorá budete mať v ľubovoľnej aplikácii banky, 154 00:07:39,570 --> 00:07:48,550 je budete mať to app = banky (_name_), a potom app.run. 155 00:07:48,550 --> 00:07:54,940 >> Takže, tieto dve veci, ktoré mám tu, je to, čo nazývame trás. 156 00:07:54,940 --> 00:07:57,150 Takže, poďme hovoriť o smerovanie trochu viac. 157 00:07:57,150 --> 00:07:58,430 Vrátim sa na snímku. 158 00:07:58,430 --> 00:08:02,540 >> Takže najzásadnejšie poňatie v banke smerovania. 159 00:08:02,540 --> 00:08:06,750 A je to myšlienka, že vás priradenie funkcií v Pythone 160 00:08:06,750 --> 00:08:11,280 na určitej adresy na svojej webovej stránke. 161 00:08:11,280 --> 00:08:13,930 Takže, kedykoľvek budete chcieť vytvoriť novú trasu, 162 00:08:13,930 --> 00:08:16,500 použijete tento @ app.route Funkcie dekoratér. 163 00:08:16,500 --> 00:08:19,770 Takže, ak ste oboznámení s Funkcie dekoratérov v Pythone, 164 00:08:19,770 --> 00:08:24,160 že je to koncept, ktorý umožňuje zhotovovať funkcie 165 00:08:24,160 --> 00:08:26,800 a obklopujú ju niečím iným. 166 00:08:26,800 --> 00:08:30,140 >> Takže naozaj, čo to robí dekoratér, je to, že má funkciu pod ňou, 167 00:08:30,140 --> 00:08:33,409 a pridáva ďalšie informácie na to, ale to, čo v skutočnosti banky 168 00:08:33,409 --> 00:08:37,480 to aby sa to stalo, nie je výborný rozhodujúce, ale čo je dôležité, 169 00:08:37,480 --> 00:08:43,640 je to, že pred cestou, vy dať túto @ app.route, a potom 170 00:08:43,640 --> 00:08:46,480 adresa trasy, takže lomítkom je to, čo sme 171 00:08:46,480 --> 00:08:48,360 videl, keď sme jednoducho otvoriť webovú stránku. 172 00:08:48,360 --> 00:08:49,580 Tak to je domovskú stránku. 173 00:08:49,580 --> 00:08:51,037 Je to len lomítko trasy. 174 00:08:51,037 --> 00:08:52,370 A potom máte túto funkciu. 175 00:08:52,370 --> 00:08:54,453 Názov funkcie môže byť čokoľvek chcete. 176 00:08:54,453 --> 00:08:56,930 Nemusí to nutne má čo robiť s trasy. 177 00:08:56,930 --> 00:08:59,440 A potom, bez ohľadu na Funkcia je návrat, 178 00:08:59,440 --> 00:09:01,730 Funkcie by mal vrátiť reťazec. 179 00:09:01,730 --> 00:09:03,740 A že reťazec môže obsahovať HTML alebo čokoľvek, 180 00:09:03,740 --> 00:09:06,920 a to je vlastne to, čo dostanete sa vrátil do vášho webového prehliadača ako HTML, 181 00:09:06,920 --> 00:09:08,200 a to bude robiť to. 182 00:09:08,200 --> 00:09:12,030 >> Takže toto je rovnaký kód že bol z príkladu 183 00:09:12,030 --> 00:09:16,430 že som bežal, takže keď sme sa navštíviť lomítko, volá funkciu Hello World, ktorý 184 00:09:16,430 --> 00:09:20,470 len vráti reťazec, Hello banky, a že sa vytlačí na obrazovke. 185 00:09:20,470 --> 00:09:27,290 >> Takže tam je ďalší príklad, čo je, keď navštívite / ahoj, 186 00:09:27,290 --> 00:09:30,370 to vytlačí Hello Word, ktorý by sa v skutočnosti hovoria, Hello World, 187 00:09:30,370 --> 00:09:32,010 ale poďme predstierať, že bolo úmyselné. 188 00:09:32,010 --> 00:09:35,140 Takže poďme sa vytiahnuť, že až naozaj rýchlo. 189 00:09:35,140 --> 00:09:41,290 >> Takže ak idete na localhost / ahoj, to bude teraz vytlačiť niečo iné. 190 00:09:41,290 --> 00:09:45,680 Tak to je len rýchly príklad toho, ako môžete vytvoriť dve rôzne trasy. 191 00:09:45,680 --> 00:09:50,630 >> Takže, ak to nie je mimoriadne užitočné, tam nie je veľa, čo môžete urobiť, 192 00:09:50,630 --> 00:09:55,360 môžete jednoducho robiť všetko, čo s majú rôzne HTML stránky, 193 00:09:55,360 --> 00:09:58,000 a pri návšteve konkrétnej strana to len načíta stránku. 194 00:09:58,000 --> 00:10:00,864 Takže poďme sa pozrieť na nejaké ďalšie užitočné veci, ktoré môžete urobiť. 195 00:10:00,864 --> 00:10:03,780 Takže, jedna vec, ktorú by ste mohli mať si všimol v príklade, ktorý som vytiahol 196 00:10:03,780 --> 00:10:07,160 up, je, že som mal app.run (debug = True). 197 00:10:07,160 --> 00:10:09,580 A tak, čo to debug argumentom robí, je 198 00:10:09,580 --> 00:10:14,600 že pri spustení webového servera, keď ste v aplikácii, 199 00:10:14,600 --> 00:10:18,100 ak zmeníte súbor, to bude automaticky znovu načítať server. 200 00:10:18,100 --> 00:10:21,160 >> A tak sa nemáte skutočne nutné reštart Python, čo je super užitočné. 201 00:10:21,160 --> 00:10:24,020 Môžem ti ukázať, že. 202 00:10:24,020 --> 00:10:26,960 Dovoľte mi, aby som vytiahnuť môj kód s preklep v ňom, 203 00:10:26,960 --> 00:10:30,420 a predstierať, že sa tam dal typo úmyselne pre poučné účely. 204 00:10:30,420 --> 00:10:31,625 Takže poďme pridať tento späť. 205 00:10:31,625 --> 00:10:33,140 Takže teraz sa hovorí, že Hello World. 206 00:10:33,140 --> 00:10:34,410 Budem ho zachrániť. 207 00:10:34,410 --> 00:10:36,540 A keď sme sa vytiahnuť späť hore terminál, budete 208 00:10:36,540 --> 00:10:39,520 hovoria, že je to reštartovanie, pretože zistil zmenu, 209 00:10:39,520 --> 00:10:43,620 a tak teraz, keď sme sa znovu načítať túto stránku to vytlačí správnu vec. 210 00:10:43,620 --> 00:10:45,630 >> Takže debug je super užitočné pre to. 211 00:10:45,630 --> 00:10:48,740 Tiež, ak máte nejaké akési zrážke, tak 212 00:10:48,740 --> 00:10:54,370 dovoľte mi, aby som túto aplikáciu pád tým, že to nebude vráti reťazec. 213 00:10:54,370 --> 00:10:57,540 Takže, poďme sa jednoducho si to vrátiť Žiadny z nejakého dôvodu. 214 00:10:57,540 --> 00:11:00,810 A potom, keď som sa navštíviť túto strana, bude to jednoducho zrúti, 215 00:11:00,810 --> 00:11:04,465 ale server nie je len pád, to v skutočnosti vám dáva super užitočné chrbát 216 00:11:04,465 --> 00:11:06,490 stopa všetkého, čo sa stalo. 217 00:11:06,490 --> 00:11:10,050 A čo je naozaj pekné, že sa v akomkoľvek kroku v tejto zadnej trasovanie, 218 00:11:10,050 --> 00:11:14,260 môžete otvoriť interaktívne shell tu, a tak nejako vytlačiť čo 219 00:11:14,260 --> 00:11:17,780 premenné Ak sa chcete pozrieť na. 220 00:11:17,780 --> 00:11:21,054 >> A tak ladenie je naozaj užitočné pre zisťuje, 221 00:11:21,054 --> 00:11:23,470 to, čo sa deje s vaším servera, skôr než len vidieť 222 00:11:23,470 --> 00:11:28,201 niečo v PHP ako 500 interné chyba servera, čo je super k ničomu. 223 00:11:28,201 --> 00:11:30,700 Jedna vec je byť vedomí, je že ak dáte svoju aplikáciu on-line 224 00:11:30,700 --> 00:11:34,260 takže je viditeľný pre verejnosť, budete nikdy chcieť opustiť režim ladenia na, 225 00:11:34,260 --> 00:11:37,320 preto, že ľudia môžu v skutočnosti používať túto konzolu, ktoré som 226 00:11:37,320 --> 00:11:39,150 Ukázal ste sa spustiť ľubovoľný kód. 227 00:11:39,150 --> 00:11:42,120 >> Takže sa môžete vytlačiť ako každý tajné kódy máte tam, 228 00:11:42,120 --> 00:11:44,755 oni sa pozrieť na presne ako sa vaše webové stránky funguje. 229 00:11:44,755 --> 00:11:46,630 Takže je to naozaj užitočné pre testovanie, ale vždy 230 00:11:46,630 --> 00:11:50,090 uistite sa, že si ju pred publikovať čokoľvek online. 231 00:11:50,090 --> 00:11:56,640 >> Takže, keď ste pomocou niečo ako PHP, je tu táto myšlienka 232 00:11:56,640 --> 00:11:58,920 ktoré môžete odovzdať Informácie medzi stránkami 233 00:11:58,920 --> 00:12:03,620 tým, že informácie skutočne v URL, čo je požiadavka GET, 234 00:12:03,620 --> 00:12:07,490 ale v banke sa môžete skutočne niečo druh takého, 235 00:12:07,490 --> 00:12:10,590 tým, že má trasu, ktorá má premenná ako jeho súčasť. 236 00:12:10,590 --> 00:12:14,090 >> Takže, keď sa pozriete na to Príklad na obrazovke tu, 237 00:12:14,090 --> 00:12:19,930 máme trasu, ktorá je ("/ Ahoj /"), a preto, ak navštívite 238 00:12:19,930 --> 00:12:23,790 / Ahoj / niečo, že niečo bude skutočne dostať plnené 239 00:12:23,790 --> 00:12:25,490 do názvu premennej. 240 00:12:25,490 --> 00:12:27,850 A všimnite si, že funkcia ktorý je dodávaný s týmto trasu 241 00:12:27,850 --> 00:12:31,302 musí vziať v parametri meno, tak, že to bude v skutočnosti 242 00:12:31,302 --> 00:12:32,510 dostať prešiel do funkcie. 243 00:12:32,510 --> 00:12:34,190 >> A potom, akonáhle ste vnútri tejto funkcie, 244 00:12:34,190 --> 00:12:36,420 môžete liečiť, že rovnako ako normálna premenná Python, 245 00:12:36,420 --> 00:12:39,650 a tak potom to bude vytlačiť Dobrý deň, a to 246 00:12:39,650 --> 00:12:42,000 vyplní v názve pomocou niektoré formátovanie reťazca. 247 00:12:42,000 --> 00:12:48,060 >> Takže pridať pohyblivé zložky ku smerovanie, použiť uholník označenie. 248 00:12:48,060 --> 00:12:51,220 A voliteľne, môžete použiť čo sa nazýva konvertor. 249 00:12:51,220 --> 00:12:56,840 A tak, keď dáte to anotácie s hrubého čreva, 250 00:12:56,840 --> 00:13:00,015 môžete určiť, že je to int, alebo float, alebo cesta, 251 00:13:00,015 --> 00:13:01,640 a to bude automaticky prevedie to. 252 00:13:01,640 --> 00:13:05,130 Môžete si tiež urobiť konverziu vo funkcii Python, 253 00:13:05,130 --> 00:13:09,710 len pomocou obsadenie, ale niekedy, ak Ak chcete zabezpečiť, že je to int, 254 00:13:09,710 --> 00:13:12,080 si môžete dať, že konverzie pravidlo tam. 255 00:13:12,080 --> 00:13:15,930 >> Takže poďme sa vytiahnuť príklad niektorých variabilných pravidiel. 256 00:13:15,930 --> 00:13:21,480 Tak tu, to má rovnaké základné Štruktúra s dovozom z Flask 257 00:13:21,480 --> 00:13:25,030 Banka, aplikácia = banku (_name_), a potom je to beh na konci. 258 00:13:25,030 --> 00:13:28,050 Máme tieto dva rôzne variabilný trasy tu. 259 00:13:28,050 --> 00:13:29,900 A prvé, je ten, ktorý som ukázal 260 00:13:29,900 --> 00:13:34,230 na snímke, ktorý bol, že to jednoducho trvá v názve reťazec 261 00:13:34,230 --> 00:13:35,650 a bude tlačiť Dobrý deň, názov. 262 00:13:35,650 --> 00:13:41,410 >> A potom, druhý jeden používa konverzie. 263 00:13:41,410 --> 00:13:44,690 Takže to bude automaticky previesť int, a potom dvojnásobok int, 264 00:13:44,690 --> 00:13:46,150 a vytlačiť to von. 265 00:13:46,150 --> 00:13:48,220 A nerobíme žiadny druh premeny v ňom 266 00:13:48,220 --> 00:13:49,594 Fľaša pretože sa stará o to. 267 00:13:49,594 --> 00:13:53,181 Takže poďme si to beží. 268 00:13:53,181 --> 00:13:54,930 Keď máte banky aplikácia beží, 269 00:13:54,930 --> 00:13:58,440 môžete ovládať-C z nej zastaviť chod servera. 270 00:13:58,440 --> 00:14:02,420 A potom som pobeží premenné. 271 00:14:02,420 --> 00:14:11,740 >> Tak poďme na localhost / ahoj / Ezra a dúfajme, že to pozdraviť mne. 272 00:14:11,740 --> 00:14:14,530 273 00:14:14,530 --> 00:14:20,310 >> Tak to trvalo v mojom mene, v premennej cesta, a naplnil ho tu. 274 00:14:20,310 --> 00:14:23,950 Tak som sa tiež ukázať, rýchly Príklad zdvojenie. 275 00:14:23,950 --> 00:14:28,600 Takže ak idete do / double / 3, to bude tlačiť 6. 276 00:14:28,600 --> 00:14:31,440 Tak to sa postaral o konverzie pre nás. 277 00:14:31,440 --> 00:14:34,190 >> Takže si môžete tiež urobiť s float, a niečo zvláštne, 278 00:14:34,190 --> 00:14:37,530 ak musíte zadať niečo ako cesta, ktorá vám umožní to prijať lomky, 279 00:14:37,530 --> 00:14:39,155 ale nemala by byť problém. 280 00:14:39,155 --> 00:14:41,480 281 00:14:41,480 --> 00:14:43,820 Doteraz sme, ešte práve vracia 282 00:14:43,820 --> 00:14:46,320 reťazca, čo nie je príliš zaujímavé. 283 00:14:46,320 --> 00:14:48,730 >> Mohli by sme dokonca vrátiť doslovný HTML reťazec. 284 00:14:48,730 --> 00:14:54,322 Takže v kóde, môžeme vložiť niečo rovnako ako b-tag, aby bolo tučne, 285 00:14:54,322 --> 00:14:56,030 ale väčšinu času vás nemajú vlastne chcú 286 00:14:56,030 --> 00:14:58,420 za písanie HTML kódu v Pythone. 287 00:14:58,420 --> 00:15:01,940 To dostane naozaj chaotický, a to nie je vhodná doba. 288 00:15:01,940 --> 00:15:06,430 >> Banka nám umožňuje oddeliť HTML do toho, čo sa nazýva šablóna, 289 00:15:06,430 --> 00:15:09,467 takže ak uvažujete pokiaľ ide o modeli MVC 290 00:15:09,467 --> 00:15:11,550 že ste oboznámení s, dúfajme, z práce 291 00:15:11,550 --> 00:15:15,520 s CS50 financií trochu, si môžete myslieť Python súborov 292 00:15:15,520 --> 00:15:19,430 ako viac kontrolóra, kde sú interakciu s čo 293 00:15:19,430 --> 00:15:20,970 dátový model môžete mať. 294 00:15:20,970 --> 00:15:24,900 >> A potom sú volali na Zobrazenie a prenosu informácií, ktoré tento pohľad 295 00:15:24,900 --> 00:15:28,120 vyplniť informácie v HTML, že potrebuje. 296 00:15:28,120 --> 00:15:30,490 A to, čo nazývame tieto pohľady Šablóny sú v triede. 297 00:15:30,490 --> 00:15:35,280 >> Takže Banka používa iný Python modul, ktorý to bude automaticky 298 00:15:35,280 --> 00:15:38,620 nainštalovať pri inštalácii PIP Banka volal Jinja, ktorý 299 00:15:38,620 --> 00:15:40,885 vám umožní pridať tieto poznámky do HTML 300 00:15:40,885 --> 00:15:45,140 , Ktoré vidíte na obrazovke, ktorá umožňuje dáte vo veciach, ako je podmienkové, 301 00:15:45,140 --> 00:15:47,230 a slučky do HTML. 302 00:15:47,230 --> 00:15:51,140 >> Takže to vyzerá trochu ako, ako ste môže používať PHP v HTML súboru, 303 00:15:51,140 --> 00:15:57,380 ale je to len, keď je banka Server slúži až súbor HTML, 304 00:15:57,380 --> 00:16:01,610 to bude spustiť tento templátové motor a analyzovať cez to a vyplňte veci. 305 00:16:01,610 --> 00:16:06,650 Takže Banka má funkciu render_template ktoré môžete vidieť na dne tu. 306 00:16:06,650 --> 00:16:14,300 A tak, keď navštívite túto stránku, to by spôsobilo túto hello.html šablónu, 307 00:16:14,300 --> 00:16:16,407 a potom vyplňte v tejto HTML stránky. 308 00:16:16,407 --> 00:16:18,990 Tak nech to len beh tejto realitnej rýchla, a vidieť, ako to vyzerá, 309 00:16:18,990 --> 00:16:21,198 a potom pôjdem prostredníctvom trochu podrobnejšie. 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 Takže, vaše šablóny idú ísť v priečinku Šablóny. 312 00:16:30,260 --> 00:16:33,980 To bude automaticky vyzerať v rámci Zložky Šablóny pre túto šablónu. 313 00:16:33,980 --> 00:16:35,615 Takže poďme otvoriť toto hore. 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 Takže, budem spustiť príklad šablonovacího. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> Takže keď som sa ísť do / ahoj / Ezra, má to hrozné, 318 00:17:03,660 --> 00:17:05,930 nepríjemný stan tag, ktorý som dal. 319 00:17:05,930 --> 00:17:08,050 Veľmi pekný, veľmi dynamické. 320 00:17:08,050 --> 00:17:09,349 Som veľký fanúšik. 321 00:17:09,349 --> 00:17:13,900 Ale čo sa stane, keď Len som ísť do, / ahoj? 322 00:17:13,900 --> 00:17:15,220 Tak to len hovorí Hello World. 323 00:17:15,220 --> 00:17:17,678 Som neprešiel jeho názov, a to naplnil ju automaticky. 324 00:17:17,678 --> 00:17:22,050 Tak uvidíme, ako to urobil, a ako sa môžeme zbaviť tohto stanu možná. 325 00:17:22,050 --> 00:17:26,240 >> Tak tu to je druh zaujímavým príkladom, 326 00:17:26,240 --> 00:17:29,101 ak ste oboznámení s tým, ako prepínač príkazy pracujú v danom jazyku. 327 00:17:29,101 --> 00:17:31,350 Povedzme, že je to niečo ako, že akýsi prepadnúť, 328 00:17:31,350 --> 00:17:34,266 kde ste skutočne pripojené dva rôzne cesty do rovnakej funkčnej. 329 00:17:34,266 --> 00:17:41,190 Tak sme sa pripojiť / Hello trasu a adresári / ahoj / názov Cesta k Hello, 330 00:17:41,190 --> 00:17:45,130 a určíme using-- vás Python umožňuje určiť predvolené nastavenie funkcie arguments-- 331 00:17:45,130 --> 00:17:48,300 takže ak nie je názov, takže ak pôjdeme len / ahoj, 332 00:17:48,300 --> 00:17:50,680 to bude automaticky filtrovať pomenovať je rovná Žiadny. 333 00:17:50,680 --> 00:17:55,010 >> Takže sme spôsobiť, že Šablóna s názvom = názov, 334 00:17:55,010 --> 00:17:59,510 tak to bude prejsť v parametri názvu rovná tejto funkcie názov parametra, 335 00:17:59,510 --> 00:18:00,730 do šablóny. 336 00:18:00,730 --> 00:18:04,040 To stále nevysvetľuje, ako je rozhodovanie o tom, či sa má vytlačiť Hello World, 337 00:18:04,040 --> 00:18:05,100 alebo vytlačiť moje meno. 338 00:18:05,100 --> 00:18:08,050 Takže poďme sa pozrieť vlastne do samotného šablóny, 339 00:18:08,050 --> 00:18:11,610 a zistiť, kde, ktorý prichádza z. 340 00:18:11,610 --> 00:18:18,680 >> Takže v túto šablónu, my v skutočnosti majú nejaký podmienenej logiky, 341 00:18:18,680 --> 00:18:20,580 ktorý niektorí ľudia by argumentujú, ste vlastne 342 00:18:20,580 --> 00:18:23,730 by nemali mať veľa podmieneného Logika priamo vo Vašom Template sám. 343 00:18:23,730 --> 00:18:26,310 To by malo byť v rámci Controller, ale pre tento príklad 344 00:18:26,310 --> 00:18:27,476 je to niečo celkom malý. 345 00:18:27,476 --> 00:18:31,060 Tak tu sme sa skontrolovať, ak názov, a tak ak meno nerovná Žiadny, 346 00:18:31,060 --> 00:18:33,130 v prípade, že meno je vlastne prešiel v roku, potom budeme 347 00:18:33,130 --> 00:18:36,210 Pozdravte, meno sa hlavičky a stan, 348 00:18:36,210 --> 00:18:41,490 všetko to normálne HTML, inak budeme vytlačiť Hello, World jednoducho normálne. 349 00:18:41,490 --> 00:18:45,820 Tak pár vecí všímať tu o tom, ako formátovať templatačního, 350 00:18:45,820 --> 00:18:49,110 je to, že všetky z nich podmienené príkazy, 351 00:18:49,110 --> 00:18:54,475 niečo ako, ako sme ju, keď PHP Ak chcete vložiť nejaký PHP, 352 00:18:54,475 --> 00:18:58,380 použijete menej ako otázka značka, je to niečo analogický tu 353 00:18:58,380 --> 00:19:00,140 s {%. 354 00:19:00,140 --> 00:19:02,130 >> Tak tu, máme podmienečný kód. 355 00:19:02,130 --> 00:19:05,920 A potom, keď budete skutočne chcú doslova hodnotiť niečo, a tlač 356 00:19:05,920 --> 00:19:08,710 to sa na obrazovke, použite dvojité zátvorky. 357 00:19:08,710 --> 00:19:12,310 Tak tu sú dvojité vzpery, a potom určíme meno, 358 00:19:12,310 --> 00:19:15,500 tak v to, že bude hodnotiť názvu premenné, ktoré 359 00:19:15,500 --> 00:19:18,860 bol schválený v z render funkcie šablóny, 360 00:19:18,860 --> 00:19:21,484 skôr než len tlač out, ak sme sa zbavili z nich, 361 00:19:21,484 --> 00:19:23,150 to by len vytlačiť slovo "názov." 362 00:19:23,150 --> 00:19:26,340 Tak, to je niečo, čo dávať pozor. 363 00:19:26,340 --> 00:19:29,792 >> Takže iná vec je oznámenia je, že keď sme 364 00:19:29,792 --> 00:19:31,500 chcú používať render_template funkcie, 365 00:19:31,500 --> 00:19:34,490 v skutočnosti máme dovážať výslovne z fľaše. 366 00:19:34,490 --> 00:19:36,915 A toto je príklad modularita banky, 367 00:19:36,915 --> 00:19:39,290 že nemusíte dovážať veci, ktoré nepotrebujete. 368 00:19:39,290 --> 00:19:41,290 Stačí si len priniesť v funkcie, ktoré skutočne 369 00:19:41,290 --> 00:19:43,450 Je potreba, ktorá je niekedy pekne, takže sa nemusíte 370 00:19:43,450 --> 00:19:46,560 mať všetky tieto funkcie sedieť, že ju nepoužívate, 371 00:19:46,560 --> 00:19:49,730 ale tiež, ak ste zabudli, že vás treba importovať render_template, 372 00:19:49,730 --> 00:19:52,660 budete pravdepodobne dostanete upozornenie že dáme vám vedieť o tom. 373 00:19:52,660 --> 00:19:56,700 Tak, že je šablónový. 374 00:19:56,700 --> 00:20:01,680 >> Takže sme ukázali, ako sa vytvárať jednoduché webové stránky, 375 00:20:01,680 --> 00:20:04,947 a pridať trochu viac logiky že, pokiaľ ide o premenné smerovanie. 376 00:20:04,947 --> 00:20:08,280 To vám umožní robiť rôzne veci na základe čo URL idete, a tiež po tom, dať 377 00:20:08,280 --> 00:20:11,950 HTML trochu viac zmysel o tom, ako budete chcieť vykresliť veci. 378 00:20:11,950 --> 00:20:14,210 Nemusíte dať všetky Váš HTML v Pythone, 379 00:20:14,210 --> 00:20:16,640 ale do značnej miery každá webová aplikácia, 380 00:20:16,640 --> 00:20:21,480 budete chcieť nejakú dátového modelu s ním spojené. 381 00:20:21,480 --> 00:20:25,560 >> A tak tradične, to by bolo niečo ako SQL databázy. 382 00:20:25,560 --> 00:20:30,280 A môžete len komunikovať priamo s SQL. 383 00:20:30,280 --> 00:20:32,190 Python má, myslím, že sa to volá. 384 00:20:32,190 --> 00:20:33,040 SQLite 3. 385 00:20:33,040 --> 00:20:38,454 Stačí si len importovať SQLite 3 a spúšťať SQL dotazy priamo, 386 00:20:38,454 --> 00:20:40,870 ale ja neviem ako vy, ale ja naozaj nemám rád, len, 387 00:20:40,870 --> 00:20:42,750 písanie mimo SQL dotazov. 388 00:20:42,750 --> 00:20:45,350 To má tendenciu sa dostať naozaj dlhý a komplikovaný. 389 00:20:45,350 --> 00:20:49,180 >> A tak, niečo, Rád používam je to, čo je 390 00:20:49,180 --> 00:20:53,610 známy ako ORM, čo je objektovo-relačné mapovanie. 391 00:20:53,610 --> 00:20:56,890 A bod objektovo-relačné mapovanie, 392 00:20:56,890 --> 00:21:00,100 je, že existujú dva rôzne spôsoby, ako si môžete myslieť o databázach. 393 00:21:00,100 --> 00:21:03,240 >> Tak na príklad, ktorý Profesor Malan zvyčajne 394 00:21:03,240 --> 00:21:07,660 využíva v triede, je tabuľka Excel, kde máte tieto riadky a tieto stĺpce, 395 00:21:07,660 --> 00:21:10,210 a to je naozaj užitočné pre ako je zastúpená v SQL 396 00:21:10,210 --> 00:21:13,170 a ako komunikovať s ním, ale Ďalším spôsobom, ako že je to vlastne 397 00:21:13,170 --> 00:21:16,390 užitočné premýšľať o tom niekedy, je, pokiaľ ide o triedy a objektov. 398 00:21:16,390 --> 00:21:20,420 >> Takže namiesto toho, myslenie každej tabuľky ako majúce 399 00:21:20,420 --> 00:21:23,040 tento riadok, ktorý má isté informácie, môžete skutočne 400 00:21:23,040 --> 00:21:26,100 myslieť na to, ako byť Každá tabuľka je trieda, 401 00:21:26,100 --> 00:21:29,810 a potom každý inštancie trieda má určité vlastnosti. 402 00:21:29,810 --> 00:21:35,110 Takže v tomto prípade, inštancie triedy sú riadky v tabuľke, 403 00:21:35,110 --> 00:21:37,490 a potom každý majetok by byť stĺpec v tabuľke. 404 00:21:37,490 --> 00:21:40,840 >> Takže ORM, že sa mi páči používať, sa nazýva Peewee. 405 00:21:40,840 --> 00:21:43,520 Je to naozaj malý, niečo ako banky. 406 00:21:43,520 --> 00:21:46,760 Myslím, že idú dobre dohromady, ale existuje veľa ďalších ORMS 407 00:21:46,760 --> 00:21:47,730 , Ktoré môžete použiť. 408 00:21:47,730 --> 00:21:52,180 Viac populárny je známy ako SQLAlchemy, 409 00:21:52,180 --> 00:21:56,050 a ja si nemôžem spomenúť, prečo som pôvodne vybral Peewee nad SQLAlchemy, 410 00:21:56,050 --> 00:21:58,311 inak by som povedať, prečo som myslím, že je to ten najlepší, 411 00:21:58,311 --> 00:22:01,060 ale my sme práve chystá použiť človek, pretože viem, ako ju používať. 412 00:22:01,060 --> 00:22:04,760 >> Takže, jedna otázka je, prečo sa by ste mali obťažovať s použitím ORM, 413 00:22:04,760 --> 00:22:07,552 namiesto toho len priamo písania SQL dotazov? 414 00:22:07,552 --> 00:22:09,760 A myslím, že najlepšia vec, je to, že nemáte v skutočnosti 415 00:22:09,760 --> 00:22:11,356 písať SQL dotazy. 416 00:22:11,356 --> 00:22:14,480 Je to oveľa jednoduchšie, pretože ja vám ukážem, aby robiť veci, ako je výber, vloženie, 417 00:22:14,480 --> 00:22:16,157 delécie, najmä vytváranie tabuliek. 418 00:22:16,157 --> 00:22:17,990 Je oveľa ľahšie napísať triedny štruktúru, 419 00:22:17,990 --> 00:22:22,250 , Než je štruktúrovať a Vytvorte TABLE, ale jedna vec 420 00:22:22,250 --> 00:22:25,710 byť vedomí, že je ORM sa bude snažiť čo najlepšie 421 00:22:25,710 --> 00:22:28,640 zistiť, čo najviac efektívna SQL dotazu by bolo, 422 00:22:28,640 --> 00:22:30,110 ale niekedy to dostane to zle. 423 00:22:30,110 --> 00:22:32,660 >> A najmä ak ste pracovať s veľkou databázou, 424 00:22:32,660 --> 00:22:35,557 si môžete všimnúť, že dotazu ktorý by mal byť spustený rýchlo, 425 00:22:35,557 --> 00:22:36,640 je v skutočnosti trvá dlhšie. 426 00:22:36,640 --> 00:22:40,164 A keď sa pozriete pod kapotu na to, ako ORM je tlmočenie, že do SQL, 427 00:22:40,164 --> 00:22:42,080 to by mohlo byť niečo robiť naozaj smiešne, 428 00:22:42,080 --> 00:22:44,371 len preto, že druh Ukázal vaše zámery zle. 429 00:22:44,371 --> 00:22:48,080 A tam boli doby, kedy Musel som ho prepísať, a len 430 00:22:48,080 --> 00:22:52,429 spustiť svoje vlastné SQL dotazy, len pretože to bolo analýze zvláštnym spôsobom. 431 00:22:52,429 --> 00:22:54,220 Takže, tam je nejaká nad hlavou, len v ceste 432 00:22:54,220 --> 00:22:58,680 že to prekladá vaše Vyhlásenie dole do SQL. 433 00:22:58,680 --> 00:23:06,200 >> Takže, poďme sa pozrieť na mimoriadne rýchlo jednoduchý príklad dátového modelu 434 00:23:06,200 --> 00:23:07,350 že by ste mohli použiť. 435 00:23:07,350 --> 00:23:11,880 Takže, je to Python kód, a tak sa Prvá vec, ktorú chcete urobiť, je z 436 00:23:11,880 --> 00:23:12,950 Peewee import *. 437 00:23:12,950 --> 00:23:15,850 Takže, na rozdiel od banky, kde musíte všetky tieto jednotlivé moduly, 438 00:23:15,850 --> 00:23:18,125 a chcete importovať banky a napísať šablónu a niektoré ďalšie 439 00:23:18,125 --> 00:23:20,690 že uvidíme neskôr, od Peewee, stačí importovať všetko, 440 00:23:20,690 --> 00:23:22,290 pretože je to celkom malá knižnica. 441 00:23:22,290 --> 00:23:26,490 >> Takže prvá vec, ktorú chcete urobiť, je v skutočnosti vytvoriť tento objekt databázy. 442 00:23:26,490 --> 00:23:31,212 Takže, máte db = SqliteDatabase, a potom názov vašej databázy. 443 00:23:31,212 --> 00:23:33,170 A to bude v skutočnosti vytvoriť objekt databázy 444 00:23:33,170 --> 00:23:36,230 že môžete komunikovať s, s Peewee. 445 00:23:36,230 --> 00:23:40,570 >> A potom, máme skutočný Model, ktorý chceme vytvoriť. 446 00:23:40,570 --> 00:23:42,470 Takže tabuľky chceme vytvoriť. 447 00:23:42,470 --> 00:23:47,270 Takže, v Peewee, každá trieda má vlastné tabuľka v databázy. 448 00:23:47,270 --> 00:23:52,800 Takže, všetky triedy dedia od základný model, 449 00:23:52,800 --> 00:23:55,960 a model M je hlavné mesto niečo, čo je definované v Peewee. 450 00:23:55,960 --> 00:24:02,162 >> Takže, ak by všetky svoje modely zdediť ako ich najvyšší nadradené triede, 451 00:24:02,162 --> 00:24:04,620 oni by mali dediť zo Model, ale to, čo je naozaj v pohode, 452 00:24:04,620 --> 00:24:07,610 je, že môžete skutočne mať svoj modely dedí od seba navzájom. 453 00:24:07,610 --> 00:24:10,530 A veľa času, vaše dátové modely nemusia nutne 454 00:24:10,530 --> 00:24:13,754 urobiť pekný hierarchiu dedičnosti, ale Časy, kedy sa tak stane, je to naozaj pekné, 455 00:24:13,754 --> 00:24:15,920 pretože máte model vlastné od seba navzájom. 456 00:24:15,920 --> 00:24:19,710 >> Takže sme definovali túto triedu "študent," ktorý zdedí model, 457 00:24:19,710 --> 00:24:21,170 a má tri vlastnosti. 458 00:24:21,170 --> 00:24:24,080 To má identifikátor, ktorý je PrimaryKeyField, ktorý 459 00:24:24,080 --> 00:24:26,920 je niečo, za predpokladu, podľa Peewee, meno je Charfield, 460 00:24:26,920 --> 00:24:28,490 a stupeň je IntegerField. 461 00:24:28,490 --> 00:24:32,260 Tak to môže alebo nemusí byť ako CS50 skutočne ukladá všetky 462 00:24:32,260 --> 00:24:33,650 stupňa študentov. 463 00:24:33,650 --> 00:24:36,060 To nie je, ale je to, ako by som to. 464 00:24:36,060 --> 00:24:37,920 >> A potom, že má, v rámci táto trieda, a to 465 00:24:37,920 --> 00:24:41,620 je niečo, čo môžete robiť s Python, môžete mať vnorené triedy. 466 00:24:41,620 --> 00:24:43,920 A to je niečo, že je vyžadované Peewee. 467 00:24:43,920 --> 00:24:47,250 Takže, táto trieda Meta, máte určiť, že je databáza 468 00:24:47,250 --> 00:24:49,830 rovnajúcu sa objektu že sme vytvorili vyššie. 469 00:24:49,830 --> 00:24:54,339 A to, čo hovorí, že súbor je túto tabuľku v skutočnosti bude obsiahnutá v. 470 00:24:54,339 --> 00:24:57,130 Tak to je niečo, čo máte robiť v každom z vašich modelov. 471 00:24:57,130 --> 00:24:59,380 Musíte len zadať v rámci tejto triedy Meta 472 00:24:59,380 --> 00:25:01,400 že databáza je rovný dB. 473 00:25:01,400 --> 00:25:03,940 Takže to, čo zvyčajne robím, keď mám veľa rôznych modelov, 474 00:25:03,940 --> 00:25:05,910 je to, že mám jednu základňu Model, ktorý zvyčajne 475 00:25:05,910 --> 00:25:08,839 stačí zavolať "základný model" ktorá má Meta triedu, 476 00:25:08,839 --> 00:25:10,380 a nastaví databázu rovnajúcu sa db. 477 00:25:10,380 --> 00:25:13,710 A potom všetky moje nasledujúce modely zdedí od tejto základnej triedy. 478 00:25:13,710 --> 00:25:16,760 A potom som sa nemusíte starať o nastavení Meta triedu. 479 00:25:16,760 --> 00:25:21,490 >> Takže, keď to vlastne dostane zostavujú sa do príkazu SQL, 480 00:25:21,490 --> 00:25:24,875 vyzerá to, že tento škaredý vec dole tu, "Vytvoriť tabuľky študentka ID číslo, 481 00:25:24,875 --> 00:25:26,020 " Hocičo. 482 00:25:26,020 --> 00:25:30,002 >> A ja si myslím, že je kratšia, tento SQL dotaz priamo tu, 483 00:25:30,002 --> 00:25:32,960 ale keď sa pozriete na túto triedu tu môžete vidieť presne to, čo sa deje. 484 00:25:32,960 --> 00:25:36,116 Môžete vidieť, čo druhy polí tam sú, čo oni sú povolaní, 485 00:25:36,116 --> 00:25:38,115 a tak si myslím, že pri pohľade na tento kód v jazyku Python 486 00:25:38,115 --> 00:25:43,340 je oveľa čitateľnejší než snaží napísať tento SQL dotaz. 487 00:25:43,340 --> 00:25:45,990 >> Tak, aby sa skutočne používať databázu, 488 00:25:45,990 --> 00:25:48,470 musíme sa k nemu pripojiť v Pythone. 489 00:25:48,470 --> 00:25:52,770 Tak som zvyčajne napísať funkciu nazvanú initialize_db že robí dve veci. 490 00:25:52,770 --> 00:25:54,880 Berie v databáze Objekt db a to 491 00:25:54,880 --> 00:25:58,360 sa k nemu pripája, ktorý sa otvára len up časti do databázy. 492 00:25:58,360 --> 00:26:00,860 Ak ste práve beží hoci webové stránky v miestnom počítači, 493 00:26:00,860 --> 00:26:04,320 nie je to super veľký problém sa báť o pripájanie a odpájanie, 494 00:26:04,320 --> 00:26:06,885 ale ak používate je na internetových stránkach, budete 495 00:26:06,885 --> 00:26:10,010 chcú, aby sa, či ak sa užívateľ sa k nemu pripája, keď uzavrieť 496 00:26:10,010 --> 00:26:12,270 webové stránky, ktoré odpojiť tak, že nemajú veľa ľudí pripojených 497 00:26:12,270 --> 00:26:14,480 do databázy naraz. 498 00:26:14,480 --> 00:26:16,370 >> A potom, keď vás pripojiť k databáze, 499 00:26:16,370 --> 00:26:20,832 Ak chcete volať db.create_tables, a zoznam modely pre to, čo chcete 500 00:26:20,832 --> 00:26:21,540 vytváranie tabuliek. 501 00:26:21,540 --> 00:26:23,950 Tak tu, ja len chcem, aby vytvorte ju pre túto študenta. 502 00:26:23,950 --> 00:26:28,070 A potom, čo je dôležité, je pre určiť bezpečné = TRUE väčšinu času. 503 00:26:28,070 --> 00:26:30,380 Takže to, čo toto tvrdenie bude robiť, je to tak 504 00:26:30,380 --> 00:26:33,580 vytvára tabuľky pre Model študent, ale iba 505 00:26:33,580 --> 00:26:36,109 ak to tabuľka nemá bol vytvorený už. 506 00:26:36,109 --> 00:26:37,400 To je to, čo určuje bezpečné. 507 00:26:37,400 --> 00:26:39,150 Takže to nebude prepísať vaše existujúce stôl, 508 00:26:39,150 --> 00:26:41,525 to bude vytvoriť novú iba tabuľka v prípade, že tam nie je raz. 509 00:26:41,525 --> 00:26:45,090 Takže, mohol by si len vytvoriť tabuľky naraz pomocou SQL. 510 00:26:45,090 --> 00:26:49,410 A potom, že databáza posedenie tam, a potom sa pripojiť ku každej dobe, 511 00:26:49,410 --> 00:26:52,450 ale je to zvyčajne pekné, len aby dal v tomto create_tables výzve, 512 00:26:52,450 --> 00:26:55,550 takže, ak ste niekedy zmazať databázy pri spustení svoj web 513 00:26:55,550 --> 00:26:57,960 Znovu aplikácie, bude to znovu vytvoriť. 514 00:26:57,960 --> 00:27:00,730 >> Takže, len sa uistite, že bezpečný je špecifikovaný aby to bola pravda, 515 00:27:00,730 --> 00:27:03,580 alebo nájdete vaše dáta len stále clobbered zakaždým. 516 00:27:03,580 --> 00:27:06,380 A potom, môžete len zavolať initialize_db zriadiť 517 00:27:06,380 --> 00:27:09,820 pripojenie, a vytvárať Tabuľky v prípade potreby. 518 00:27:09,820 --> 00:27:13,150 >> Takže, najčastejšie vec že budete chcieť urobiť, 519 00:27:13,150 --> 00:27:15,920 alebo jeden z najbežnejších vecí, je skutočne vložiť veci 520 00:27:15,920 --> 00:27:17,170 do databázy. 521 00:27:17,170 --> 00:27:19,430 A tak, skôr než písať vložiť do 522 00:27:19,430 --> 00:27:21,990 výkaz so všetkými uvedené hodnoty, 523 00:27:21,990 --> 00:27:24,650 môžete skutočne volať Funkcie na triede študenta. 524 00:27:24,650 --> 00:27:28,200 Takže, keď vytvoríte triedu ktorý dedí z modelu, 525 00:27:28,200 --> 00:27:30,200 má to vytvoriť metódu. 526 00:27:30,200 --> 00:27:33,870 >> Takže, vy trieda name.create, a zadáte parametre 527 00:27:33,870 --> 00:27:35,260 ktoré chcete odovzdať. 528 00:27:35,260 --> 00:27:39,200 Takže, keď chcem pridať nejaké študentmi k nášmu CS50 stupeň kníh napríklad 529 00:27:39,200 --> 00:27:41,820 Dám do Davida, ktorý má veľmi dobrej kvality, že má 95. 530 00:27:41,820 --> 00:27:45,100 A ja, kto to nerobí tak dobre CS50, mám 50. 531 00:27:45,100 --> 00:27:47,600 A tak pekná vec, o čo to vytvárať funkcie robí, 532 00:27:47,600 --> 00:27:53,040 je to, že vracia inštanciu, alebo riadok, že to vytvorilo v tabuľke, 533 00:27:53,040 --> 00:27:55,750 a tak potom uložíte, že v variabilný, a práca s ním neskôr. 534 00:27:55,750 --> 00:27:58,830 Môžete zmeniť okolo, čo Ukážem príklad. 535 00:27:58,830 --> 00:28:03,050 >> Všimnite si, že som to neurobil musieť zadať ID, 536 00:28:03,050 --> 00:28:09,340 preto, lebo sa jedná o PrimaryKeyField, bude to automaticky 537 00:28:09,340 --> 00:28:10,930 zvyšovať, ak nechcete špecifikovať. 538 00:28:10,930 --> 00:28:12,250 A v skutočnosti, budete pravdepodobne nemala by špecifikovať, 539 00:28:12,250 --> 00:28:14,810 pretože by ste mohli omylom naložiť ID niekoho iného. 540 00:28:14,810 --> 00:28:16,830 A chcete, aby sa istý, že je to jedinečná. 541 00:28:16,830 --> 00:28:20,662 >> Takže, v skutočnosti, najviac Spoločný vec, ktorú chcete urobiť, 542 00:28:20,662 --> 00:28:22,620 je pravdepodobne vybrať von databázy, akonáhle sa 543 00:28:22,620 --> 00:28:24,078 majú veľa informácií tam. 544 00:28:24,078 --> 00:28:27,360 A tak, ak sa chcete dostať všetko, takže ekvivalent select hviezdy 545 00:28:27,360 --> 00:28:30,940 z vyjadrení študentov, ho bude len student.select. 546 00:28:30,940 --> 00:28:34,380 A to vám dá späť pole so všetkými študenta objektov v ňom 547 00:28:34,380 --> 00:28:35,770 že ste iteráciu budete chcieť. 548 00:28:35,770 --> 00:28:37,019 Môžete získať niečo z toho. 549 00:28:37,019 --> 00:28:39,310 A väčšinu času, budete to nie je len chcete urobiť select, 550 00:28:39,310 --> 00:28:40,935 ste vlastne chcete zadať niečo. 551 00:28:40,935 --> 00:28:44,580 A tak si môžete reťaz Dohromady tieto volania funkcií, 552 00:28:44,580 --> 00:28:48,830 ako ako by ste reťaz spolu vyhlásenie v SQL. 553 00:28:48,830 --> 00:28:53,002 Takže si môžete urobiť student.select (). Kde v tomto príklade. 554 00:28:53,002 --> 00:28:54,710 A potom, môžete spresniť podmienky, 555 00:28:54,710 --> 00:28:57,880 len pomocou normálne Python Booleans skontrolovať veci. 556 00:28:57,880 --> 00:29:02,110 >> Takže v tomto prípade, že chcete obmedziť to, čo ste na výber, 557 00:29:02,110 --> 00:29:06,790 kde student.grade sa rovná 50 ° C, a student.name je rovná Ezra, 558 00:29:06,790 --> 00:29:09,130 tak, že bude len dostať ma z toho. 559 00:29:09,130 --> 00:29:11,340 A všimnite si, jeden naozaj subtílne vec je, 560 00:29:11,340 --> 00:29:15,570 že ak chcete zadať AND / a alebo alebo / alebo, 561 00:29:15,570 --> 00:29:19,840 v Pythone, mali by ste normálne používať, Myslím, že slovo "a" v skutočnosti, 562 00:29:19,840 --> 00:29:23,351 ale tu použiť jeden ampersand, čo je normálne bitový operátor, 563 00:29:23,351 --> 00:29:25,600 ale v tomto konkrétnom prípade, presne tak, ako to robí skrček, 564 00:29:25,600 --> 00:29:27,660 použijete jeden ampersand špecifikovať "a". 565 00:29:27,660 --> 00:29:29,451 To je niečo, čo Aj zapliesť veľa, 566 00:29:29,451 --> 00:29:32,530 ale to nepríde že veľa v praxi. 567 00:29:32,530 --> 00:29:36,350 >> A potom, až budete mať všetky Študenti z databázy, 568 00:29:36,350 --> 00:29:39,420 potom, čo ste urobil, že ste select a vaše oblečenie alebo čokoľvek, 569 00:29:39,420 --> 00:29:42,334 môžete použiť slučky foreach, rovnako ako normálne v Pythone, 570 00:29:42,334 --> 00:29:44,500 s nejakým druhom iterátory alebo s nejakým druhom poľa. 571 00:29:44,500 --> 00:29:46,333 Takže si môžete urobiť, pre S v student.select (). keď s 572 00:29:46,333 --> 00:29:52,930 re (Student.grade <75), a takže to bude iteráciu cez každého študenta v tabuľke 573 00:29:52,930 --> 00:29:56,260 ktorého stupeň je nižší ako 75, čo V tomto prípade, je stále len ja. 574 00:29:56,260 --> 00:29:59,218 A potom by ste mohol urobiť niečo, čo v rámci že slučka, rovnako ako pošlite mi e-mail 575 00:29:59,218 --> 00:30:01,680 a povedzte mi skutočne otočiť môj problém sadách. 576 00:30:01,680 --> 00:30:04,550 >> Takže, ďalšia vec, ktorú môžete áno, je to naozaj jednoduché 577 00:30:04,550 --> 00:30:06,460 k aktualizácii riadkov v tabuľke. 578 00:30:06,460 --> 00:30:08,720 Takže, nezabudnite sa sem, Váš keď som vložená, 579 00:30:08,720 --> 00:30:11,440 Vzal som si hodnotu, ktorá bola vrátené student.create, 580 00:30:11,440 --> 00:30:14,920 a ja som pridelený ho pomenovať zvanej Ezra. 581 00:30:14,920 --> 00:30:18,995 A tak teraz, môžete zmeniť hodnoty v tomto prípade, 582 00:30:18,995 --> 00:30:20,870 rovnako ako by to bola normálne triedy v Pythone. 583 00:30:20,870 --> 00:30:25,060 >> Takže si môžete nastaviť ezra.grade = 95 a ktorá bude aktualizovať miestnej kópie, 584 00:30:25,060 --> 00:30:28,380 ale ak naozaj chcete zaviazať, že zmena do databázy, 585 00:30:28,380 --> 00:30:31,410 budete musieť zavolať ezra.save, takže sa nazýva metóda .Save 586 00:30:31,410 --> 00:30:32,650 na inštanciu. 587 00:30:32,650 --> 00:30:38,085 >> A tak teraz, som sa úspešne zmenená moje vlastné trieda v databáze. 588 00:30:38,085 --> 00:30:41,210 Tak, potom povedzme, že ma chytí mení svoju triedu v databáze. 589 00:30:41,210 --> 00:30:44,126 Profesor Malan sa pravdepodobne bude chcieť, aby ma vymazať z triedy, 590 00:30:44,126 --> 00:30:48,630 a tak môžete volať .Delete Metóda inštancie práve na tú vec. 591 00:30:48,630 --> 00:30:51,674 >> Takže, ak by ste chceli ísť späť do tejto slučky tu, 592 00:30:51,674 --> 00:30:53,465 a v skutočnosti, namiesto toho o odosielanie e-mailov na všetky 593 00:30:53,465 --> 00:30:56,577 študentov stupňa ktorého je menej ako 75, ste chceli ich odstrániť, 594 00:30:56,577 --> 00:30:58,660 v rámci tejto slučky by ste mohli volajte s.delete inštancie. 595 00:30:58,660 --> 00:31:04,180 596 00:31:04,180 --> 00:31:07,780 A to posledné, čo chcete robiť, je kedykoľvek nadviazať spojenie, 597 00:31:07,780 --> 00:31:10,350 a máte hotovo s vašou prácou, Ak chcete volať db.Close, 598 00:31:10,350 --> 00:31:13,190 kde db je, že databáza namietajú, že sme mali predtým. 599 00:31:13,190 --> 00:31:18,290 A chcete, aby sa uistil, že všetko dostane uzavretý mimo. 600 00:31:18,290 --> 00:31:18,790 >> Super. 601 00:31:18,790 --> 00:31:22,410 Takže teraz, mám príklad aplikácie. 602 00:31:22,410 --> 00:31:26,880 Ja som tak nejako pre-robil všetko, čo len tak to tam nebude žiadny živý kódovanie 603 00:31:26,880 --> 00:31:30,220 chyby, ale môžeme prejsť to a uvidíte, ako by ste dať banky 604 00:31:30,220 --> 00:31:33,685 a Peewee dohromady, a urobiť jednoduchú aplikáciu. 605 00:31:33,685 --> 00:31:38,680 Ja tomu hovorím CS50 chvastať, a to je druh jednoduchého blog platformu. 606 00:31:38,680 --> 00:31:41,150 >> Tak, ako prvý, budem spustiť a ukázať, ako to vyzerá, 607 00:31:41,150 --> 00:31:42,890 a potom sa môžeme pozerať sa viac do kódu. 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 Dobre, tak nech to jednoducho bežať to. 610 00:32:02,830 --> 00:32:14,040 611 00:32:14,040 --> 00:32:17,250 Cool, urobím to o niečo menší. 612 00:32:17,250 --> 00:32:20,000 Nie je to moc pekné, len preto, Nechcel som robiť veľa CSS, 613 00:32:20,000 --> 00:32:23,255 ale čo to urobí, je, že má táto databáza blogu, 614 00:32:23,255 --> 00:32:25,630 a to ide cez všetky im, a to bude ich zobrazenie 615 00:32:25,630 --> 00:32:28,170 na stránke v poradí posledný. 616 00:32:28,170 --> 00:32:30,920 A tak to sú len niektoré príspevky že som zachránil v databáze. 617 00:32:30,920 --> 00:32:35,680 >> Takže ak chceme vytvoriť novú pošta, môžeme ísť do Pridať nový príspevok, 618 00:32:35,680 --> 00:32:42,720 a môžeme vstúpiť do názvu pošta, takže niečo ako, CS50 seminár. 619 00:32:42,720 --> 00:32:45,360 620 00:32:45,360 --> 00:32:46,735 Wow, naozaj teší na seminár. 621 00:32:46,735 --> 00:32:51,070 622 00:32:51,070 --> 00:32:52,270 >> Super. 623 00:32:52,270 --> 00:32:56,060 Potom stlačte miesto, a to bude presmerovať späť na domovskú stránku, 624 00:32:56,060 --> 00:33:00,039 a potom uvidíte, že Pridá sa posledný príspevok. 625 00:33:00,039 --> 00:33:01,580 A máme ešte všetky tie tam. 626 00:33:01,580 --> 00:33:08,080 Takže teraz, poďme krokovať všetky kód a uvidíte, ako to urobiť. 627 00:33:08,080 --> 00:33:11,995 >> Takže si myslím, že prvá vec, ktorá vám sa pozrieť na, je v skutočnosti modely. 628 00:33:11,995 --> 00:33:14,120 Veľa času, kedy ste navrhovaní niečo, 629 00:33:14,120 --> 00:33:17,036 môžete premýšľať o tom, ako ako prvá budete reprezentovať vaše dáta, 630 00:33:17,036 --> 00:33:22,915 a potom navrhovať veci okolo, ktoré, takže všetko, čo dáva zmysel. 631 00:33:22,915 --> 00:33:25,290 A to je v skutočnosti, ako som urobil to, keď som robil to, 632 00:33:25,290 --> 00:33:28,030 Posadil som sa a myslel, Čo chcem v príspevku. 633 00:33:28,030 --> 00:33:32,130 >> Takže, tu máme rovnakú štruktúru že som sa zmienil skôr, 634 00:33:32,130 --> 00:33:33,755 kde robíme db = Sqldatabase ("posts.db"). 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 V skutočnosti, pravdepodobne nechcete, tvrdé kódu v databázach meno svoje. 637 00:33:40,980 --> 00:33:43,730 To by malo pravdepodobne parameter že je uložený niekde, možno 638 00:33:43,730 --> 00:33:45,940 v konfiguračnom súbore, ale v malý príklad ako je tento, 639 00:33:45,940 --> 00:33:48,310 je to v poriadku, aby pevný kódu, ktorý v. 640 00:33:48,310 --> 00:33:53,510 >> Takže teraz, máme túto triedu Post, ktorá dedí zo základného modelu. 641 00:33:53,510 --> 00:33:56,930 A má, znovu, ID = PrimaryKeyField. 642 00:33:56,930 --> 00:34:02,250 V skutočnosti, ak nechcete určiť, keď som v skutočnosti zbavil to, 643 00:34:02,250 --> 00:34:07,152 potom Peewee my sa postaráme automatické vytváranie tohto poľa ID, 644 00:34:07,152 --> 00:34:09,360 a to bude automaticky urobiť z neho PrimaryKey, ktorý 645 00:34:09,360 --> 00:34:12,485 Myslím si, že je naozaj pekné, pretože obvykle, že je to niečo, čo chcete mať, 646 00:34:12,485 --> 00:34:16,239 ale páči sa mi, aby ju v špecificky, len preto, aby som si uvedomiť, že je to tam. 647 00:34:16,239 --> 00:34:19,480 Ale ak neuvediete, že, že tam bude automaticky. 648 00:34:19,480 --> 00:34:22,198 >> Takže, mám dátum, ktorý je DateTimeField, a všetko 649 00:34:22,198 --> 00:34:24,864 tieto rôzne odbory, ak ste pozrite sa na Peewee dokumentácie, 650 00:34:24,864 --> 00:34:28,920 to ti dám zoznam rôznych typy polí, ktoré môžete použiť. 651 00:34:28,920 --> 00:34:34,440 Z väčšej časti, to je analogický na to, čo by ste videli v SQL. 652 00:34:34,440 --> 00:34:37,699 Takže tam je Charfield, je VarCharFields, TextFields, 653 00:34:37,699 --> 00:34:40,550 ktoré sú pre veľmi dlho texty, ako sú blogu 654 00:34:40,550 --> 00:34:44,460 potenciálne DateTimeFields, DoubleFields, FloatFields, 655 00:34:44,460 --> 00:34:46,100 všetky takéto veci. 656 00:34:46,100 --> 00:34:51,570 >> A môžete odovzdať iné argumenty na to, ktoré som nespresnila tu. 657 00:34:51,570 --> 00:34:55,719 Povedzme napríklad, že ste nechcel umožňujú dve pracovné miesta majú rovnaký názov, 658 00:34:55,719 --> 00:34:59,672 môžete určiť, niečo ako jedinečný = True, 659 00:34:59,672 --> 00:35:02,880 a to je len ďalší parameter poľa, že pri kompilácii dole 660 00:35:02,880 --> 00:35:06,865 do SQL, bude to určiť, že má byť unikátne. 661 00:35:06,865 --> 00:35:09,740 Môžete tiež zadať niečo ako nie null a všetky ostatné veci 662 00:35:09,740 --> 00:35:11,750 obvyklým spôsobom v SQL. 663 00:35:11,750 --> 00:35:16,020 Tak, to je celkom jednoduchý Model, ktorý má dátum. 664 00:35:16,020 --> 00:35:19,460 Všimnite si, v rámci DateTimeField, Aj podľa toho, čo je predvolený. 665 00:35:19,460 --> 00:35:22,560 Špecifikované som, že je datetime.datetime.now, 666 00:35:22,560 --> 00:35:24,920 Dôvodom je spôsob, ktorý to dostane vyhodnotená, 667 00:35:24,920 --> 00:35:28,750 to vlastne hodnotia DateTime.Now kedy 668 00:35:28,750 --> 00:35:32,110 dostane vložená do databázy. 669 00:35:32,110 --> 00:35:34,760 >> Myslím, že by som sa zdvojnásobiť skontrolovať, 670 00:35:34,760 --> 00:35:38,222 ale ak ste niečo také, potom že by v skutočnosti, že po vyhodnotení, 671 00:35:38,222 --> 00:35:40,180 a potom DateTime by byť vždy rovnaké. 672 00:35:40,180 --> 00:35:44,240 Takže, len ak robíte niečo, s datetimes, dvojitá kontrola 673 00:35:44,240 --> 00:35:47,080 že je to hodnotenie, keď v skutočnosti dostane vložená, alebo inak 674 00:35:47,080 --> 00:35:48,780 môžete byť zmätení. 675 00:35:48,780 --> 00:35:51,221 >> Titul je len Charfield, ktorý tu 676 00:35:51,221 --> 00:35:53,970 sú viac argumentov môžete prejdú pri špecifikácii presne, ako dlho budete 677 00:35:53,970 --> 00:35:56,170 chcem, aby to bolo, ale tu, to sa naozaj nezáleží. 678 00:35:56,170 --> 00:35:58,687 A Text bude text celého poštou, 679 00:35:58,687 --> 00:36:01,020 a, čo sa deje, že je TextField len preto, že chcete, 680 00:36:01,020 --> 00:36:03,370 na to, aby mohla byť celkom dlhý reťazec. 681 00:36:03,370 --> 00:36:05,970 >> Potom máme túto Meta podtriedy, že práve 682 00:36:05,970 --> 00:36:11,250 určuje, že chceme databázu ak je to v skutočnosti otvára do 683 00:36:11,250 --> 00:36:14,267 byť db objekt, ktorý tu máme. 684 00:36:14,267 --> 00:36:16,350 A posledná vec, ktorú máme tu, je práve táto funkcia 685 00:36:16,350 --> 00:36:18,120 že budeme použiť z našej hlavnej aplikácie 686 00:36:18,120 --> 00:36:23,970 inicializovať databázu sa chcete pripojiť to, a potom na vytvorenie tabuľky Post. 687 00:36:23,970 --> 00:36:26,880 >> Teraz sa poďme pozrieť na hlavné aplikácie samotnej. 688 00:36:26,880 --> 00:36:30,800 Takže toto je celkom trochu dlhšia, než tie, 689 00:36:30,800 --> 00:36:34,840 že sme nevideli, ale dúfajme, že nie je tak zlé. 690 00:36:34,840 --> 00:36:37,140 Takže mi dovoľte, aby som rozšíriť to. 691 00:36:37,140 --> 00:36:38,370 Dobre. 692 00:36:38,370 --> 00:36:42,070 >> Takže si všimnite, a horná som importoval celá partia ďalších vecí 693 00:36:42,070 --> 00:36:44,129 z banky, ktorá my nie naozaj nevidel. 694 00:36:44,129 --> 00:36:46,670 A dúfajme, že môžeme prejsť každý z nich po jednom 695 00:36:46,670 --> 00:36:49,420 a hovoriť trochu viac o je, radené podľa príkladu. 696 00:36:49,420 --> 00:36:51,380 Takže, máme banky, a render_template, 697 00:36:51,380 --> 00:36:54,370 ktorý sme videli skôr, Táto žiadosť objekt, 698 00:36:54,370 --> 00:37:00,400 ktorý príde, keď sa pozrieme na to, ako forma, ktorú som sa ukazovať vlastne 699 00:37:00,400 --> 00:37:01,170 funguje. 700 00:37:01,170 --> 00:37:04,850 Presmerovanie, ktorý vám umožní presmerovať späť z Create New Post 701 00:37:04,850 --> 00:37:11,710 späť na pôvodné domovskej stránky a potom URL, čo je niečo, čo vám umožní 702 00:37:11,710 --> 00:37:15,550 zistiť, kde na webové stránky konkrétnu stránku je. 703 00:37:15,550 --> 00:37:17,810 >> Tak, ďalšie vec, ktorú robím, je import I 704 00:37:17,810 --> 00:37:21,550 všetky informácie od modelov súbory, ktoré sme sa práve pozeráte. 705 00:37:21,550 --> 00:37:23,140 A, jo. 706 00:37:23,140 --> 00:37:28,720 >> Takže, niečo nové, čo príde up, keď máte čo do činenia s, 707 00:37:28,720 --> 00:37:31,850 najmä databázy, je, že môžete zadať 708 00:37:31,850 --> 00:37:35,110 funkcia, ktorá sa zavolá pred Každú požiadavku, a funkciu, ktorú dostane 709 00:37:35,110 --> 00:37:39,690 volal po každej požiadavke, pomocou tohto Žiadosť funkčného Dekoratérske app.before. 710 00:37:39,690 --> 00:37:42,324 >> A tak to bude vykonaný všade tam, kde je táto funkcia. 711 00:37:42,324 --> 00:37:44,240 To nemusí byť volal pred vyžiadanie, 712 00:37:44,240 --> 00:37:46,281 ale zvyčajne to je niečo, rozumné hovoriť. 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 Môžete určiť, bez ohľadu na funkciu Chcete sa tam volal, 715 00:37:51,650 --> 00:37:56,330 tak som sa uvádza toto initialize_db funkcia, ktorú sme mali späť v modeloch 716 00:37:56,330 --> 00:38:02,390 súbor, takže pred každým vyžiadanie, vy Chcete sa pripojiť k databáze. 717 00:38:02,390 --> 00:38:04,560 >> K dispozícii sú dva rôzne spôsobov, ako to urobiť. 718 00:38:04,560 --> 00:38:10,830 Môžete to udělatapp., I verí, že je to after_request. 719 00:38:10,830 --> 00:38:13,800 A rozdiel medzi after_request a teardown_request, 720 00:38:13,800 --> 00:38:17,590 je to, že sa bude after_request dôjsť iba v prípade, že žiadosť v skutočnosti bol platný. 721 00:38:17,590 --> 00:38:20,440 A tak, len v prípade, že Požiadavka bol úspešný, 722 00:38:20,440 --> 00:38:22,490 ak sa nič nepodarilo, ale teardown_request 723 00:38:22,490 --> 00:38:26,300 sa stane v prípade úspešného žiadosť, alebo v prípade chyby. 724 00:38:26,300 --> 00:38:28,252 >> Takže, zvyčajne, chceš používať teardown_request, 725 00:38:28,252 --> 00:38:30,460 ak chcete robiť niečo, najmä odlišný 726 00:38:30,460 --> 00:38:31,470 v prípade chyby. 727 00:38:31,470 --> 00:38:35,122 Ale len pre uzavretie databázy, či už sa to podarí, alebo ak zlyhá, 728 00:38:35,122 --> 00:38:37,080 my sa chcete odpojiť z databázy. 729 00:38:37,080 --> 00:38:41,240 Tak sa volá, db.Close na db objekt. 730 00:38:41,240 --> 00:38:43,740 >> Všimnite si, že teardown_request nasáva výnimku. 731 00:38:43,740 --> 00:38:46,781 Takže si môžete skontrolovať, či tam bol vlastne chyba, keď to bolo zatváranie baní, 732 00:38:46,781 --> 00:38:49,390 ale tu, dúfajme, že tam nie sú veľa chýb, 733 00:38:49,390 --> 00:38:52,720 takže sme tak nejako ignorovať to. 734 00:38:52,720 --> 00:38:55,990 >> Dobre, a to ostatné nie je tak zlé. 735 00:38:55,990 --> 00:39:02,240 Takže, keď ideme na domovskú stránku, sme tavené túto home.html šablónu 736 00:39:02,240 --> 00:39:03,490 že otvoria. 737 00:39:03,490 --> 00:39:06,240 Priesmyk je vo funkcii rovný, a čo to 738 00:39:06,240 --> 00:39:10,260 robí, je, pamätajte máme tento príspevok Model, takže sme vyberte všetky príspevky, 739 00:39:10,260 --> 00:39:13,890 a potom ďalšiu vec, ktorú môžete urobiť, môžete určiť klauzulu WHERE, 740 00:39:13,890 --> 00:39:16,910 Môžete zadať objednávať, a tak sme sa 741 00:39:16,910 --> 00:39:18,820 všetky príspevky, ktoré dostať vybraný, a potom 742 00:39:18,820 --> 00:39:22,590 objednávame im touto post.date.descending. 743 00:39:22,590 --> 00:39:25,030 A to bude špecifikovať, kedy že skutočne vyjdú, 744 00:39:25,030 --> 00:39:29,250 ten najnovší bude veľmi prvý. 745 00:39:29,250 --> 00:39:31,420 >> A potom, že sme sa prejsť do home.html šablóna, 746 00:39:31,420 --> 00:39:34,240 tak sa poďme skutočne otvoriť Šablóna že naozaj rýchly, 747 00:39:34,240 --> 00:39:36,760 a pozrieť sa na to, ako to je pracovať. 748 00:39:36,760 --> 00:39:42,130 A to nie je veľký HTML, ale dúfajme, že sa môžeme sústrediť na Python. 749 00:39:42,130 --> 00:39:46,960 >> Takže je tu odkaz na pridať nové Post, a tak to určuje trasu 750 00:39:46,960 --> 00:39:51,580 vnútri banky, ktoré sme definovať, čo je tu. 751 00:39:51,580 --> 00:39:56,310 To je nový príspevok trasa, a určíme, že až sem. 752 00:39:56,310 --> 00:40:00,450 A tak to je odkaz, ktorý sa potom ísť na tejto trase v rámci servera Flask. 753 00:40:00,450 --> 00:40:03,820 >> Čím viac zaujímavá vec je to pre slučku tu. 754 00:40:03,820 --> 00:40:07,685 Tak sme určíte, že toto Príspevok parameter, ktorý 755 00:40:07,685 --> 00:40:09,560 bol odovzdaný do render_template funkcie, 756 00:40:09,560 --> 00:40:13,550 pre každý post v období po rokoch Objekt, ktorý je odovzdaný v. 757 00:40:13,550 --> 00:40:16,600 Chceme vytlačiť názov miesto, v 1. polroku, 758 00:40:16,600 --> 00:40:21,930 a potom ďalej, chceme vytlačiť post textu vo vnútri odseku. 759 00:40:21,930 --> 00:40:25,710 >> A tu, môžeme vlastne volanie funkcie Python, 760 00:40:25,710 --> 00:40:35,130 takže môžeme nazvať strftime, ST-RF-time, a môžete odovzdať vo formáte reťazca 761 00:40:35,130 --> 00:40:37,064 ktoré chcete vytlačiť dáta v. 762 00:40:37,064 --> 00:40:39,980 Takže to je celkom pekné, že môžete v skutočnosti túto funkciu volať Python 763 00:40:39,980 --> 00:40:41,090 zvnútra tu. 764 00:40:41,090 --> 00:40:44,370 Nemusíte robiť formátovanie na bočné regulátor, pretože v skutočnosti, 765 00:40:44,370 --> 00:40:47,770 formátovanie dátum, je niečo, Ak chcete riešiť v rámci pohľadu. 766 00:40:47,770 --> 00:40:51,480 >> A všetky tieto percent veci, nie je extra dôležité. 767 00:40:51,480 --> 00:40:55,270 Ak sa pozriete do dokumentácie pre funkciu strftime v Pythone, 768 00:40:55,270 --> 00:40:57,040 špecifikuje všetky tieto veci, ale to je 769 00:40:57,040 --> 00:40:59,190 ako, kedy sme sa pozerali na domovskej stránke tu, 770 00:40:59,190 --> 00:41:04,440 že formátuje to s pekný dátum, a to určuje, AM alebo PM, 771 00:41:04,440 --> 00:41:09,410 ale normálne, keby sme nemal toto, 772 00:41:09,410 --> 00:41:14,024 budete pravdepodobne získať nejaké odpadky dátum, ktorý nevyzeralo moc dobre. 773 00:41:14,024 --> 00:41:15,940 A potom sme zadať post.text, mohol a ja 774 00:41:15,940 --> 00:41:19,460 dali pár konce riadkov tu, len 775 00:41:19,460 --> 00:41:21,820 dať nejaké medzery medzi každé pracovné miesto. 776 00:41:21,820 --> 00:41:26,270 >> Takže si myslím, že najdôležitejšie vec, v tomto príklade, 777 00:41:26,270 --> 00:41:28,697 je, že môžete použiť pre sláčiky. 778 00:41:28,697 --> 00:41:30,780 A to je analogický veci, ktoré môžete urobiť v PHP. 779 00:41:30,780 --> 00:41:32,905 Môžete iterovat, všetko, čo je odovzdaný do, 780 00:41:32,905 --> 00:41:36,719 a tak, namiesto toho, aby musel robiť kopírovať / vložiť, kopírovať / vložiť všetky HTML, 781 00:41:36,719 --> 00:41:40,010 stačí ju napísať raz, a potom môžete iterovat cez všetky stĺpikov. 782 00:41:40,010 --> 00:41:41,510 >> A to je niečo, bežné, že chcete 783 00:41:41,510 --> 00:41:44,510 robiť, keď máte veľké množstvo dát, je, že pre všetko na vaše dáta, 784 00:41:44,510 --> 00:41:48,370 Chcete urobiť podobnú vec. 785 00:41:48,370 --> 00:41:51,690 A potom, len pamätajte, že keď vás Ak chcete tlačiť niečo výslovne 786 00:41:51,690 --> 00:41:54,780 v HTML, môžete použiť dvojité rovnátka tu, 787 00:41:54,780 --> 00:41:57,820 ale potom, keď chcete zadať Niektoré informácie o stave, 788 00:41:57,820 --> 00:42:02,430 alebo o cykle for, ty použite percenta konzolu. 789 00:42:02,430 --> 00:42:08,730 >> Takže ísť späť do Python kód, takže vysvetľuje 790 00:42:08,730 --> 00:42:12,242 čo sa deje v hlavnej Trasa, keď ideme tam, 791 00:42:12,242 --> 00:42:14,450 to jednoducho zobrazia všetky stĺpiky, ale potom otázka 792 00:42:14,450 --> 00:42:17,440 je, ako sme sa skutočne dostať príspevkov do databázy, ktorá 793 00:42:17,440 --> 00:42:18,970 je trochu zaujímavejšie. 794 00:42:18,970 --> 00:42:23,960 >> Takže, keď kliknete na Nový Post link, ktoré sme tu videli, 795 00:42:23,960 --> 00:42:26,000 to vás presmeruje na túto formu. 796 00:42:26,000 --> 00:42:29,580 A to je len jednoduchý hovor na render_template funkcie, ktoré potom 797 00:42:29,580 --> 00:42:32,110 prechádza na novú funkciu vo forme HTML. 798 00:42:32,110 --> 00:42:36,212 Takže poďme sa pozrieť na to. 799 00:42:36,212 --> 00:42:37,420 Takže toto je veľmi jednoduchý. 800 00:42:37,420 --> 00:42:45,110 To má jednoduchý HTML formulár, ktorý bude vyzerať trochu povedomý, 801 00:42:45,110 --> 00:42:47,380 na základe formulára v CS50 financií. 802 00:42:47,380 --> 00:42:49,940 A tak sme sa tu zadáte, akciu. 803 00:42:49,940 --> 00:42:52,435 A tu, ak pracujete s PHP, zvyčajne to, 804 00:42:52,435 --> 00:42:55,930 by bolo niečo ako, create.PHP, ale tu 805 00:42:55,930 --> 00:42:59,960 sme vlastne určiť trasu v rámci servera Flask. 806 00:42:59,960 --> 00:43:02,520 A tak táto cesta zodpovedá na vytvorenie trasy 807 00:43:02,520 --> 00:43:05,680 ktorú tu máme, ktorý pôjdeme do v druhom. 808 00:43:05,680 --> 00:43:07,630 >> A tak sme sa určiť, že je to metóda pošta, 809 00:43:07,630 --> 00:43:09,820 pretože chceme poslať táto forma dát, a zvyčajne 810 00:43:09,820 --> 00:43:12,945 keď ste odosielanie dát z formulára, možno budete chcieť použiť žiadosť o príspevok, 811 00:43:12,945 --> 00:43:15,760 Len takže nemusíte skončiť s týmto veľkým a nemotorný URL. 812 00:43:15,760 --> 00:43:18,970 Ale môžete tiež použiť požiadavku GET, a odovzdať ju s variabilným smerovanie, 813 00:43:18,970 --> 00:43:21,170 ale formulárov, to je pekné na žiadosť o post tu. 814 00:43:21,170 --> 00:43:24,620 A tak potom, presne ako vy by to s HTML a PHP, 815 00:43:24,620 --> 00:43:28,420 môžete zadať tieto textové vstupy, a môžete zadať názov z nich, 816 00:43:28,420 --> 00:43:33,490 a to je meno, ktoré dostane prešiel do objektu žiadosti do banky. 817 00:43:33,490 --> 00:43:36,960 >> A potom máme Odoslať tlačidlo, ktoré hovorí, že Post. 818 00:43:36,960 --> 00:43:40,760 A tu, pošta je názov z tlačidlo, pretože je to blog post, 819 00:43:40,760 --> 00:43:42,700 ale tu, pošta je metóda požiadavke. 820 00:43:42,700 --> 00:43:47,060 Takže to sú rovnaké slovo ale v skutočnosti nesúvisí. 821 00:43:47,060 --> 00:43:48,460 Áno 822 00:43:48,460 --> 00:43:54,800 >> Vráťme sa späť do Pythone, keď sme zavolali metódu vytvárať, 823 00:43:54,800 --> 00:43:57,702 Všimnite si, že môžete skutočne určiť v rámci cesty 824 00:43:57,702 --> 00:44:00,650 metódy požiadavke že chcete prijať, 825 00:44:00,650 --> 00:44:04,770 a tak tu som určiť, že ja len chcete prijať metódy POST. 826 00:44:04,770 --> 00:44:09,800 Takže, keď som sa skutočne snaží navštíviť stránku priamo, ktorý je pomocou požiadavke GET, 827 00:44:09,800 --> 00:44:11,700 bude mi povedať, "Metóda nie je povolená." 828 00:44:11,700 --> 00:44:15,840 >> A tak, budete mať stránky, niečo ako túto vytvoriť stránku, čo ja som len 829 00:44:15,840 --> 00:44:20,192 v skutočnosti za použitia ako cesta pre formulár, aby mohla predložená, 830 00:44:20,192 --> 00:44:22,900 môžete určiť, že vy nie chcete, aby ľudia mohli ísť tam 831 00:44:22,900 --> 00:44:25,650 priamo cez požiadavke GET, alebo ak ste nechceli, 832 00:44:25,650 --> 00:44:28,580 z nejakého dôvodu, žiadosť o príspevok, môžete len zadať sem dostal, 833 00:44:28,580 --> 00:44:32,720 ale v tomto prípade sme práve Chcete požiadavku Post ísť von. 834 00:44:32,720 --> 00:44:38,700 >> Takže, keď je create_post nazýva, keď navštívime, že cez požiadavku POST, 835 00:44:38,700 --> 00:44:43,600 vždy, keď idete do určitej cesta, je tu táto požiadavka objekt, 836 00:44:43,600 --> 00:44:46,640 a my sme museli doviezť Žiadosti na samom vrchole, 837 00:44:46,640 --> 00:44:49,640 ale tam je táto žiadosť Objekt, ktorý je odovzdaný v, 838 00:44:49,640 --> 00:44:53,210 a môžete prístup k dátam formuláre, ktoré dostane automaticky vyplnená 839 00:44:53,210 --> 00:44:55,070 Pri odoslaní požiadavky z formulára. 840 00:44:55,070 --> 00:44:56,990 >> A potom, čo si myslím, je naozaj cool, je 841 00:44:56,990 --> 00:45:02,840 že objekt formuláre, aby si prešiel in, je len slovník, ktorý Python 842 00:45:02,840 --> 00:45:10,560 obsahuje, ak si to tu access--, nech me vytiahnuť HTML vedľa nej, len 843 00:45:10,560 --> 00:45:17,670 takže môžete mať, že ako referenčný, áno, tak 844 00:45:17,670 --> 00:45:21,060 názvy, ktoré sme tu bola zadaná pre rôzne oblasti, tak 845 00:45:21,060 --> 00:45:23,900 názov a text, my potom stačí použiť tie sem 846 00:45:23,900 --> 00:45:27,110 ako indexy do dát formulára. 847 00:45:27,110 --> 00:45:28,950 Tak to je super pohodlné. 848 00:45:28,950 --> 00:45:33,320 >> Takže hovoríme post.create, ktorý budú vytvárať a automaticky vložiť 849 00:45:33,320 --> 00:45:36,850 táto nová funkcia objekt do databázy. 850 00:45:36,850 --> 00:45:40,690 A myslím, že to vytvoriť funkciu tu je naozaj skvelý príklad toho, ako 851 00:45:40,690 --> 00:45:44,900 výkonný Banka sa a pracuje s tým, pretože ak ste robili niečo 852 00:45:44,900 --> 00:45:48,660 v PHP, budete musieť urobiť veľa validácia, 853 00:45:48,660 --> 00:45:51,730 budete musieť potom nadviazať spojenie s databázou, 854 00:45:51,730 --> 00:45:55,210 budete musieť potom spustiť SQL dotaz, 855 00:45:55,210 --> 00:45:59,550 ale tu proste to pekné post.create, ktoré môžeme potom len 856 00:45:59,550 --> 00:46:01,520 získať informácie von od podania žiadosti objektu, 857 00:46:01,520 --> 00:46:05,370 a potom ju preniesť do nového príspevok, ktorý vytvárame. 858 00:46:05,370 --> 00:46:07,850 >> A potom, úplne posledný čo chceme robiť, 859 00:46:07,850 --> 00:46:09,630 je presmerovať užívateľa späť do domu. 860 00:46:09,630 --> 00:46:13,020 A tak sme sa použiť Banku presmerovanie funkciu. 861 00:46:13,020 --> 00:46:17,770 A niečo, čo sme nevideli predtým, bolo toto URL funkcie. 862 00:46:17,770 --> 00:46:21,970 Takže URL pre funkciu umožňuje odovzdáte v skutočnosti pomenovanie 863 00:46:21,970 --> 00:46:26,090 z funkcie vo vašom Pythone, skôr než na konkrétnu ceste 864 00:46:26,090 --> 00:46:26,720 že je to na. 865 00:46:26,720 --> 00:46:32,107 >> Takže som mohol mať rovnako ľahko presmerovaný užívateľa k lomka, 866 00:46:32,107 --> 00:46:37,050 ktoré by poslať ho späť domov, ale pomocou adresy URL pre funkciu je pekné, 867 00:46:37,050 --> 00:46:39,990 pretože ak zmeníte miesto, kde veci sú, 868 00:46:39,990 --> 00:46:44,080 takže povedzme, že som sa zmeniť domov byť v / home namiesto toho, 869 00:46:44,080 --> 00:46:47,040 to by ešte potom sa vrátiť / home, pretože vlastne ide a vzhliada 870 00:46:47,040 --> 00:46:50,770 názov funkcie, a to vám dá späť URL za to. 871 00:46:50,770 --> 00:46:52,490 >> Tak, tak nejako na Predpoklad, že ste 872 00:46:52,490 --> 00:46:55,489 s väčšou pravdepodobnosťou zmení, kde veci sú, ako mená funkcií. 873 00:46:55,489 --> 00:46:58,840 Môžete použiť to naozaj pekná URL pre funkciu. 874 00:46:58,840 --> 00:47:02,470 A ešte jedna vec je byť si vedomý to je trochu zložitejšie, 875 00:47:02,470 --> 00:47:05,750 je to, že si myslíte, že by ste mohli len volania presmerovať na adresu URL pre, 876 00:47:05,750 --> 00:47:10,600 ale v skutočnosti všetky trasy majú vrátiť nejaký text a HTML, 877 00:47:10,600 --> 00:47:14,360 takže ste skutočne na vráti presmerovanie hovoru. 878 00:47:14,360 --> 00:47:18,379 V opačnom prípade budete mať niečo neplatný asi nie vracať reťazec, 879 00:47:18,379 --> 00:47:21,420 pretože všetci títo majú vrátiť HTML v skutočnosti chcete vykresliť. 880 00:47:21,420 --> 00:47:26,980 >> A tak, keď zavoláte presmerovanie, to vás presmeruje na stránku, 881 00:47:26,980 --> 00:47:30,270 ale v skutočnosti vráti HTML budete potrebovať na vykonanie tohto presmerovania. 882 00:47:30,270 --> 00:47:34,430 883 00:47:34,430 --> 00:47:37,110 Vráťte sa späť na domovskú stránku. 884 00:47:37,110 --> 00:47:39,200 Takže máme tieto dva rôzne pohľady. 885 00:47:39,200 --> 00:47:40,132 Máme domáci názor. 886 00:47:40,132 --> 00:47:41,590 Alebo, myslím, že by som mal povedať šablóny. 887 00:47:41,590 --> 00:47:44,190 Máme tieto dve šablóny, domov šablóny, ktoré 888 00:47:44,190 --> 00:47:48,500 zobrazí všetky naše príspevky, a potom máme túto reklamnú vec, 889 00:47:48,500 --> 00:47:52,970 a keď kliknete na miesto, to ide do novej trasy v banke 890 00:47:52,970 --> 00:47:55,920 ale, že trasa nemusí nutne mať zodpovedajúcu šablónu. 891 00:47:55,920 --> 00:47:59,290 892 00:47:59,290 --> 00:48:01,560 Nemusíte vidieť čokoľvek, ale stále môžete 893 00:48:01,560 --> 00:48:04,090 majú táto práca bude v zákulisí. 894 00:48:04,090 --> 00:48:07,450 A potom budete presmerovaní späť na domovskú stránku. 895 00:48:07,450 --> 00:48:12,230 A rozhodne, to je jednoduché pracovať v niektorých príjemnejšom CSS do šablóny 896 00:48:12,230 --> 00:48:15,580 a aby to vyzerať oveľa krajšie, ale všetky hlavné logiky 897 00:48:15,580 --> 00:48:18,590 je tam v Pythone. 898 00:48:18,590 --> 00:48:20,020 >> Máte otázky k tomuto príkladu? 899 00:48:20,020 --> 00:48:22,760 Viem, že existuje veľa rôzne veci ďalej tam, 900 00:48:22,760 --> 00:48:25,341 veľa vecí, ktoré sme nevideli skôr, ale ako niečo. 901 00:48:25,341 --> 00:48:25,840 Jo. 902 00:48:25,840 --> 00:48:28,346 >> AUDIENCE 1: Máte niečo urobiť špeciálna drhnúť dát, ktorý je 903 00:48:28,346 --> 00:48:29,600 prichádzajúce z formulára? 904 00:48:29,600 --> 00:48:31,109 Všimol som si, len povedal: "vytvárať," 905 00:48:31,109 --> 00:48:33,900 EZRA zigmond: Jo, tak to je v skutočnosti, to je naozaj dobrý bod. 906 00:48:33,900 --> 00:48:36,350 Otázkou teda bolo, že nie je potrebné skontrolovať a uistite sa, 907 00:48:36,350 --> 00:48:39,190 že dáta sú platné, a robiť nejaký druh drhnutie 908 00:48:39,190 --> 00:48:41,840 aby sa uistil, že je platné, pretože, ako si môžete pozrieť tu, 909 00:48:41,840 --> 00:48:42,660 Nerobím to. 910 00:48:42,660 --> 00:48:48,140 Takže poďme sa pozrieť, čo sa deje či som niečo prázdne kartičky. 911 00:48:48,140 --> 00:48:51,190 Takže to bude vlastne len urobiť prázdne miesto a vyplniť DateTime. 912 00:48:51,190 --> 00:48:55,990 >> Takže v skutočnosti, pravdepodobne by ste chcete urobiť niečo ako: 913 00:48:55,990 --> 00:49:04,749 Možno, že určiť, či titul je rovná prázdny reťazec, potom nerob to. 914 00:49:04,749 --> 00:49:07,290 Alebo, len to v prípade, že titul je nerovná sa prázdny reťazec. 915 00:49:07,290 --> 00:49:10,330 Takže to nie je v skutočnosti automaticky postarať sa o to čistení 916 00:49:10,330 --> 00:49:12,820 pre vás, takže stále musíte urobiť. 917 00:49:12,820 --> 00:49:14,330 Jo, dobrá otázka. 918 00:49:14,330 --> 00:49:18,497 >> AUDIENCE 2: Záleží na peeling Pre pokračovanie série injekciu? 919 00:49:18,497 --> 00:49:19,890 Poznáš? 920 00:49:19,890 --> 00:49:22,830 >> EZRA zigmond: Dúfajme, Peewee robí. 921 00:49:22,830 --> 00:49:25,830 Myslím, že by bolo určite docela zlé knižnice, ak to neurobil. 922 00:49:25,830 --> 00:49:29,511 923 00:49:29,511 --> 00:49:32,690 Neviem presne. 924 00:49:32,690 --> 00:49:34,820 Musel by som sa pozrieť na Dotaz, ktorý je generovaný. 925 00:49:34,820 --> 00:49:38,980 Myslím si, že keď som napísal v blogu, že tak nejako vyzerala 926 00:49:38,980 --> 00:49:46,370 ako útok SQL injection, niečo také, ak je toto 927 00:49:46,370 --> 00:49:49,370 je ako pole pre heslo, alebo tak niečo, by ste mohli urobiť niečo také. 928 00:49:49,370 --> 00:49:53,410 >> Myslím si, že bude aj naďalej dostať doslova posta, 929 00:49:53,410 --> 00:49:59,200 ale myslím, že to robiť Peewee nejaký čistiaci dát 930 00:49:59,200 --> 00:50:01,680 pred tým, než v skutočnosti vykoná ho. 931 00:50:01,680 --> 00:50:04,510 >> AUDIENCE 1: Tento text poľa navrhnutý tak, aby obyčajný text, je to tak? 932 00:50:04,510 --> 00:50:05,710 >> EZRA zigmond: Jo, to je. 933 00:50:05,710 --> 00:50:06,465 Jo. 934 00:50:06,465 --> 00:50:09,590 Takže sa domnievam, že všetky, tak toto je správne správanie, ktorý bude robiť to, 935 00:50:09,590 --> 00:50:12,170 Ale myslím, že Peewee dúfajme, že robí robiť 936 00:50:12,170 --> 00:50:13,780 nejaký druh ochrany na ich konci. 937 00:50:13,780 --> 00:50:16,090 A ak by ste chceli dvojitá kontrola, že existuje 938 00:50:16,090 --> 00:50:19,530 spôsoby, ako pri generovaní dotazu. 939 00:50:19,530 --> 00:50:22,622 takže sa nemusíte spustiť priamo. 940 00:50:22,622 --> 00:50:24,330 Budem musieť vziať pozrite sa na dokumentáciu, 941 00:50:24,330 --> 00:50:27,930 ale môžete skutočne zobraziť SQL, že je generovanie, 942 00:50:27,930 --> 00:50:30,840 a pozrieť sa na to, a robiť uistite sa, že uniká veci. 943 00:50:30,840 --> 00:50:33,700 >> Ďalším dôvodom, prečo by ste mohli Chcete sa pozrieť na SQL 944 00:50:33,700 --> 00:50:37,920 že Peewee je výstup, ak je veci sa zdajú ísť naozaj pomaly, 945 00:50:37,920 --> 00:50:41,090 môžete sa pozrieť a uvidíte, čo to je skutočne robí, pretože je to občas 946 00:50:41,090 --> 00:50:44,670 ľahké omylom pridať in, ako píšete, 947 00:50:44,670 --> 00:50:47,880 môžete omylom mať najprv vyberte celú databázu, 948 00:50:47,880 --> 00:50:50,230 a potom urobiť nejaké operácie triedenia na to, že keď naozaj 949 00:50:50,230 --> 00:50:51,320 chcel vybrať podmnožinu. 950 00:50:51,320 --> 00:50:53,560 >> A tak, ak veci nie sú celkom ide dobre, 951 00:50:53,560 --> 00:50:57,300 je dobré sa pozrieť na žiadosť že to vlastne stále generované. 952 00:50:57,300 --> 00:50:57,800 Jo. 953 00:50:57,800 --> 00:51:02,100 >> AUDIENCE 2: Keď ste prvýkrát začal, dáte v prístave as 5000. 954 00:51:02,100 --> 00:51:02,904 >> EZRA zigmond: Jo. 955 00:51:02,904 --> 00:51:06,070 AUDIENCE 2: je predvolená s Peewee, alebo je to niečo, čo môžete zmeniť? 956 00:51:06,070 --> 00:51:10,870 EZRA zigmond: Áno, tak port je predvolený s banky. 957 00:51:10,870 --> 00:51:13,061 Ak program spustíte bez spresní čokoľvek, 958 00:51:13,061 --> 00:51:14,310 to bude automaticky robiť. 959 00:51:14,310 --> 00:51:16,060 Verím, že budem mať zdvojnásobiť skontrolovať, 960 00:51:16,060 --> 00:51:19,130 ale môžete určiť, že v app.run, Myslím, že môžete urobiť niečo ako, 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 Dajme že skúsiť naozaj rýchlo. 964 00:51:23,750 --> 00:51:29,100 965 00:51:29,100 --> 00:51:32,230 Jo, takže stačí zadať port = 8080, a bude spustite ho tam, 966 00:51:32,230 --> 00:51:36,130 čo si myslím, ak by ste chceli spustiť na IDE, som sa snažil na to, 967 00:51:36,130 --> 00:51:38,527 ale myslím, že ak ste bežal na porte 8080, 968 00:51:38,527 --> 00:51:40,360 to by asi byť schopní pre prístup k serveru, 969 00:51:40,360 --> 00:51:41,870 rovnako ako ste boli pre webové stránky. 970 00:51:41,870 --> 00:51:44,390 >> Jo, ale je to jednoduché to zmeniť, ak vás 971 00:51:44,390 --> 00:51:48,540 nejaký druh, ako je presmerovanie portov veci, ktoré musíte urobiť. 972 00:51:48,540 --> 00:51:50,410 >> Nejaké ďalšie otázky? 973 00:51:50,410 --> 00:51:50,916 Jo? 974 00:51:50,916 --> 00:51:53,416 AUDIENCE 1: Takže, videl som vo vašej modely, ktoré, ako ste spomenul, 975 00:51:53,416 --> 00:51:55,647 musíte zadať databázy pre každý objekt. 976 00:51:55,647 --> 00:51:58,105 Neviete náhodou vedieť, robí ktoré robia to naozaj jednoduché, ak 977 00:51:58,105 --> 00:52:03,210 majú veľa databáz SQLite, ktoré ste chcete použiť pre jediné webové aplikácie, 978 00:52:03,210 --> 00:52:07,210 že môžete špecifikovať veľa z rôznych tie v modeli? 979 00:52:07,210 --> 00:52:11,620 >> EZRA zigmond: Jo, dovoľte mi, aby som otvoriť, že až naozaj rýchlo. 980 00:52:11,620 --> 00:52:17,570 Takže hovoríte, ak chcete mať veľa rôznych niečoho, možno 981 00:52:17,570 --> 00:52:22,670 páči a študenti, pre niektoré dôvod, niečo také? 982 00:52:22,670 --> 00:52:26,870 Jo, tak si myslím, že stále, každý model 983 00:52:26,870 --> 00:52:30,652 by musel ešte len jednu databázu priradené k tomu, 984 00:52:30,652 --> 00:52:32,610 ale ak by ste chceli mať rôzne modely, ktoré 985 00:52:32,610 --> 00:52:35,818 majú rôzne databázové objekty priradené na to, mohli by ste určite urobiť. 986 00:52:35,818 --> 00:52:43,070 Takže, keď som vytvoril nový, niečo také, 987 00:52:43,070 --> 00:52:47,000 a teraz je to študent, ktorý vyzerá čudne ako blogu, 988 00:52:47,000 --> 00:52:49,390 Mohol by som upresniť, že Databáza je rovný db_2 sem. 989 00:52:49,390 --> 00:52:51,390 Takže si myslím, že je to Hlavný spôsob, ako môžete urobiť. 990 00:52:51,390 --> 00:52:54,560 991 00:52:54,560 --> 00:52:56,200 >> Super. 992 00:52:56,200 --> 00:52:58,410 Nejaké ďalšie otázky? 993 00:52:58,410 --> 00:53:02,170 >> Takže len dokončiť trochu bit, tu sú niektoré zdroje, 994 00:53:02,170 --> 00:53:06,030 a tieto snímky budú zverejnené on-line takže sa môžete skutočne dostať tieto odkazy. 995 00:53:06,030 --> 00:53:08,500 Najlepšie zdroje sú naozaj dokumentácia pre fľašu 996 00:53:08,500 --> 00:53:09,930 a Peewee sami. 997 00:53:09,930 --> 00:53:12,940 Sú napísal naozaj dobre, myslím. 998 00:53:12,940 --> 00:53:18,180 Tak, webové stránky Flask je tu, a majú tutoriál, ktorý QuickStart 999 00:53:18,180 --> 00:53:20,710 Prejdete sa podobné veci, na to, čo som prešiel, 1000 00:53:20,710 --> 00:53:23,560 ale ak chcete nejaký druh preskúmania z vecí, ktoré som prešiel, 1001 00:53:23,560 --> 00:53:26,200 alebo ste si myslel, že som vysvetlil niečo v zmätočne, 1002 00:53:26,200 --> 00:53:28,390 budú mať podobné príklady tam. 1003 00:53:28,390 --> 00:53:31,570 >> Peewee má dokumentácie, a majú tutorial QuickStart 1004 00:53:31,570 --> 00:53:34,650 že ide cez hlavných parametrov že by ste chceli použiť. 1005 00:53:34,650 --> 00:53:38,900 Takže, čo som hovoril o s unikátne, a upresňujú predvolené, 1006 00:53:38,900 --> 00:53:42,710 rôzne druhy polí môžete použiť, tí boli by všetci tam. 1007 00:53:42,710 --> 00:53:44,690 >> Tiež, ak máte otázky o Peewee, 1008 00:53:44,690 --> 00:53:47,530 a vy po nich na StackOverflow, ten, kto urobil Peewee vlastne 1009 00:53:47,530 --> 00:53:49,500 pokračuje a odpovedá na tie niekedy. 1010 00:53:49,500 --> 00:53:53,200 Ak máte otázku, dúfajme, že že bude môcť odpovedať, 1011 00:53:53,200 --> 00:53:54,867 pretože on napísal celú tú vec. 1012 00:53:54,867 --> 00:53:56,700 Myslím si, že je to všetko Chcel som na krytie. 1013 00:53:56,700 --> 00:53:58,930 Vďaka, coming out. 1014 00:53:58,930 --> 00:54:02,688