1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:03,227 [TÓNLIST spila] 3 00:00:03,227 --> 00:00:04,705 4 00:00:04,705 --> 00:00:05,830 EZRA Zigmond: Hi, allir. 5 00:00:05,830 --> 00:00:08,020 Takk fyrir að koma út í dag. 6 00:00:08,020 --> 00:00:10,660 Þetta námskeið er "Python Web Apps með flösku. " 7 00:00:10,660 --> 00:00:14,510 >> Svo er ég að fara að tala svolítið um það hvers vegna 8 00:00:14,510 --> 00:00:17,400 þú might vilja til að nota flösku til að gera vefur apps með Python, öfugt 9 00:00:17,400 --> 00:00:21,556 sumum öðrum ramma þarna úti, eins og Django, sem er mest vel þekkt. 10 00:00:21,556 --> 00:00:24,330 Undirtitlls er "og Peewee ", sem er eitthvað 11 00:00:24,330 --> 00:00:27,250 við erum að fara að tala um hvernig að hafa samskipti við SQL gagnagrunna. 12 00:00:27,250 --> 00:00:29,610 Það gerir það mjög gott. 13 00:00:29,610 --> 00:00:32,390 >> Svo, hér er bara fljótur samdráttur af því sem ég vil fara yfir. 14 00:00:32,390 --> 00:00:35,520 Svo, fyrst bara einn renna það er að fara að vera QuickStart, 15 00:00:35,520 --> 00:00:38,530 sem er hvernig á að fá allt sett upp á tölvunni þinni. 16 00:00:38,530 --> 00:00:41,760 Ég ætla að vera sýna þetta á þinni Mac tölvunni minni, 17 00:00:41,760 --> 00:00:45,220 bara vegna þess að það er þar sem ég hef gert þetta áður, ég er mest ánægð með það, 18 00:00:45,220 --> 00:00:48,510 en þetta er örugglega hægt á CD50 IDE. 19 00:00:48,510 --> 00:00:52,050 >> Svo, eftir að ég vil kynna hvað flösku er, 20 00:00:52,050 --> 00:00:55,089 og sannfæra þig af hverju þú ættir nota það í fyrsta sæti. 21 00:00:55,089 --> 00:00:56,880 Þá mun ég gefa a fljótur dæmi um hvað þú 22 00:00:56,880 --> 00:01:00,550 getur gert í flösku, fljótleg dæmi um hvað þú getur gert í Peewee, 23 00:01:00,550 --> 00:01:05,010 og þá mun ég sýna þér meira heill dæmi umsókn 24 00:01:05,010 --> 00:01:07,520 sem ég setti saman að við Hægt er að ganga í gegnum saman. 25 00:01:07,520 --> 00:01:10,040 >> Og svo að lokum, í síðasta renna, ég hef 26 00:01:10,040 --> 00:01:12,730 nokkrar leiðir sem þú horfir á netinu fyrir frekari upplýsingar. 27 00:01:12,730 --> 00:01:15,560 Þetta er ekki tæmandi einkatími um hvernig á að nota flösku. 28 00:01:15,560 --> 00:01:18,140 Og ég vona að fara nokkurn tíma fyrir spurningar. 29 00:01:18,140 --> 00:01:21,050 Einhver að horfa á staðnum, bara eins, hrópa út í miðju 30 00:01:21,050 --> 00:01:22,340 ef þú hefur einhverjar spurningar. 31 00:01:22,340 --> 00:01:27,150 >> Svo fljótur uppsetningu efni, ef þú vilt að fylgja eftir, 32 00:01:27,150 --> 00:01:29,240 eða ef þú vilt fá þetta upp á eigin vél, 33 00:01:29,240 --> 00:01:32,440 Ég ætla að vera með Python 2.7.10. 34 00:01:32,440 --> 00:01:35,860 Flaskan virkar með Python 3, en ég eins og 35 00:01:35,860 --> 00:01:38,660 nota Python 2, vegna þess að það er sumir Python pakkar sem 36 00:01:38,660 --> 00:01:40,910 virka ekki með 3 enn. 37 00:01:40,910 --> 00:01:44,800 Ef þú hefur PIP sett, sem er Python pakki framkvæmdastjóri, 38 00:01:44,800 --> 00:01:48,190 Ég held að ef Python er stærra en eða jafnt og 2.7.9, 39 00:01:48,190 --> 00:01:52,220 þú hefur það sett upp nú þegar, það er frábær auðvelt að setja þessa pakka. 40 00:01:52,220 --> 00:01:54,990 >> Þú getur ekki setja Pip Flösku, PIP setja PEEWEE, 41 00:01:54,990 --> 00:01:58,600 Venjulega þú þarft að hlaupa sudo bara þannig að heimildir vinna út. 42 00:01:58,600 --> 00:02:01,080 Og ef þú ert að nota a frábær gamall útgáfa af Python, 43 00:02:01,080 --> 00:02:05,100 Ég mæli með því að uppfæra Python þitt, eða nota EasyInstall að setja PIP. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 Svo er næsta spurning er, hvað er flösku? 46 00:02:11,120 --> 00:02:13,280 Og ég held, fyrst sanngjarnt spurning sem ég velti fyrir mér 47 00:02:13,280 --> 00:02:15,585 fyrir löngu er, hvað er vefur app? 48 00:02:15,585 --> 00:02:17,960 Vegna þess að það er orð sem ég held er kastað í kring a einhver fjöldi 49 00:02:17,960 --> 00:02:19,240 að ég vissi í raun ekki vita. 50 00:02:19,240 --> 00:02:22,340 Og ég held að besta dæmi um hvað vefur app er, 51 00:02:22,340 --> 00:02:26,960 raunverulega er CS50 Fjármál, þar það er í raun ekki bara a website, 52 00:02:26,960 --> 00:02:29,320 en það er eitthvað sem þér gæti konar samskipti við. 53 00:02:29,320 --> 00:02:31,736 Það eru notandi reikningur og alls konar mismunandi hluti. 54 00:02:31,736 --> 00:02:35,010 Svo, hvar nákvæmlega þú sýgur lína á milli þess sem er vefsíða, 55 00:02:35,010 --> 00:02:38,780 og hvað er vefur app, er tegund af handahófskennt, en ég giska á hugmynd, 56 00:02:38,780 --> 00:02:42,110 það er eitthvað meira en a website og það er gagnlegt forrit. 57 00:02:42,110 --> 00:02:46,081 >> Svo, flösku er rammi fyrir gera vefur apps með Python. 58 00:02:46,081 --> 00:02:48,330 Og vonandi, í lok þetta mun ég sannfæra þig 59 00:02:48,330 --> 00:02:52,210 að þú gætir í raun skrifa eitthvað eins CS50 fjármálaráðherra með Python, sem ég 60 00:02:52,210 --> 00:02:53,950 eins mikið betur en PHP, persónulega. 61 00:02:53,950 --> 00:02:57,320 >> Svo, flösku er, kalla þeir á microframework, en þannig fást, 62 00:02:57,320 --> 00:02:59,800 þeir meina það er mjög einfalt, en teygjanlegur. 63 00:02:59,800 --> 00:03:02,980 Svo, það er bara það sem þú þarft, en ef þú vilt fleiri aðgerðir, 64 00:03:02,980 --> 00:03:04,522 það er auðvelt að koma þeim í. 65 00:03:04,522 --> 00:03:06,480 En bara vegna þess að það er microframework, ekki 66 00:03:06,480 --> 00:03:08,960 meina að það er aðeins fyrir smærri verkefni. 67 00:03:08,960 --> 00:03:12,590 Ég er með tengil hér sem segir sem Obama notaði flösku árið 2012 68 00:03:12,590 --> 00:03:14,410 fyrir herferð sinni website, sem vonandi 69 00:03:14,410 --> 00:03:16,937 er eitthvað af áritun. 70 00:03:16,937 --> 00:03:18,770 En það sem ég raunverulega eins og óður flösku 71 00:03:18,770 --> 00:03:22,401 er að það er í raun ekki að gera hvers konar ákvarðanir fyrir þig. 72 00:03:22,401 --> 00:03:24,150 Bara vegna þess að við erum að tala um forrit vefur, 73 00:03:24,150 --> 00:03:26,940 Ég verð að bera saman það að Ruby á Teinar og Django, bæði sem 74 00:03:26,940 --> 00:03:30,450 eru frábær ramma, en þeir báðir gera ályktanir 75 00:03:30,450 --> 00:03:33,600 um hvernig þú vilt samskipti við gagnagrunna, 76 00:03:33,600 --> 00:03:36,900 hvernig þú vilt að kynna þinn skoðanir, og þeir eru örugglega 77 00:03:36,900 --> 00:03:38,850 góðar hliðar sem. 78 00:03:38,850 --> 00:03:41,490 >> Til dæmis, Ruby á Teinn hefur þetta virka skrá kerfi, 79 00:03:41,490 --> 00:03:43,100 sem er mjög gott leið til að hafa samskipti með gögn, 80 00:03:43,100 --> 00:03:45,960 en ef þú vilt nota Ruby á Teinar, þú ert svona bundinn inn í það. 81 00:03:45,960 --> 00:03:47,835 En með flösku, sem ég ætla sýna þér Peewee, 82 00:03:47,835 --> 00:03:49,830 þú getur notað hvað sem einhverskonar gagnagrunns sem þú vilt, 83 00:03:49,830 --> 00:03:53,980 og þú getur bara draga það í sem framhald í flöskuna. 84 00:03:53,980 --> 00:03:56,350 >> Svo er það hvers vegna ég virkilega eins flösku, er það að það 85 00:03:56,350 --> 00:04:01,170 ekki gera ályktanir fyrir þig byggt á hluti sem þú þarft í raun ekki. 86 00:04:01,170 --> 00:04:04,440 >> Svo, hvers vegna ættir þú að nota flösku? 87 00:04:04,440 --> 00:04:08,230 Kostir eru, það er bara hefur í raun algerlega lögun 88 00:04:08,230 --> 00:04:09,420 byggt inn í það sem þú þarft. 89 00:04:09,420 --> 00:04:11,980 Svo, þú þarft ekki að hafa áhyggjur af skilning a heild búnt af hlutum 90 00:04:11,980 --> 00:04:13,175 sem þú í raun ekki þörf. 91 00:04:13,175 --> 00:04:15,060 Þú þarft ekki að hafa áhyggjur um að slökkva aðgerðir 92 00:04:15,060 --> 00:04:16,620 sem þú í raun ekki þörf. 93 00:04:16,620 --> 00:04:21,082 >> Og, eins og ég nefndi, það er frábær auðvelt að bæta við í eftirnafn hlutum 94 00:04:21,082 --> 00:04:21,790 sem þú þarft. 95 00:04:21,790 --> 00:04:24,700 Sumir þeirra, flösku hefur eigin stuðning þeirra fyrir það. 96 00:04:24,700 --> 00:04:28,230 Svo er það eitthvað sem kallast flösku admin, sem speglar að admin 97 00:04:28,230 --> 00:04:32,060 spjaldið sem Django veitir, sem gefur þér gott sjón leið 98 00:04:32,060 --> 00:04:33,405 að gefa vefsvæðinu þínu. 99 00:04:33,405 --> 00:04:35,280 En aftur, ef þú ert gera eitthvað einfalt, 100 00:04:35,280 --> 00:04:39,550 þú sennilega þurfa ekki stór admin spjaldið, þannig að ég held að það frábær ágætur. 101 00:04:39,550 --> 00:04:45,940 Og Ókostirnir eru að þú ert með minna afl út af the kassi. 102 00:04:45,940 --> 00:04:49,660 Svo, þegar þú opnar upp flösku, og í Python program, 103 00:04:49,660 --> 00:04:53,150 þú skrifar bara frá flösku innflutningur *, eða hvað, 104 00:04:53,150 --> 00:04:55,957 þú ert ekki nákvæmlega að fá allar aðgerðir sem þú vilt kannski. 105 00:04:55,957 --> 00:04:58,540 Og svo þú verður að fleiri skýr listi aðgerðir sem þú vilt. 106 00:04:58,540 --> 00:05:01,990 Svo er það einn ókostur, en ég held að til að byggja lítið vefur 107 00:05:01,990 --> 00:05:04,782 forrit eins og ég ætla að vera að sýna þú, það er í raun ekki vandamál. 108 00:05:04,782 --> 00:05:07,281 Og hvað það síðasta sem er ætlað að segja, sem er prentvilla, 109 00:05:07,281 --> 00:05:10,240 er að það eru minna stöðluð samninga um hvernig á að nota flösku, 110 00:05:10,240 --> 00:05:12,400 bara vegna þess að það eru ekki eins margir fólk sem nota það faglega 111 00:05:12,400 --> 00:05:13,191 samanborið við Django. 112 00:05:13,191 --> 00:05:16,380 Svo, ef þú lítur eitthvað eins og, "hvernig á ég að gera x" í Django, 113 00:05:16,380 --> 00:05:18,190 þú munt sennilega finna það. 114 00:05:18,190 --> 00:05:20,260 >> Það er góð hönnun mynstur sem þú getur notað, 115 00:05:20,260 --> 00:05:22,660 en með flösku, það er konar fara eigin leið, 116 00:05:22,660 --> 00:05:24,850 bara vegna þess að það er ansi lítið bókasafn. 117 00:05:24,850 --> 00:05:27,100 Svo þeir eru gallar, en ég held 118 00:05:27,100 --> 00:05:29,370 að það er samt góð bókasafn til að nota. 119 00:05:29,370 --> 00:05:31,909 >> Svo skulum hoppa bara rétt inn flösku. 120 00:05:31,909 --> 00:05:34,200 Þetta er örugglega ekki að fara að vera heill einkatími, 121 00:05:34,200 --> 00:05:37,480 en það er að gefa þér hugmynd um hvernig á að uppbygging hluti, 122 00:05:37,480 --> 00:05:40,790 og svo þú ert ánægð að fara burt og horfa á gögnum 123 00:05:40,790 --> 00:05:42,570 og finna út meira. 124 00:05:42,570 --> 00:05:48,500 >> Svo, láta mig opna mjög einfalt dæmi í fyrstu, 125 00:05:48,500 --> 00:05:50,737 og sýna þér hvað þessi lítur út eins og, og þá munum við 126 00:05:50,737 --> 00:05:52,070 brjóta hann niður svolítið meira. 127 00:05:52,070 --> 00:05:56,160 >> Svo þetta hér, láta mig fá það í gangi. 128 00:05:56,160 --> 00:06:06,800 129 00:06:06,800 --> 00:06:09,750 Svo hef ég nú forrit í mínum. 130 00:06:09,750 --> 00:06:15,910 Ég ætla að opna Safari, og það er í gangi á þessari vél mína. 131 00:06:15,910 --> 00:06:19,360 Þannig að ég ætla bara að fara að gera þetta stærra. 132 00:06:19,360 --> 00:06:23,960 En localhost: 5000 133 00:06:23,960 --> 00:06:27,650 >> Og svo, núna, allt þetta gerir er, þegar þú heimsækir vefsíðu, 134 00:06:27,650 --> 00:06:31,490 það prentar út "Hello flösku," sem er ekki frábær gagnlegt, 135 00:06:31,490 --> 00:06:34,630 en ég held að það er ótrúlegt að í þessu litla skrá hér, 136 00:06:34,630 --> 00:06:37,390 við höfum vefur framreiðslumaður hlaupandi sem er prentun út eitthvað. 137 00:06:37,390 --> 00:06:40,500 Svo, við skulum í raun líta á kóða fyrir annað, 138 00:06:40,500 --> 00:06:43,080 og brjóta það niður smá. 139 00:06:43,080 --> 00:06:45,260 Er stærð gott fyrir alla hér? 140 00:06:45,260 --> 00:06:51,560 >> Svo vonandi ert þú nokkuð þægilegt að nota Python. 141 00:06:51,560 --> 00:06:55,820 Ég er að því gefnu að við getum litið á Python og lesa í gegnum það. 142 00:06:55,820 --> 00:06:59,290 Ef þú hefur einhverjar spurningar um eitthvað, ég get líka fara yfir það. 143 00:06:59,290 --> 00:07:03,974 >> Svo er fyrsta línan frá flösku, Við flytjum, flösku með höfuðborg "F" 144 00:07:03,974 --> 00:07:06,140 sem er tegund af öllum lykill lögun sem þú þarft. 145 00:07:06,140 --> 00:07:08,890 Alltaf þegar þú ert að skrifa skrá og nota flösku, 146 00:07:08,890 --> 00:07:12,120 þú ert að fara til að vilja flytja það, bara vegna þess sem hefur öll helstu atriði. 147 00:07:12,120 --> 00:07:15,400 The næstur hlutur sem við gerum, er að við kalla þessa aðgerð flösku, bara 148 00:07:15,400 --> 00:07:19,270 til að búa til app hlut, og þú ert alltaf að fara til að vilja gera það. 149 00:07:19,270 --> 00:07:25,960 >> Og þá, stökk niður til botn fljótt, þessi hluti er hér, 150 00:07:25,960 --> 00:07:28,760 "if_name _ ==" _ main_ "'sem er konar Python venju. 151 00:07:28,760 --> 00:07:32,750 Þannig að þetta mun aðeins framkvæma ef þú keyra þessa skrá beint með Python. 152 00:07:32,750 --> 00:07:36,040 Þá köllum app.run, sem mun í raun að byrja app fara. 153 00:07:36,040 --> 00:07:39,570 >> Svo, það er helsta uppbyggingu sem þú þarft í hvaða kolbu umsókn, 154 00:07:39,570 --> 00:07:48,550 er þú verður að hafa þetta app = flösku (_NAME_), og þá app.run. 155 00:07:48,550 --> 00:07:54,940 >> Svo, tveir hlutir sem ég hef hér, eru það sem við köllum leiðum. 156 00:07:54,940 --> 00:07:57,150 Svo, við skulum tala um vegvísun svolítið meira. 157 00:07:57,150 --> 00:07:58,430 Ég fer aftur til renna. 158 00:07:58,430 --> 00:08:02,540 >> Svo flest grundvallaratriði hugtak í flösku er vegvísun. 159 00:08:02,540 --> 00:08:06,750 Og það er sú hugmynd að þér tengja aðgerðir í Python 160 00:08:06,750 --> 00:08:11,280 tilteknum heimilisföng á vefsíðu þinni. 161 00:08:11,280 --> 00:08:13,930 Svo, þegar þú vilt til að búa til nýja leið, 162 00:08:13,930 --> 00:08:16,500 þú notar þetta @ app.route virka decorator. 163 00:08:16,500 --> 00:08:19,770 Svo, ef þú ert ókunnur með virka skreytingamenn í Python, 164 00:08:19,770 --> 00:08:24,160 það er þetta hugtak sem gerir þér kleift að taka virka 165 00:08:24,160 --> 00:08:26,800 og umlykja það með eitthvað annað. 166 00:08:26,800 --> 00:08:30,140 >> Svo í raun, hvað þetta Decorator gerir, er að það tekur aðgerðina undir það, 167 00:08:30,140 --> 00:08:33,409 og það bætir fleiri upplýsingar við það, en það flösku raun 168 00:08:33,409 --> 00:08:37,480 er að gera það gerast er ekki frábær mikilvæg, en það er mikilvægt, 169 00:08:37,480 --> 00:08:43,640 er að áður leið, þú setja þetta @ app.route, og þá 170 00:08:43,640 --> 00:08:46,480 veffang leið, svo rista er það sem við 171 00:08:46,480 --> 00:08:48,360 sá þegar við opna bara upp vefsíðu. 172 00:08:48,360 --> 00:08:49,580 Svo er að heimasíðan. 173 00:08:49,580 --> 00:08:51,037 Það er bara rista leið. 174 00:08:51,037 --> 00:08:52,370 Og þá verður þú þessa aðgerð. 175 00:08:52,370 --> 00:08:54,453 The nafn af the virka getur verið hvað sem þú vilt. 176 00:08:54,453 --> 00:08:56,930 Það þarf ekki að endilega hafa að gera með leið. 177 00:08:56,930 --> 00:08:59,440 Og þá, hvað ávöxtun fallsins, 178 00:08:59,440 --> 00:09:01,730 virka skal skila streng. 179 00:09:01,730 --> 00:09:03,740 Og það string getur innihalda HTML eða neitt, 180 00:09:03,740 --> 00:09:06,920 og það er í raun það sem mun fá aftur til þinn vefur flettitæki eins og HTML, 181 00:09:06,920 --> 00:09:08,200 og það mun láta það. 182 00:09:08,200 --> 00:09:12,030 >> Svo er þetta sama kóða sem var frá dæminu 183 00:09:12,030 --> 00:09:16,430 að ég hljóp bara, þannig að þegar við heimsækjum rista, það kallar Hello World virka, sem 184 00:09:16,430 --> 00:09:20,470 bara skilar streng, Hello flösku, og sem fær prentuð á skjánum. 185 00:09:20,470 --> 00:09:27,290 >> Svo er það annað dæmi, sem er, þegar þú heimsækir / halló, 186 00:09:27,290 --> 00:09:30,370 það prentar út Hello Word, sem ætti í raun að segja, Halló heimur, 187 00:09:30,370 --> 00:09:32,010 en við skulum láta sem var viljandi. 188 00:09:32,010 --> 00:09:35,140 Svo skulum draga það upp raunverulegur fljótur. 189 00:09:35,140 --> 00:09:41,290 >> Svo ef þú ferð til localhost / halló, það mun nú prenta eitthvað annað. 190 00:09:41,290 --> 00:09:45,680 Svo er það bara fljótur dæmi um hvernig þú getur búið til tvær mismunandi leiðir. 191 00:09:45,680 --> 00:09:50,630 >> Svo, ef slíkt er ekki frábær gagnlegt, það er ekki allt fullt sem þú getur gert, 192 00:09:50,630 --> 00:09:55,360 þú gætir bara gert allt sem með hafa mismunandi HTML síður, 193 00:09:55,360 --> 00:09:58,000 og þegar þú heimsækir viðkomandi síðu það hleðst bara á síðunni. 194 00:09:58,000 --> 00:10:00,864 Svo skulum sjá meira gagnlegur hlutur sem þú getur gert. 195 00:10:00,864 --> 00:10:03,780 Svo er einn hlutur sem þú gætir hafa tekið í dæminu sem ég dró 196 00:10:03,780 --> 00:10:07,160 upp, er að ég hafði app.run (kemba = True). 197 00:10:07,160 --> 00:10:09,580 Og svo, hvað þetta kemba rök gerir, er 198 00:10:09,580 --> 00:10:14,600 að þegar þú keyrir vefþjón þinn, þegar þú ert í umsókn þinni, 199 00:10:14,600 --> 00:10:18,100 ef þú breytir skrá, það vilja sjálfkrafa endurhlaða miðlara. 200 00:10:18,100 --> 00:10:21,160 >> Og svo þú ert ekki í raun að endurræsa Python, sem er frábær gagnlegt. 201 00:10:21,160 --> 00:10:24,020 Ég get sýnt það. 202 00:10:24,020 --> 00:10:26,960 Leyfðu mér að draga upp númerið mitt með prentvilla í það, 203 00:10:26,960 --> 00:10:30,420 og þykjast að prentvilla var sett það viljandi fyrir lærdómsríkt tilgangi. 204 00:10:30,420 --> 00:10:31,625 Svo skulum bæta þetta aftur í. 205 00:10:31,625 --> 00:10:33,140 Svo nú segir hún Hello World. 206 00:10:33,140 --> 00:10:34,410 Ég mun bjarga því. 207 00:10:34,410 --> 00:10:36,540 Og ef við draga til baka upp flugstöðinni, þú munt 208 00:10:36,540 --> 00:10:39,520 segja að það er að endurræsa, vegna þess að það fann breytingu, 209 00:10:39,520 --> 00:10:43,620 og svo nú þegar við að endurnýja þessa síðu, það mun prenta út rétta hlutur. 210 00:10:43,620 --> 00:10:45,630 >> Svo er kemba frábær gagnlegt fyrir það. 211 00:10:45,630 --> 00:10:48,740 Einnig, ef þú hefur einhverjar konar hrun, svo 212 00:10:48,740 --> 00:10:54,370 láta mig gera þetta forrit hrun með því að hafa það ekki aftur a band. 213 00:10:54,370 --> 00:10:57,540 Svo, við skulum bara hafa það aftur Ekkert af einhverjum ástæðum. 214 00:10:57,540 --> 00:11:00,810 Og svo þegar ég fer þetta síðu, það verður bara að hrun, 215 00:11:00,810 --> 00:11:04,465 en þjóninn ekki bara hrun, það reyndar gefur þér frábær gagnlegt bak 216 00:11:04,465 --> 00:11:06,490 ummerki um allt sem fór úrskeiðis. 217 00:11:06,490 --> 00:11:10,050 Og hvað er mjög gott, er að hvenær skref í þessu aftur rekja, 218 00:11:10,050 --> 00:11:14,260 þú gætir opna gagnvirkt skel hér, og tegund af prenta út hvað 219 00:11:14,260 --> 00:11:17,780 breytur sem þú vilt að kíkja á. 220 00:11:17,780 --> 00:11:21,054 >> Og svo er kembiforrit raun gagnlegt fyrir vangaveltur út 221 00:11:21,054 --> 00:11:23,470 hvað er að gerast með miðlara, frekar en bara að sjá 222 00:11:23,470 --> 00:11:28,201 eitthvað í PHP eins 500 innri villa miðlara, sem er frábær gagnslaus. 223 00:11:28,201 --> 00:11:30,700 Eitt sem þarf að vera meðvitaðir um, er að ef þú setur app netinu 224 00:11:30,700 --> 00:11:34,260 svo það er sýnilegt almenningi, þú aldrei vilja fara kemba háttur á, 225 00:11:34,260 --> 00:11:37,320 vegna þess að fólk getur í raun nota þessi vélinni sem ég 226 00:11:37,320 --> 00:11:39,150 sýndi þér að framkvæma handahófi kóðann. 227 00:11:39,150 --> 00:11:42,120 >> Svo að þeir geta prentað út eins og allir leyndarmál merkjamál þú hefur í það, 228 00:11:42,120 --> 00:11:44,755 þeir geta horfa á einmitt hvernig vefsvæði þitt er að vinna. 229 00:11:44,755 --> 00:11:46,630 Svo það er mjög gagnlegt fyrir próf, en alltaf 230 00:11:46,630 --> 00:11:50,090 ganga úr skugga um að taka það út áður þú birtir eitthvað á netinu. 231 00:11:50,090 --> 00:11:56,640 >> Svo þegar þú ert að nota eitthvað eins og PHP, það er þessi hugmynd 232 00:11:56,640 --> 00:11:58,920 að þú getur framhjá Upplýsingar á milli vefsíðna 233 00:11:58,920 --> 00:12:03,620 með því að setja þær upplýsingar í raun og veru í URL, sem er GET beiðni, 234 00:12:03,620 --> 00:12:07,490 en í flösku, getur þú í raun að gera eitthvað svoleiðis svoleiðis, 235 00:12:07,490 --> 00:12:10,590 með því að hafa leið sem hefur a breyta sem hluti af því. 236 00:12:10,590 --> 00:12:14,090 >> Þannig að ef þú horfir á þetta dæmi á skjánum hér, 237 00:12:14,090 --> 00:12:19,930 höfum við leið sem er ('/ halló /'), og svo, ef þú heimsækir 238 00:12:19,930 --> 00:12:23,790 / halló / eitthvað, að eitthvað er að fara til raunverulega fá fyllt 239 00:12:23,790 --> 00:12:25,490 í nafni breytu. 240 00:12:25,490 --> 00:12:27,850 Og eftir að virka sem kemur með þeirri leið 241 00:12:27,850 --> 00:12:31,302 hefur að taka í breytu nafn, þannig að það mun í raun 242 00:12:31,302 --> 00:12:32,510 fá liðið í aðgerð. 243 00:12:32,510 --> 00:12:34,190 >> Og þá, þegar þú ert inni að virka, 244 00:12:34,190 --> 00:12:36,420 þú getur meðhöndla það eins og eðlilegt Python breyta, 245 00:12:36,420 --> 00:12:39,650 og svo þá, það mun prenta út Halló, og það 246 00:12:39,650 --> 00:12:42,000 að fylla upp í nafni með einhver strengur formatting. 247 00:12:42,000 --> 00:12:48,060 >> Svo til að bæta við breytilega hluta til venja, þú notar oddklofi merkið. 248 00:12:48,060 --> 00:12:51,220 Og mögulega er hægt að nota það sem er kallað breytir. 249 00:12:51,220 --> 00:12:56,840 Og svo, ef þú setur þetta umsögnina með ristli, 250 00:12:56,840 --> 00:13:00,015 þú getur valið að það er int eða fljóta, eða slóð, 251 00:13:00,015 --> 00:13:01,640 og það vilja á sjálfvirkan hátt umbreyta það. 252 00:13:01,640 --> 00:13:05,130 Þú getur líka gert viðskiptin innan Python virka, 253 00:13:05,130 --> 00:13:09,710 bara með því að nota kastað, en stundum ef þú vilt tryggja að það er int, 254 00:13:09,710 --> 00:13:12,080 þú getur sett það viðskipti regla þar. 255 00:13:12,080 --> 00:13:15,930 >> Svo skulum draga upp dæmi sumra breytilegum reglum. 256 00:13:15,930 --> 00:13:21,480 Svo hér, þetta hefur sama grunn uppbyggingu með frá kolbu innflutning 257 00:13:21,480 --> 00:13:25,030 Flaskan er app = Flaskan (_NAME_), og þá er í gangi í lok. 258 00:13:25,030 --> 00:13:28,050 Við höfum þessar tvær mismunandi breytilegum leiðum hér. 259 00:13:28,050 --> 00:13:29,900 Og sá fyrsti, er sá sem ég sýndi 260 00:13:29,900 --> 00:13:34,230 í mynd, sem var að það tekur bara í streng nafni 261 00:13:34,230 --> 00:13:35,650 og það mun prenta út Halló, Nafn. 262 00:13:35,650 --> 00:13:41,410 >> Og þá, seinni einn notar umbreytingu. 263 00:13:41,410 --> 00:13:44,690 Þannig að þetta mun sjálfkrafa umbreyta það að int, og þá tvöfaldur int, 264 00:13:44,690 --> 00:13:46,150 og prenta það út. 265 00:13:46,150 --> 00:13:48,220 Og við gerum ekki hvers konar umbreytingar innan þess 266 00:13:48,220 --> 00:13:49,594 vegna flösku sér um það. 267 00:13:49,594 --> 00:13:53,181 Svo skulum við fá þetta gangi. 268 00:13:53,181 --> 00:13:54,930 Þegar þú ert með flösku umsókn í gangi, 269 00:13:54,930 --> 00:13:58,440 Þú getur stjórnað-C út af því til að stöðva framreiðslumaður hlaupandi. 270 00:13:58,440 --> 00:14:02,420 Og þá mun ég hlaupa breytur. 271 00:14:02,420 --> 00:14:11,740 >> Svo við skulum fara að localhost / Hello / Esra og vonandi mun þetta segja halló við mig. 272 00:14:11,740 --> 00:14:14,530 273 00:14:14,530 --> 00:14:20,310 >> Svo það tók í mínu nafni, í breytunni leið, og það fyllti það hér. 274 00:14:20,310 --> 00:14:23,950 Svo ég mun einnig sýna a fljótur dæmi um tvöföldun. 275 00:14:23,950 --> 00:14:28,600 Svo ef þú ferð til / double / 3, það mun prenta út 6. 276 00:14:28,600 --> 00:14:31,440 Svo tók þetta hugsa um viðskiptin fyrir okkur. 277 00:14:31,440 --> 00:14:34,190 >> Svo þú getur líka gert það með fljóta og eitthvað sérstakt, 278 00:14:34,190 --> 00:14:37,530 ef þú þarft að tilgreina eitthvað svona leið, sem gerir það að samþykkja skástrik, 279 00:14:37,530 --> 00:14:39,155 en það ætti ekki yfirleitt að vera málið. 280 00:14:39,155 --> 00:14:41,480 281 00:14:41,480 --> 00:14:43,820 Svo langt að við, enn bara verið að skila 282 00:14:43,820 --> 00:14:46,320 strengir, sem er ekki mjög áhugavert. 283 00:14:46,320 --> 00:14:48,730 >> Við gætum í raun aftur bókstaflega HTML band. 284 00:14:48,730 --> 00:14:54,322 Svo í númerið við getum sett eitthvað eins og b-tag til að gera það feitletrað, 285 00:14:54,322 --> 00:14:56,030 en mest þeim tíma sem þú í raun ekki vilja 286 00:14:56,030 --> 00:14:58,420 að vera að skrifa HTML kóða í Python kóðann þinn. 287 00:14:58,420 --> 00:15:01,940 Það verður mjög sóðalegur, og það er ekki góður tími. 288 00:15:01,940 --> 00:15:06,430 >> Flaskan leyfum okkur að skilja út HTML í það sem er kallað Snið, 289 00:15:06,430 --> 00:15:09,467 og svo ef þú ert að hugsa í skilmálar af MVC líkan 290 00:15:09,467 --> 00:15:11,550 að þú ert kunnuglegur með, vonandi, að vinna 291 00:15:11,550 --> 00:15:15,520 með CS50 fjármálaráðherra svolítið, þú getur hugsa um Python skrá 292 00:15:15,520 --> 00:15:19,430 eins og að vera meira af Controller, þar þeir eru samskipti við hvað 293 00:15:19,430 --> 00:15:20,970 gögn líkan sem þú gætir hafa. 294 00:15:20,970 --> 00:15:24,900 >> Og þá eru þeir að kalla á Views og liggur upplýsingar til þess View 295 00:15:24,900 --> 00:15:28,120 að fylla í upplýsingar í HTML sem það þarf. 296 00:15:28,120 --> 00:15:30,490 Og það sem við köllum þá Views eru Sniðmát í bekknum. 297 00:15:30,490 --> 00:15:35,280 >> Svo flösku notar annan Python eining sem það vilja á sjálfvirkan hátt 298 00:15:35,280 --> 00:15:38,620 setja upp þegar þú PIP setja Flaskan heitir Jinja, sem 299 00:15:38,620 --> 00:15:40,885 gerir þér kleift að bæta þessum textaskýringar til HTML 300 00:15:40,885 --> 00:15:45,140 sem þú sérð á skjánum, sem leyfir þú setur í hlutum eins og conditionals, 301 00:15:45,140 --> 00:15:47,230 og lykkjur í HTML. 302 00:15:47,230 --> 00:15:51,140 >> Svo það lítur svolítið eins og hvernig þú gæti notað PHP innan HTML skrá, 303 00:15:51,140 --> 00:15:57,380 en þetta er bara þegar flösku Miðlarinn þjónar upp HTML skjalið 304 00:15:57,380 --> 00:16:01,610 það mun keyra þetta sniðmát vél og flokka í gegnum þetta og fylla það í. 305 00:16:01,610 --> 00:16:06,650 Svo hefur flöskuhálsinn render_template virka að þú getur séð neðst hér. 306 00:16:06,650 --> 00:16:14,300 Og svo þegar þú heimsækir þessa síðu, það geri þetta hello.html Snið, 307 00:16:14,300 --> 00:16:16,407 og þá fylla í þessari HTML síðu. 308 00:16:16,407 --> 00:16:18,990 Svo skulum keyra bara þessa alvöru fljótur, og sjá hvað það lítur út eins og, 309 00:16:18,990 --> 00:16:21,198 og þá mun ég fara í gegnum a svolítið nánar. 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 Svo eru sniðmát fara að fara í möppunni Sniðmát. 312 00:16:30,260 --> 00:16:33,980 Það mun sjálfkrafa líta innan Skjalasniðamappan fyrir þessi Snið. 313 00:16:33,980 --> 00:16:35,615 Svo skulum opna þetta upp. 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 Svo, ég keyra sniðmát dæmi. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> Svo ef ég fer til / Hello / Esra, það hefur þetta hræðilegt, 318 00:17:03,660 --> 00:17:05,930 andstyggilegur hátíðatjald tag sem ég setti í. 319 00:17:05,930 --> 00:17:08,050 Mjög gott, mjög breytilegt. 320 00:17:08,050 --> 00:17:09,349 Ég er mikill aðdáandi. 321 00:17:09,349 --> 00:17:13,900 En hvað gerist ef Ég fer bara til, / heilsa? 322 00:17:13,900 --> 00:17:15,220 Svo það segir bara Hello World. 323 00:17:15,220 --> 00:17:17,678 Ég vissi ekki að fara framhjá það nafn, og fyllti sjálfkrafa upp. 324 00:17:17,678 --> 00:17:22,050 Svo skulum sjá hvernig það gerði það, og hvernig við getum fá losa af þeim hátíðatjald kannski. 325 00:17:22,050 --> 00:17:26,240 >> Svo hér, þetta er tegund af áhugavert dæmi um, 326 00:17:26,240 --> 00:17:29,101 ef þú ert kunnuglegur með hvernig skipta yfirlýsingar vinna í tungumáli. 327 00:17:29,101 --> 00:17:31,350 Segja að þetta er tegund af eins og, þessi tegund af falla í gegnum, 328 00:17:31,350 --> 00:17:34,266 þar sem þú fylgir í raun tveir mismunandi leiðir til sömu virkni. 329 00:17:34,266 --> 00:17:41,190 Þannig að við að festa / hello leið og í / halló / nafn leiðina til Halló, 330 00:17:41,190 --> 00:17:45,130 og við að skilgreina using-- Python leyfir þér tilgreina sjálfgefinn virka arguments-- 331 00:17:45,130 --> 00:17:48,300 þannig að ef það er ekkert nafn, svo ef við förum bara / halló, 332 00:17:48,300 --> 00:17:50,680 það vilja á sjálfvirkan hátt sía nafni er jafn Enginn. 333 00:17:50,680 --> 00:17:55,010 >> Svo, gera við það Sniðmát með name = nafni, 334 00:17:55,010 --> 00:17:59,510 svo það mun líða í nafni breytu jafnt þessu heiti virka breytu, 335 00:17:59,510 --> 00:18:00,730 í Snið. 336 00:18:00,730 --> 00:18:04,040 Sem enn er ekki að útskýra hvernig er ákveða hvort að prenta Halló heimur, 337 00:18:04,040 --> 00:18:05,100 eða prenta nafn mitt. 338 00:18:05,100 --> 00:18:08,050 Svo skulum raun líta í Snið sig, 339 00:18:08,050 --> 00:18:11,610 og sjá hvar það kemur frá. 340 00:18:11,610 --> 00:18:18,680 >> Svo, í þessari sniðmáti við reyndar hafa sumir skilyrt rökfræði, 341 00:18:18,680 --> 00:18:20,580 sem sumir myndu halda því fram, að í raun og veru 342 00:18:20,580 --> 00:18:23,730 ætti ekki að hafa mikið af skilyrt rökfræði í sniðmátið sig. 343 00:18:23,730 --> 00:18:26,310 Það ætti að vera meira innan Stjórnandi, en í þessu dæmi 344 00:18:26,310 --> 00:18:27,476 það er eitthvað ansi lítið. 345 00:18:27,476 --> 00:18:31,060 Svo hér við athugum, hvort nafn, svo ef nafn er ekki jafn Enginn, 346 00:18:31,060 --> 00:18:33,130 ef nafn er í raun samþykkt í, þá munum við 347 00:18:33,130 --> 00:18:36,210 segja Halló, Nafn með haus og hátíðatjald, 348 00:18:36,210 --> 00:18:41,490 allt þetta eðlilegt HTML, annars, munum við prenta út Hello, World bara venjulega. 349 00:18:41,490 --> 00:18:45,820 Svo nokkra hluti til tilkynningar hér um hvernig þú forsníða sniðmát, 350 00:18:45,820 --> 00:18:49,110 er að allir þessir skilyrt yfirlýsingar, 351 00:18:49,110 --> 00:18:54,475 svona eins hvernig við PHP það þegar þú vilt setja smá PHP, 352 00:18:54,475 --> 00:18:58,380 þú notar minna en um ræðir merkja, það er tegund af hliðstætt hér 353 00:18:58,380 --> 00:19:00,140 með {%. 354 00:19:00,140 --> 00:19:02,130 >> Svo hér höfum við skilyrt kóða okkar. 355 00:19:02,130 --> 00:19:05,920 Og þá, þegar þú vilt í raun að bókstaflega meta eitthvað, og prenta 356 00:19:05,920 --> 00:19:08,710 það út á skjánum, þú nota tvöfalda axlabönd. 357 00:19:08,710 --> 00:19:12,310 Svo hér eru tvöfaldur axlabönd, og þá erum við að gefa upp nafn, 358 00:19:12,310 --> 00:19:15,500 innan þess, mun það mat til breytu nafni, sem 359 00:19:15,500 --> 00:19:18,860 var samþykkt í frá láta sniðmát virka, 360 00:19:18,860 --> 00:19:21,484 frekar en bara prentun út, ef við fengum losa af þessu, 361 00:19:21,484 --> 00:19:23,150 það myndi bara prenta út orðið "nafn". 362 00:19:23,150 --> 00:19:26,340 Svo, það er eitthvað að horfa út fyrir. 363 00:19:26,340 --> 00:19:29,792 >> Svo annar hlutur að tilkynning er að þegar við 364 00:19:29,792 --> 00:19:31,500 vilt nota render_template virka, 365 00:19:31,500 --> 00:19:34,490 við höfum í raun að flytja það skýrt frá flösku. 366 00:19:34,490 --> 00:19:36,915 Og þetta er dæmi um að sveigjanleiki á flösku, 367 00:19:36,915 --> 00:19:39,290 að þú þarft ekki að flytja hlutir sem þú þarft ekki. 368 00:19:39,290 --> 00:19:41,290 Þú getur bara koma í aðgerðir sem þú í raun og veru 369 00:19:41,290 --> 00:19:43,450 þarft, sem er stundum gott, svo þú ert ekki 370 00:19:43,450 --> 00:19:46,560 að hafa allar þessar aðgerðir lota í kring að þú ert ekki að nota, 371 00:19:46,560 --> 00:19:49,730 en einnig, ef þú gleymir að þú þarf að flytja render_template, 372 00:19:49,730 --> 00:19:52,660 þú munt sennilega fá viðvörun sem mun láta þig vita um það. 373 00:19:52,660 --> 00:19:56,700 Svo, það er sniðmát. 374 00:19:56,700 --> 00:20:01,680 >> Svo höfum við sýnt hvernig á að gera einfaldar vefsíður, 375 00:20:01,680 --> 00:20:04,947 og bæta svolítið meira rökfræði til það, í skilmálar af breytunni venja. 376 00:20:04,947 --> 00:20:08,280 Það leyfir þér að gera mismunandi hluti byggt á hvað URL þú ferð til, og einnig þá, gefa 377 00:20:08,280 --> 00:20:11,950 HTML svolítið meira vit í Skilmálar hvernig þú vilt að veita það. 378 00:20:11,950 --> 00:20:14,210 Þú þarft ekki að setja alla HTML þitt í Python þinn, 379 00:20:14,210 --> 00:20:16,640 en fyrir ansi mikið sérhver vefur umsókn, 380 00:20:16,640 --> 00:20:21,480 þú ert að fara að vilja einhverskonar gögn líkan í tengslum við það. 381 00:20:21,480 --> 00:20:25,560 >> Og svo jafnan, þetta myndi vera eitthvað eins og SQL gagnagrunn. 382 00:20:25,560 --> 00:20:30,280 Og þú getur bara samskipti beint við SQL. 383 00:20:30,280 --> 00:20:32,190 Python er, ég held að það heitir. 384 00:20:32,190 --> 00:20:33,040 SQLite 3. 385 00:20:33,040 --> 00:20:38,454 Þú getur bara flutt SQLite 3 og framkvæma SQL fyrirspurnum beint, 386 00:20:38,454 --> 00:20:40,870 en ég veit ekki um þig, en ég virkilega líkar ekki, bara, 387 00:20:40,870 --> 00:20:42,750 skrifa út SQL fyrirspurnum. 388 00:20:42,750 --> 00:20:45,350 Það hefur tilhneigingu til að fá raunverulega löng og flókin. 389 00:20:45,350 --> 00:20:49,180 >> Og svo, eitthvað sem Ég vil nota er það sem er 390 00:20:49,180 --> 00:20:53,610 sem þekkt er sem Ormur, sem er hlut-Vensla kortlagning. 391 00:20:53,610 --> 00:20:56,890 Og benda á að hlut-Vensla kortlagning, 392 00:20:56,890 --> 00:21:00,100 er að það eru tvær mismunandi leiðir sem þú getur hugsa um gagnagrunna. 393 00:21:00,100 --> 00:21:03,240 >> Svo dæmi sem Prófessor Malan yfirleitt 394 00:21:03,240 --> 00:21:07,660 notar í bekknum, er Excel tafla, þar þú hefur þessar línur og þessa dálka, 395 00:21:07,660 --> 00:21:10,210 og það er mjög gagnlegt fyrir hvernig það er táknuð í SQL 396 00:21:10,210 --> 00:21:13,170 og hvernig þú samskipti við það, en önnur leið sem það er í raun 397 00:21:13,170 --> 00:21:16,390 gagnlegt að hugsa um það stundum, er í skilmálar af bekkjum og mótmæla. 398 00:21:16,390 --> 00:21:20,420 >> Svo í stað þess að hugsa af hverri töflu sem hafa 399 00:21:20,420 --> 00:21:23,040 þessi röð sem hefur ákveðnar upplýsingar, getur þú í raun að 400 00:21:23,040 --> 00:21:26,100 hugsa um það eins og að vera Hvert borð er a tegund, 401 00:21:26,100 --> 00:21:29,810 og þá hver dæmi af tegund hefur tiltekna eiginleika. 402 00:21:29,810 --> 00:21:35,110 Svo, í þessu dæmi, en dæmi af bekknum eru raðir í töflunni, 403 00:21:35,110 --> 00:21:37,490 og þá hver eign myndi vera dálkur í töflunni. 404 00:21:37,490 --> 00:21:40,840 >> Svo er Ormur sem ég eins og að nota er kallað Peewee. 405 00:21:40,840 --> 00:21:43,520 Það er í raun lítill, tegund af eins flösku. 406 00:21:43,520 --> 00:21:46,760 Ég held að þeir fara vel saman, en það eru fullt af öðrum ORMs 407 00:21:46,760 --> 00:21:47,730 að þú getur notað. 408 00:21:47,730 --> 00:21:52,180 A vinsæll einn er þekktur sem SQLAlchemy, 409 00:21:52,180 --> 00:21:56,050 og ég man ekki af hverju ég upphaflega valdi PEEWEE yfir SQLAlchemy, 410 00:21:56,050 --> 00:21:58,311 eða ég myndi segja þér af hverju ég held að það sé best, 411 00:21:58,311 --> 00:22:01,060 en við erum bara að fara að nota þetta eitt af því sem ég veit hvernig á að nota það. 412 00:22:01,060 --> 00:22:04,760 >> Svo, ein spurning er, hvers vegna ættir þú nennir að nota Ormur 413 00:22:04,760 --> 00:22:07,552 í stað þess að bara beint skrifa SQL fyrirspurnum? 414 00:22:07,552 --> 00:22:09,760 Og ég held að besta mál, er að þú ert ekki í raun 415 00:22:09,760 --> 00:22:11,356 að skrifa SQL fyrirspurnir. 416 00:22:11,356 --> 00:22:14,480 Það er miklu auðveldara, og ég skal sýna þér, að gera hlutina eins og val, innsetning, 417 00:22:14,480 --> 00:22:16,157 eyðingu, sérstaklega búa töflur. 418 00:22:16,157 --> 00:22:17,990 Það er miklu auðveldara að skrifa flokks uppbyggingu, 419 00:22:17,990 --> 00:22:22,250 en það er að uppbygging a Búa Tafla yfirlýsingu, en eitt 420 00:22:22,250 --> 00:22:25,710 að vera meðvitaðir um, er að að Ormur mun reyna sitt besta 421 00:22:25,710 --> 00:22:28,640 að reikna út hvað mest duglegur SQL fyrirspurn væri, 422 00:22:28,640 --> 00:22:30,110 en stundum gerist það að það rangt. 423 00:22:30,110 --> 00:22:32,660 >> Og sérstaklega ef þú ert vinna með stór gagnagrunni, 424 00:22:32,660 --> 00:22:35,557 þú getur tekið eftir því að fyrirspurn sem ætti að vera í gangi hratt, 425 00:22:35,557 --> 00:22:36,640 er í raun að taka lengur. 426 00:22:36,640 --> 00:22:40,164 Og ef þú líta undir hetta á hvernig sem Ormur er túlka sem í SQL, 427 00:22:40,164 --> 00:22:42,080 það gæti verið að gera eitthvað í raun fáránlegt, 428 00:22:42,080 --> 00:22:44,371 bara vegna þess að það svoleiðis gestured fyrirætlanir þínar rangt. 429 00:22:44,371 --> 00:22:48,080 Og það hefur verið oft þar Ég hef þurft að hunsa það, og bara 430 00:22:48,080 --> 00:22:52,429 framkvæma eigin SQL minn fyrirspurnum, bara vegna þess að það var þáttun á undarlegan hátt. 431 00:22:52,429 --> 00:22:54,220 Svo, það er einhver kostnaður, bara í leiðinni 432 00:22:54,220 --> 00:22:58,680 að það safnar þinn yfirlýsingar niður í SQL. 433 00:22:58,680 --> 00:23:06,200 >> Svo skulum líta frábær fljótt á einfalt dæmi um gögn líkan 434 00:23:06,200 --> 00:23:07,350 sem þú gætir notað. 435 00:23:07,350 --> 00:23:11,880 Svo, þetta er Python kóða, og svo Það fyrsta sem þú vilt gera er að frá 436 00:23:11,880 --> 00:23:12,950 Peewee innflutningur *. 437 00:23:12,950 --> 00:23:15,850 Svo, ólíkt flöskuna, þar sem þú þarft Öll þessi Einstakar einingar, 438 00:23:15,850 --> 00:23:18,125 og þú vilt flytja inn flösku og skrifa sniðmát, og sumir aðrir 439 00:23:18,125 --> 00:23:20,690 að við munum sjá síðar, frá Peewee, þú getur bara flutt allt, 440 00:23:20,690 --> 00:23:22,290 vegna þess að það er nokkuð lítið bókasafn. 441 00:23:22,290 --> 00:23:26,490 >> Svo, the fyrstur hlutur þú vilt gera er reyndar búa til þennan gagnagrunn mótmæla. 442 00:23:26,490 --> 00:23:31,212 Svo, hefur þú dB = SqliteDatabase, og þá nafn gagnagrunninn. 443 00:23:31,212 --> 00:23:33,170 Og þetta mun í raun búa til gagnasafn mótmæla 444 00:23:33,170 --> 00:23:36,230 sem þú getur samskipti við, með Peewee. 445 00:23:36,230 --> 00:23:40,570 >> Og þá höfum við í raun líkan sem við viljum búa. 446 00:23:40,570 --> 00:23:42,470 Þannig að borðið við viljum búa. 447 00:23:42,470 --> 00:23:47,270 Svo, innan Peewee, hver tegund hefur eigin borð hans í gagnagrunninn. 448 00:23:47,270 --> 00:23:52,800 Svo, öll flokkum erfa frá the undirstaða líkan, 449 00:23:52,800 --> 00:23:55,960 og höfuðborg M líkanið er eitthvað sem er skilgreint í Peewee. 450 00:23:55,960 --> 00:24:02,162 >> Svo, allt líkan þínum ætti erfa eins hæsta yfirklasa þeirra, 451 00:24:02,162 --> 00:24:04,620 þeir ættu að erfa frá fyrirmynd, en það er mjög flott, 452 00:24:04,620 --> 00:24:07,610 er að þú getur raunverulega hafa þinn módel erfa hvert af öðru. 453 00:24:07,610 --> 00:24:10,530 Og mikið af þeim tíma, þinn gögn líkan gera ekki endilega 454 00:24:10,530 --> 00:24:13,754 gera gott arf stigveldi, en sinnum þar sem þeir gera, það er mjög gott, 455 00:24:13,754 --> 00:24:15,920 því þú ert fyrirmynd felst hvert af öðru. 456 00:24:15,920 --> 00:24:19,710 >> Svo, skilgreint við þennan flokk 'nemandi' sem erfir fyrirmynd, 457 00:24:19,710 --> 00:24:21,170 og það hefur þrjá eiginleika. 458 00:24:21,170 --> 00:24:24,080 Það er með kenni, sem er a PrimaryKeyField, sem 459 00:24:24,080 --> 00:24:26,920 er eitthvað sem er kveðið eftir Peewee, nafn er CharField, 460 00:24:26,920 --> 00:24:28,490 og einkunn er IntegerField. 461 00:24:28,490 --> 00:24:32,260 Þannig að þetta mega eða mega ekki vera hvernig CS50 raun geymir allar 462 00:24:32,260 --> 00:24:33,650 einkunna nemendanna. 463 00:24:33,650 --> 00:24:36,060 Það er ekki, en þetta er hvernig ég myndi gera það. 464 00:24:36,060 --> 00:24:37,920 >> Og þá hefur það, innan þessi flokkur, og þetta 465 00:24:37,920 --> 00:24:41,620 er eitthvað sem þú getur gert með Python, er hægt að hafa hreiður bekkjum. 466 00:24:41,620 --> 00:24:43,920 Og þetta er eitthvað sem er krafist af Peewee. 467 00:24:43,920 --> 00:24:47,250 Svo, þetta bekknum Meta þarftu að tilgreina að gagnagrunnurinn er 468 00:24:47,250 --> 00:24:49,830 jafn hlut sem við bjuggum fyrir ofan. 469 00:24:49,830 --> 00:24:54,339 Og þetta segir hvað skráin er þetta borð í raun að fara að vera í. 470 00:24:54,339 --> 00:24:57,130 Svo er þetta eitthvað sem þú hefur að gera innan allar gerðir þínar. 471 00:24:57,130 --> 00:24:59,380 Þú verður bara að tilgreina innan þessa Meta flokki 472 00:24:59,380 --> 00:25:01,400 sem skráð er jafn db. 473 00:25:01,400 --> 00:25:03,940 Svo það sem ég geri venjulega, ef ég hef fullt af mismunandi gerðum, 474 00:25:03,940 --> 00:25:05,910 er að ég hef einn grunn líkan, sem ég venjulega 475 00:25:05,910 --> 00:25:08,839 bara hringja "undirstaða líkan" sem hefur Meta bekknum, 476 00:25:08,839 --> 00:25:10,380 og það setur gagnagrunninn jafnt db. 477 00:25:10,380 --> 00:25:13,710 Og þá allt í síðari gerðum mínum mun erfa frá því stöð bekknum. 478 00:25:13,710 --> 00:25:16,760 Og þá þarf ég ekki að hafa áhyggjur um að setja Meta bekknum. 479 00:25:16,760 --> 00:25:21,490 >> Svo, þegar þetta í raun fær saman niður í SQL staðhæfing, 480 00:25:21,490 --> 00:25:24,875 það lítur út eins og þetta viðbjóðslegur hlutur niður hér, "CREATE TABLE nemandi ID heiltala, 481 00:25:24,875 --> 00:25:26,020 "Hvað sem er. 482 00:25:26,020 --> 00:25:30,002 >> Og ég held að það sé styttra, þetta SQL fyrirspurn hérna, 483 00:25:30,002 --> 00:25:32,960 en ef þú horfir á þessa flokks hér þú getur séð nákvæmlega hvað er að gerast. 484 00:25:32,960 --> 00:25:36,116 Þú getur séð hvað konar sviðum það eru, hvað þeir eru að heita, 485 00:25:36,116 --> 00:25:38,115 og svo held ég að horfa á þetta Python kóða 486 00:25:38,115 --> 00:25:43,340 er mikið læsilegri en reyna að skrifa þessa SQL fyrirspurn. 487 00:25:43,340 --> 00:25:45,990 >> Svo, í því skyni að í raun og veru nota gagnagrunninn, 488 00:25:45,990 --> 00:25:48,470 við verðum að tengja við það innan Python. 489 00:25:48,470 --> 00:25:52,770 Svo, ég skrifa yfirleitt fall sem kallast initialize_db sem gerir tvennt. 490 00:25:52,770 --> 00:25:54,880 Það tekur í dag hlut dB og það 491 00:25:54,880 --> 00:25:58,360 tengist það, sem bara opnar upp hluta til gagnagrunninum. 492 00:25:58,360 --> 00:26:00,860 Ef þú ert bara að keyra þó website á þinni vél, 493 00:26:00,860 --> 00:26:04,320 það er ekki frábær stór samningur til að hafa áhyggjur um að tengja og aftengja, 494 00:26:04,320 --> 00:26:06,885 en ef þú ert að keyra það á heimasíðu, þú 495 00:26:06,885 --> 00:26:10,010 vilja til að ganga úr skugga um það, í hvert skipti sem notandi tengist það, þegar þeir loka út 496 00:26:10,010 --> 00:26:12,270 the website, aftengja þeir svo að þú ekki hafa fullt af fólki sem tengjast 497 00:26:12,270 --> 00:26:14,480 við gagnagrunninn í einu. 498 00:26:14,480 --> 00:26:16,370 >> Og þá, þegar þér að tengjast við gagnagrunn, 499 00:26:16,370 --> 00:26:20,832 þú vilt hringja db.create_tables, og lista módel fyrir það sem þú vilt 500 00:26:20,832 --> 00:26:21,540 að búa til töflur. 501 00:26:21,540 --> 00:26:23,950 Svo hér, ég vil bara að búa hana til fyrir þennan nemanda. 502 00:26:23,950 --> 00:26:28,070 Og þá, hvað er mikilvægt, er að tilgreina örugga = true mest tímann. 503 00:26:28,070 --> 00:26:30,380 Svo er það þetta yfirlýsing mun gera, er að henni 504 00:26:30,380 --> 00:26:33,580 skapar töflur fyrir líkan nemandi, en aðeins 505 00:26:33,580 --> 00:26:36,109 ef það borð hefur ekki verið búin þegar. 506 00:26:36,109 --> 00:26:37,400 Það er það sem Öryggisskápur skilgreinir. 507 00:26:37,400 --> 00:26:39,150 Svo það verður ekki skrifa núverandi borð þitt, 508 00:26:39,150 --> 00:26:41,525 það verður bara að búa til nýja borð ef það er ekki einn þarna. 509 00:26:41,525 --> 00:26:45,090 Svo gætir þú bara að búa til borðum einu sinni með SQL. 510 00:26:45,090 --> 00:26:49,410 Og þá hafa þessi gagnasafn sitja þar, og síðan að tengja við hverju sinni, 511 00:26:49,410 --> 00:26:52,450 en það er yfirleitt gott bara að setja í þessum create_tables símtali, 512 00:26:52,450 --> 00:26:55,550 þannig að, ef þú alltaf eyða þinn gagnagrunnur þegar þú keyrir þinn vefur 513 00:26:55,550 --> 00:26:57,960 app aftur, það mun endurskapa það. 514 00:26:57,960 --> 00:27:00,730 >> Svo, bara vera viss um að óhætt er tilgreint að vera satt, 515 00:27:00,730 --> 00:27:03,580 eða þú finnur gögn bara fá stútað í hvert skipti. 516 00:27:03,580 --> 00:27:06,380 Og þá getur þú bara hringt initialize_db að koma 517 00:27:06,380 --> 00:27:09,820 tenging, og búa til töflur ef þörf krefur. 518 00:27:09,820 --> 00:27:13,150 >> Svo er algengasta hlutur sem þú vilja vilja til að gera, 519 00:27:13,150 --> 00:27:15,920 eða einn af the sameiginlegur atriði, er að í raun að setja hlutina 520 00:27:15,920 --> 00:27:17,170 í gagnagrunninn. 521 00:27:17,170 --> 00:27:19,430 Og svo, frekar en að þurfa að skrifa setja inn 522 00:27:19,430 --> 00:27:21,990 yfirlýsingu með öllum gildi tilgreint, 523 00:27:21,990 --> 00:27:24,650 þú getur í raun að hringja virka á nemandi bekknum. 524 00:27:24,650 --> 00:27:28,200 Svo, þegar þú búa til flokk erfir frá fyrirmynd, 525 00:27:28,200 --> 00:27:30,200 það hefur þetta skapa aðferð. 526 00:27:30,200 --> 00:27:33,870 >> Svo, gera þú flokks name.create, og þú tilgreinir breytur 527 00:27:33,870 --> 00:27:35,260 sem þú vilt fara í. 528 00:27:35,260 --> 00:27:39,200 Svo, ef ég vil bæta nokkrum nemendum að CS50 bekk bók okkar dæmis, 529 00:27:39,200 --> 00:27:41,820 Ég ætla að setja í Davíð, sem hefur mjög gott bekk, hann hefur 95. 530 00:27:41,820 --> 00:27:45,100 Og ég, sem er ekki að gera svo vel í CS50, ég er með 50. 531 00:27:45,100 --> 00:27:47,600 Og svo, ágætur hlutur óður hvað þetta skapa virka gerir, 532 00:27:47,600 --> 00:27:53,040 er að það skilar dæmis, eða röð, að það skapaði í töflunni, 533 00:27:53,040 --> 00:27:55,750 og svo er þá geyma það í a breyta og vinna með það síðar. 534 00:27:55,750 --> 00:27:58,830 Þú getur breytt um, sem Ég skal sýna dæmi um. 535 00:27:58,830 --> 00:28:03,050 >> Takið eftir að ég gerði það ekki að tilgreina auðkenni, 536 00:28:03,050 --> 00:28:09,340 því þar sem það er PrimaryKeyField, mun það sjálfkrafa 537 00:28:09,340 --> 00:28:10,930 hækka það ef þú tilgreinir ekki. 538 00:28:10,930 --> 00:28:12,250 Og í raun, þú sennilega ætti ekki að tilgreina það, 539 00:28:12,250 --> 00:28:14,810 vegna þess að þú gætir óvart clobber ID einhvers annars. 540 00:28:14,810 --> 00:28:16,830 Og þú vilt gera viss um að það er einstakt. 541 00:28:16,830 --> 00:28:20,662 >> Svo, í raun, the sameiginlegur hlutur þú vilt gera, 542 00:28:20,662 --> 00:28:22,620 er sennilega að velja út gagnagrunnsins þegar 543 00:28:22,620 --> 00:28:24,078 hafa mikið af upplýsingum þar. 544 00:28:24,078 --> 00:28:27,360 Og svo, ef þú vilt fá allt, svo jafnvirði velja stjörnu 545 00:28:27,360 --> 00:28:30,940 frá nemendum yfirlýsingu, það myndi bara vera student.select. 546 00:28:30,940 --> 00:28:34,380 Og það mun gefa þér aftur upp á fjölbreytta með öllum nemanda hlutum í það 547 00:28:34,380 --> 00:28:35,770 að þú iterate yfir sem þú vilt. 548 00:28:35,770 --> 00:28:37,019 Þú getur fengið það út af því. 549 00:28:37,019 --> 00:28:39,310 Og mest af þeim tíma, þú ekki bara að gera með því að velja, 550 00:28:39,310 --> 00:28:40,935 þú vilt í raun að tilgreina eitthvað. 551 00:28:40,935 --> 00:28:44,580 Og svo getur þú keðja saman þessar virka símtöl, 552 00:28:44,580 --> 00:28:48,830 eins og hvernig þú vildi keðja saman yfirlýsingar í SQL. 553 00:28:48,830 --> 00:28:53,002 Svo þú getur gert student.select (). Þar í þessu dæmi. 554 00:28:53,002 --> 00:28:54,710 Og þá, þú getur tilgreina skilyrði, 555 00:28:54,710 --> 00:28:57,880 bara að nota venjulegan Python Booleans að athuga það. 556 00:28:57,880 --> 00:29:02,110 >> Svo, í þessu tilfelli, þú vilt takmarka hvað þú ert að velja að, 557 00:29:02,110 --> 00:29:06,790 þar sem student.grade er jöfn 50, og student.name er jafn Esra, 558 00:29:06,790 --> 00:29:09,130 þannig að vilja bara fá mig út úr því. 559 00:29:09,130 --> 00:29:11,340 Og eftir, einn í raun lúmskur hlutur hér er 560 00:29:11,340 --> 00:29:15,570 að ef þú vilt tilgreina An og / og eða eða / eða, 561 00:29:15,570 --> 00:29:19,840 í Python, væri þú venjulega notar, Ég held að orðið "og" í raun, 562 00:29:19,840 --> 00:29:23,351 en hér er notað eitt merkið, sem er venjulega Bita rekstraraðila, 563 00:29:23,351 --> 00:29:25,600 en í þessu sérstaka tilfelli, bara þannig Peewee gerir það, 564 00:29:25,600 --> 00:29:27,660 þú notar einn merkið að tilgreina "og." 565 00:29:27,660 --> 00:29:29,451 Það er eitthvað sem Ég fá ruglað mikið, 566 00:29:29,451 --> 00:29:32,530 en það þýðir ekki að koma upp það mikið í raun. 567 00:29:32,530 --> 00:29:36,350 >> Og þá, þegar þú hefur öll nemendur úr gagnagrunninum, 568 00:29:36,350 --> 00:29:39,420 þegar þú hefur gert að þú ert að velja og klæðast eða hvað, 569 00:29:39,420 --> 00:29:42,334 þú getur notað framhandleggur lykkja, bara eins og venjulega í Python, 570 00:29:42,334 --> 00:29:44,500 með hvers konar Iterator eða með hvers konar fylkisins. 571 00:29:44,500 --> 00:29:46,333 Svo er hægt að gera, fyrir s í student.select (). whe 572 00:29:46,333 --> 00:29:52,930 Re (Student.grade <75), og þannig að þetta verður iterate yfir hvern nemanda í töflunni 573 00:29:52,930 --> 00:29:56,260 sem gráðu er minna en 75, þar sem í þessu tilfelli, er enn bara ég. 574 00:29:56,260 --> 00:29:59,218 Og þá gætir þú gert eitthvað í að lykkja, eins senda mér tölvupóst 575 00:29:59,218 --> 00:30:01,680 og segja mér að í raun snúa í vandamál setur mínum. 576 00:30:01,680 --> 00:30:04,550 >> Svo, annar hlutur sem þú getur gera, er að það er mjög auðvelt 577 00:30:04,550 --> 00:30:06,460 að uppfæra raðir í töflunni. 578 00:30:06,460 --> 00:30:08,720 Svo muna aftur hingað, When I sett, 579 00:30:08,720 --> 00:30:11,440 Ég tók gildi sem var skilað af student.create, 580 00:30:11,440 --> 00:30:14,920 og ég úthlutað það til nafni heitir Ezra. 581 00:30:14,920 --> 00:30:18,995 Og svo nú er hægt að breyta í gildi innan þess dæmi, 582 00:30:18,995 --> 00:30:20,870 bara eins og þú myndir eðlilegt bekknum í Python. 583 00:30:20,870 --> 00:30:25,060 >> Svo þú getur stillt ezra.grade = 95 og sem mun uppfæra staðbundin afrit, 584 00:30:25,060 --> 00:30:28,380 en ef þú vilt í raun að skuldbinda þessi breyting að gagnagrunninum, 585 00:30:28,380 --> 00:30:31,410 þú þarft að hringja ezra.save, svo þú heitir .save aðferð 586 00:30:31,410 --> 00:30:32,650 á dæmi. 587 00:30:32,650 --> 00:30:38,085 >> Og svo nú hef ég tekist breytt mína eigin einkunn í gagnagrunninn. 588 00:30:38,085 --> 00:30:41,210 Svo, þá skulum segja að ég fá caught breyta einkunninni innan gagnagrunninum. 589 00:30:41,210 --> 00:30:44,126 Prófessor Malan er líklega að fara að vilja eyða mér úr bekknum, 590 00:30:44,126 --> 00:30:48,630 og svo þú getur hringt í .delete dæmi aðferð bara á þessi hlutur. 591 00:30:48,630 --> 00:30:51,674 >> Svo, ef þú vildir fara aftur í þessa lykkju hér, 592 00:30:51,674 --> 00:30:53,465 og í raun, í stað þess að senda tölvupóst allar 593 00:30:53,465 --> 00:30:56,577 nemenda Hvers bekk er minna en 75, þú vildir að eyða þeim, 594 00:30:56,577 --> 00:30:58,660 innan þessa lykkju þú gætir kalla s.delete dæmi. 595 00:30:58,660 --> 00:31:04,180 596 00:31:04,180 --> 00:31:07,780 Og mjög síðasta sem þú vilt gera, er þegar þú koma á tengingu, 597 00:31:07,780 --> 00:31:10,350 og þú ert búinn með vinnuna þína, þú vilt hringja db.close, 598 00:31:10,350 --> 00:31:13,190 þar db er að gagnagrunnur hlut sem við höfðum áður. 599 00:31:13,190 --> 00:31:18,290 Og þú vilt vera viss um að allt fær lokað út af. 600 00:31:18,290 --> 00:31:18,790 >> Cool. 601 00:31:18,790 --> 00:31:22,410 Svo nú, hef ég dæmi umsókn. 602 00:31:22,410 --> 00:31:26,880 Ég hef konar fyrirfram gert allt bara svo að það mun ekki vera nein lifandi kóðun 603 00:31:26,880 --> 00:31:30,220 mistök, en við getum gengið í gegnum það og sjá hvernig þú myndir setja flösku 604 00:31:30,220 --> 00:31:33,685 og PEEWEE saman, og gera einfalda app. 605 00:31:33,685 --> 00:31:38,680 Ég kalla það CS50 gífuryrði, og það er konar einfalda blogg vettvang. 606 00:31:38,680 --> 00:31:41,150 >> Svo, fyrst, ég keyra hana og sýna hvað það lítur út eins og, 607 00:31:41,150 --> 00:31:42,890 og þá getum við líta meira inn kóðann. 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 Jæja, þannig að við skulum hlaupa bara þetta. 610 00:32:02,830 --> 00:32:14,040 611 00:32:14,040 --> 00:32:17,250 Cool, ég ætla að gera þetta svolítið minni. 612 00:32:17,250 --> 00:32:20,000 Það er ekki mjög fallegt, bara vegna þess að Ég vissi ekki að gera mikið af CSS, 613 00:32:20,000 --> 00:32:23,255 en hvað það gerir er, það hefur Þessi gagnagrunnur af bloggfærslum, 614 00:32:23,255 --> 00:32:25,630 og það fer í gegnum öll þá, og það mun birta þær 615 00:32:25,630 --> 00:32:28,170 á síðunni í röð nýjasta. 616 00:32:28,170 --> 00:32:30,920 Og svo þetta eru bara nokkrar færslur sem ég hafði bjargað í dag. 617 00:32:30,920 --> 00:32:35,680 >> Svo ef við viljum búa til nýja staða, við getum farið að bæta nýja færslu, 618 00:32:35,680 --> 00:32:42,720 og við getum inn titilinn staða, svo eitthvað eins og, CS50 málstofa. 619 00:32:42,720 --> 00:32:45,360 620 00:32:45,360 --> 00:32:46,735 Vá, í alvöru að njóta námskeið. 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 Síðan sem þú ýtir færslu, og það mun sent þig aftur til heimasíðu, 624 00:32:56,060 --> 00:33:00,039 og þá munt þú sjá að Þræðir var bætt við. 625 00:33:00,039 --> 00:33:01,580 Og við höfum enn allar þær þar. 626 00:33:01,580 --> 00:33:08,080 Svo nú skulum við stíga í gegnum allar númer og sjá hvernig þetta kemur til framkvæmda. 627 00:33:08,080 --> 00:33:11,995 >> Svo held ég það fyrsta sem við skulum taka a líta á, er í raun módel. 628 00:33:11,995 --> 00:33:14,120 A einhver fjöldi af þeim tíma, þegar þú ert að hanna eitthvað, 629 00:33:14,120 --> 00:33:17,036 þú vilt að hugsa fyrst um hvernig þú ert að fara til að tákna gögnin þín, 630 00:33:17,036 --> 00:33:22,915 og þá hanna hluti í kringum það, þannig að allt vit. 631 00:33:22,915 --> 00:33:25,290 Og það er í raun hvernig ég gerði það þegar ég var að gera þetta, 632 00:33:25,290 --> 00:33:28,030 Ég settist niður og hugsaði, Hvað vil ég í færslu. 633 00:33:28,030 --> 00:33:32,130 >> Svo, hér höfum við sömu uppbyggingu að ég var að minnast á áðan, 634 00:33:32,130 --> 00:33:33,755 þar sem við gerum db = Sqldatabase ('posts.db'). 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 Í raun og veru, sennilega þú vilt ekki á harða kóða í gagnagrunna nafns þíns. 637 00:33:40,980 --> 00:33:43,730 Það ætti líklega að vera viðfang sem er geymt einhvers staðar, kannski 638 00:33:43,730 --> 00:33:45,940 í config skrá, en í lítið dæmi eins og þetta, 639 00:33:45,940 --> 00:33:48,310 það er allt í lagi að harða kóða sem í. 640 00:33:48,310 --> 00:33:53,510 >> Svo nú höfum við þessa færslu bekknum, sem erfir frá the undirstaða líkan. 641 00:33:53,510 --> 00:33:56,930 Og það hefur aftur, ID = PrimaryKeyField. 642 00:33:56,930 --> 00:34:02,250 Reyndar, ef þú tilgreinir ekki, ef ég reyndar fékk að losa um þetta, 643 00:34:02,250 --> 00:34:07,152 þá PEEWEE munum sjá um sjálfkrafa að búa til þessi ID sviði, 644 00:34:07,152 --> 00:34:09,360 og það vilja á sjálfvirkan hátt gera það PrimaryKey sem 645 00:34:09,360 --> 00:34:12,485 Ég held að sé mjög gott, vegna þess að yfirleitt, það er eitthvað sem þú vilt hafa, 646 00:34:12,485 --> 00:34:16,239 en ég eins og til að setja það í sérstaklega, bara svo ég man að það er þarna. 647 00:34:16,239 --> 00:34:19,480 En ef þú tilgreinir ekki, sem mun vera það sjálfkrafa. 648 00:34:19,480 --> 00:34:22,198 >> Svo, ég er með dagsetningu sem er DateTimeField, og allt 649 00:34:22,198 --> 00:34:24,864 þessar mismunandi sviðum, ef þú líta á PEEWEE gögnum, 650 00:34:24,864 --> 00:34:28,920 það mun gefa þér lista af mismunandi gerðir af sviðum sem þú getur notað. 651 00:34:28,920 --> 00:34:34,440 Fyrir the hluti, það er hliðstætt að það sem þú vilt sjá í SQL. 652 00:34:34,440 --> 00:34:37,699 Svo er það CharField, a VarCharFields, TextFields, 653 00:34:37,699 --> 00:34:40,550 sem eru mjög lengi textar, eins blogg 654 00:34:40,550 --> 00:34:44,460 hugsanlega, DateTimeFields, DoubleFields, FloatFields, 655 00:34:44,460 --> 00:34:46,100 allt svoleiðis. 656 00:34:46,100 --> 00:34:51,570 >> Og er hægt að fara í önnur rök við það, sem ég gerði ekki tilgreina hér. 657 00:34:51,570 --> 00:34:55,719 Segja til dæmis, sem þú ekki vilt leyfa tvö innlegg til að hafa sama heiti, 658 00:34:55,719 --> 00:34:59,672 þú gætir tilgreina eitthvað eins og einstök = True, 659 00:34:59,672 --> 00:35:02,880 og það er bara auka breytu til reit sem þegar það safnar það niður 660 00:35:02,880 --> 00:35:06,865 í SQL, mun hún tilgreina að það þarf að vera einstakt. 661 00:35:06,865 --> 00:35:09,740 Þú getur einnig tilgreint eitthvað eins ekki null og allir aðrir hlutir 662 00:35:09,740 --> 00:35:11,750 þú gerir venjulega í SQL. 663 00:35:11,750 --> 00:35:16,020 Svo, þetta er frekar einfalt líkan sem hefur dagsetningu. 664 00:35:16,020 --> 00:35:19,460 Tilkynning hér, innan DateTimeField, Ég tilgreint hvað sjálfgefið er. 665 00:35:19,460 --> 00:35:22,560 Ég tilgreint það að vera datetime.datetime.now, 666 00:35:22,560 --> 00:35:24,920 vegna þess á þann hátt sem þetta fær metið, 667 00:35:24,920 --> 00:35:28,750 það metur í raun sem datetime.now þegar 668 00:35:28,750 --> 00:35:32,110 það fær sett í gagnagrunninum. 669 00:35:32,110 --> 00:35:34,760 >> Ég held að ég myndi hafa að tvöfalda athuga þetta, 670 00:35:34,760 --> 00:35:38,222 en ef þú gerðir eitthvað eins og þetta, þá það væri í raun mat á það einu sinni, 671 00:35:38,222 --> 00:35:40,180 og þá DateTime myndi alltaf vera það sama. 672 00:35:40,180 --> 00:35:44,240 Svo, bara ef þú ert að gera eitthvað með datetimes, tvöfaldur stöðva 673 00:35:44,240 --> 00:35:47,080 að það er mat þegar reyndar fær sett, eða annars 674 00:35:47,080 --> 00:35:48,780 þú gætir verið að rugla saman. 675 00:35:48,780 --> 00:35:51,221 >> Titillinn er bara CharField, sem það 676 00:35:51,221 --> 00:35:53,970 eru fleiri rök er hægt að fara í tilgreina nákvæmlega hversu lengi þú 677 00:35:53,970 --> 00:35:56,170 vilja það til vera, en hér, það var í raun ekki máli. 678 00:35:56,170 --> 00:35:58,687 Og Texti er að fara að vera textinn í heild færslu, 679 00:35:58,687 --> 00:36:01,020 og það er að fara til vera a Textfield bara vegna þess að þú vilt 680 00:36:01,020 --> 00:36:03,370 til að leyfa það að vera ansi langur strengur. 681 00:36:03,370 --> 00:36:05,970 >> Þá höfum við þessa Meta greinar sem bara 682 00:36:05,970 --> 00:36:11,250 tilgreinir að við viljum gagnagrunninn þar sem þetta er í raun opnað upp í 683 00:36:11,250 --> 00:36:14,267 að vera dB hlut sem við höfum hér. 684 00:36:14,267 --> 00:36:16,350 Og síðasta sem við höfum hér er bara þessi aðgerð 685 00:36:16,350 --> 00:36:18,120 sem við erum að fara að nota frá helstu heimshornum 686 00:36:18,120 --> 00:36:23,970 frumstillt gagnagrunn til að tengjast það, og þá til að búa til Post borð. 687 00:36:23,970 --> 00:36:26,880 >> Nú, við skulum líta á helstu app sjálft. 688 00:36:26,880 --> 00:36:30,800 Svo er þetta alveg aðeins lengur en þær 689 00:36:30,800 --> 00:36:34,840 sem við höfum séð áður, en vonandi ekki svo slæmt. 690 00:36:34,840 --> 00:36:37,140 Svo, láta mig ná þessu út. 691 00:36:37,140 --> 00:36:38,370 Allt í lagi. 692 00:36:38,370 --> 00:36:42,070 >> Svo, eftir og efst ég flutt a heild búnt af öðrum hlutum 693 00:36:42,070 --> 00:36:44,129 frá flöskuna sem við höfum ekki raunverulega séð áður. 694 00:36:44,129 --> 00:36:46,670 Og vonandi getum við farið í gegnum Hver einn af þessum eitt af öðru 695 00:36:46,670 --> 00:36:49,420 og tala aðeins meira um þá, raðað eftir td. 696 00:36:49,420 --> 00:36:51,380 Svo höfum við flösku, og render_template, 697 00:36:51,380 --> 00:36:54,370 sem við höfum séð áður, þessa beiðni hlut, 698 00:36:54,370 --> 00:37:00,400 sem mun koma upp þegar við lítum á hvernig mynd sem ég var að sýna í raun 699 00:37:00,400 --> 00:37:01,170 virkar. 700 00:37:01,170 --> 00:37:04,850 Beina, sem gerir þér kleift að áframsenda aftur frá að búa til nýjar Post 701 00:37:04,850 --> 00:37:11,710 aftur til upprunalegu heimasíðuna, og þá URL, sem er eitthvað sem leyfir þér 702 00:37:11,710 --> 00:37:15,550 reikna út hvar á website tiltekin síða er. 703 00:37:15,550 --> 00:37:17,810 >> Svo þá er næsta sem ég geri, er ég innflutningur 704 00:37:17,810 --> 00:37:21,550 allar þær upplýsingar frá Models skrár sem við vorum bara að horfa á. 705 00:37:21,550 --> 00:37:23,140 Og, já. 706 00:37:23,140 --> 00:37:28,720 >> Svo, eitthvað annað nýtt sem kemur upp þegar þú ert að takast á við, 707 00:37:28,720 --> 00:37:31,850 sérstaklega gagnagrunna, er að þú getur tilgreint 708 00:37:31,850 --> 00:37:35,110 fall sem fær kallað áður hvert beiðni, og virka sem fær 709 00:37:35,110 --> 00:37:39,690 kallað eftir hverja beiðni, nota þetta Virka Decorator app.before beiðni. 710 00:37:39,690 --> 00:37:42,324 >> Og svo þetta mun fá fram hvar þessi aðgerð er. 711 00:37:42,324 --> 00:37:44,240 Þetta þarf ekki að vera kallaður fyrir beiðni, 712 00:37:44,240 --> 00:37:46,281 en yfirleitt er það eitthvað skynsamlegt að kalla það. 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 Þú getur tilgreint hvað sem virka þú vilt fá kallað þar, 715 00:37:51,650 --> 00:37:56,330 svo ég tilgreint þessa initialize_db fall sem við höfðum aftur í Models 716 00:37:56,330 --> 00:38:02,390 skrá, svo fyrir hverja beiðni, þú vilja til að tengjast gagnagrunninum. 717 00:38:02,390 --> 00:38:04,560 >> Það eru tvær mismunandi leiðir sem þú getur gert þetta. 718 00:38:04,560 --> 00:38:10,830 Þú getur gertapp., Ég held að það er after_request. 719 00:38:10,830 --> 00:38:13,800 Og munurinn á milli after_request og teardown_request, 720 00:38:13,800 --> 00:38:17,590 er að after_request mun aðeins gerast ef beiðnin raun var í gildi. 721 00:38:17,590 --> 00:38:20,440 Og svo, aðeins ef Beiðnin var vel, 722 00:38:20,440 --> 00:38:22,490 ef ekkert fór úrskeiðis, en teardown_request 723 00:38:22,490 --> 00:38:26,300 gerist um er að ræða vel beiðni, eða um er að ræða villu. 724 00:38:26,300 --> 00:38:28,252 >> Svo, yfirleitt, þú vilt að nota teardown_request, 725 00:38:28,252 --> 00:38:30,460 nema þú viljir gera eitthvað, sérstaklega öðruvísi 726 00:38:30,460 --> 00:38:31,470 um er að ræða villu. 727 00:38:31,470 --> 00:38:35,122 En bara til að loka gagnagrunn, hvort sem það tekst eða ef það tekst ekki, 728 00:38:35,122 --> 00:38:37,080 við gerum að þú viljir aftengja úr gagnagrunninum. 729 00:38:37,080 --> 00:38:41,240 Svo það er kallað, db.close á db hlut. 730 00:38:41,240 --> 00:38:43,740 >> Takið eftir að teardown_request tekur í undantekning. 731 00:38:43,740 --> 00:38:46,781 Svo er hægt að athuga hvort það væri í raun Villa kom upp þegar það var lokað, 732 00:38:46,781 --> 00:38:49,390 en hér, vonandi, það eru ekki allt fullt af villum, 733 00:38:49,390 --> 00:38:52,720 þannig að við erum bara svona að hunsa það. 734 00:38:52,720 --> 00:38:55,990 >> Okay, og restin af því er ekki svo slæmt. 735 00:38:55,990 --> 00:39:02,240 Svo, þegar við förum á heimasíðu, við veitt þetta heim.html Snið 736 00:39:02,240 --> 00:39:03,490 sem mun opna. 737 00:39:03,490 --> 00:39:06,240 Skarðið er í færslu jöfn, og hvað þetta 738 00:39:06,240 --> 00:39:10,260 gerir er, muna að við höfum þessa færslu fyrirmynd, þannig að við velja allar færslur, 739 00:39:10,260 --> 00:39:13,890 og þá annað sem þú getur gert, þú getur tilgreint HVAR ákvæði, 740 00:39:13,890 --> 00:39:16,910 Hér getur þú skilgreint panta af, og svo við tökum 741 00:39:16,910 --> 00:39:18,820 allt efni sem fá valið, og þá 742 00:39:18,820 --> 00:39:22,590 við pantað þá með því post.date.descending. 743 00:39:22,590 --> 00:39:25,030 Og það mun tilgreina, þegar þeir koma í raun út, 744 00:39:25,030 --> 00:39:29,250 nýjasta einn verður mjög fyrstur einn. 745 00:39:29,250 --> 00:39:31,420 >> Og þá, fara við að í sem heim.html sniðmát, 746 00:39:31,420 --> 00:39:34,240 svo skulum opna raun upp sem Snið mjög fljótur, 747 00:39:34,240 --> 00:39:36,760 og taka a líta á hvernig það er að vinna. 748 00:39:36,760 --> 00:39:42,130 Og þetta er ekki mikill HTML, en vonandi getum við áherslu á Python. 749 00:39:42,130 --> 00:39:46,960 >> Svo er það tengill á bæta nýjum Post, og svo skilgreinir þetta leiðina 750 00:39:46,960 --> 00:39:51,580 innan flösku sem við skilgreina, sem er hérna. 751 00:39:51,580 --> 00:39:56,310 Þetta er ný staða leið, og við að skilgreina það upp hér. 752 00:39:56,310 --> 00:40:00,450 Og svo er að tengill sem mun þá fara þeirri leið innan kolbu miðlara. 753 00:40:00,450 --> 00:40:03,820 >> The fleiri áhugaverður hlutur er þetta fyrir lykkju hér. 754 00:40:03,820 --> 00:40:07,685 Þannig að við tilgreina að þetta eftir breytu sem 755 00:40:07,685 --> 00:40:09,560 var samþykkt inn í render_template virka, 756 00:40:09,560 --> 00:40:13,550 fyrir hvert staða í færslur hlutur sem fær staðist í. 757 00:40:13,550 --> 00:40:16,600 Við viljum að prenta út staða titill, í H1, 758 00:40:16,600 --> 00:40:21,930 og þá fyrir neðan, við viljum prenta út staða texta í texta. 759 00:40:21,930 --> 00:40:25,710 >> Og hér, getum við í raun hringja í Python virka, 760 00:40:25,710 --> 00:40:35,130 svo við getum hringt strftime, ST-RF-tími, og þú geta fara framhjá í sniði band 761 00:40:35,130 --> 00:40:37,064 sem þú vilt prenta gögnin út í. 762 00:40:37,064 --> 00:40:39,980 Svo það er nokkuð gott að þú getur reyndar kalla þetta Python aðgerð 763 00:40:39,980 --> 00:40:41,090 innan hér. 764 00:40:41,090 --> 00:40:44,370 Þú þarft ekki að gera snið á stjórnandi hlið, því í raun, 765 00:40:44,370 --> 00:40:47,770 forsníða dagsetningu er eitthvað sem þú vilt að takast á innan View. 766 00:40:47,770 --> 00:40:51,480 >> Og öll þessi prósent það er ekki frábær mikilvægt. 767 00:40:51,480 --> 00:40:55,270 Ef þú lítur upp skjöl fyrir strftime virka í Python, 768 00:40:55,270 --> 00:40:57,040 það skilgreinir allt þetta hluti, en það er 769 00:40:57,040 --> 00:40:59,190 hvernig, þegar við vorum að leita á heimasíðu hér, 770 00:40:59,190 --> 00:41:04,440 það snið þetta með a ágætur dagsetning og það skilgreinir AM eða PM, 771 00:41:04,440 --> 00:41:09,410 en venjulega, ef við ekki hafa þetta hér, 772 00:41:09,410 --> 00:41:14,024 þú munt sennilega fá sumir sorp dagsetning sem ekki líta mjög vel út. 773 00:41:14,024 --> 00:41:15,940 Og þá erum við tilgreina post.text, og ég gat 774 00:41:15,940 --> 00:41:19,460 hefur sett nokkra lína brýtur hér, bara 775 00:41:19,460 --> 00:41:21,820 að setja nokkrar bil milli hverja færslu. 776 00:41:21,820 --> 00:41:26,270 >> Svo held ég að mikilvægast hlutur í þessu dæmi, 777 00:41:26,270 --> 00:41:28,697 er að þú getur notað þetta til hliðar. 778 00:41:28,697 --> 00:41:30,780 Og þetta er hliðstætt hlutir sem þú getur gert í PHP. 779 00:41:30,780 --> 00:41:32,905 Þú getur iterate gegnum, allt fær staðist í, 780 00:41:32,905 --> 00:41:36,719 og svo, í stað þess að þurfa að gera afrita / líma, afrita / líma alla HTML, 781 00:41:36,719 --> 00:41:40,010 þú verður bara að skrifa það einu sinni, og þá þú getur iterate yfir allar færslur. 782 00:41:40,010 --> 00:41:41,510 >> Og þetta er eitthvað algengt að þú vilt 783 00:41:41,510 --> 00:41:44,510 að gera, þegar þú ert með mikið af gögnum, er að fyrir allt í gögnum, 784 00:41:44,510 --> 00:41:48,370 þú vilt gera svipað hlutur. 785 00:41:48,370 --> 00:41:51,690 Og þá, bara muna, að þegar þér langar að prenta út eitthvað sérstaklega 786 00:41:51,690 --> 00:41:54,780 í HTML, þú nota tvöfaldur axlabönd hér, 787 00:41:54,780 --> 00:41:57,820 en svo þegar þú vilt tilgreina einhverjar upplýsingar um ástand, 788 00:41:57,820 --> 00:42:02,430 eða um for lykkju, þú nota prósent krappi. 789 00:42:02,430 --> 00:42:08,730 >> Svo, fara aftur til Python númer, svo útskýrir að 790 00:42:08,730 --> 00:42:12,242 hvað er að gerast í helstu leið, þegar við förum þangað, 791 00:42:12,242 --> 00:42:14,450 það birtir bara allt innlegg, en þá er spurningin 792 00:42:14,450 --> 00:42:17,440 er, hvernig fáum við í raun innlegg í gagnagrunninum, sem 793 00:42:17,440 --> 00:42:18,970 er svolítið meira spennandi. 794 00:42:18,970 --> 00:42:23,960 >> Svo, þegar þú smellir á New Post tengilinn, sem við sáum hér, 795 00:42:23,960 --> 00:42:26,000 það beinir þér að þessu formi. 796 00:42:26,000 --> 00:42:29,580 Og það er bara einfalt símtal til render_template virka, sem síðan 797 00:42:29,580 --> 00:42:32,110 fer í nýja stöðu HTML formi. 798 00:42:32,110 --> 00:42:36,212 Svo skulum taka a líta á það. 799 00:42:36,212 --> 00:42:37,420 Svo er þetta frekar einfalt. 800 00:42:37,420 --> 00:42:45,110 Það hefur a einfaldur HTML formi sem mun líta svolítið kunnugleg, 801 00:42:45,110 --> 00:42:47,380 byggt á því formi í CS50 fjármálaráðherra. 802 00:42:47,380 --> 00:42:49,940 Og svo, við að skilgreina hér, aðgerð. 803 00:42:49,940 --> 00:42:52,435 Og hér, ef þú ert að vinna PHP, venjulega, það 804 00:42:52,435 --> 00:42:55,930 væri eitthvað eins og, create.PHP, en hér 805 00:42:55,930 --> 00:42:59,960 við að skilgreina í raun leið innan kolbu miðlara. 806 00:42:59,960 --> 00:43:02,520 Og svo, þetta leið samsvarar að búa til leið 807 00:43:02,520 --> 00:43:05,680 sem við höfum hér, sem við munum fara inn í annað. 808 00:43:05,680 --> 00:43:07,630 >> Og svo, að tilgreina við að það er staða aðferð, 809 00:43:07,630 --> 00:43:09,820 vegna þess að við viljum senda þetta form gagna, og yfirleitt 810 00:43:09,820 --> 00:43:12,945 þegar þú ert að senda gögn úr formi, þú might vilja til að nota post beiðni, 811 00:43:12,945 --> 00:43:15,760 bara svo þú endir ekki upp með þessum stóru, ómeðfærilegur vefslóð. 812 00:43:15,760 --> 00:43:18,970 En þú getur líka notað GET beiðni, og gefa það með breytilegum venja, 813 00:43:18,970 --> 00:43:21,170 en fyrir formum, það er gott að staða beiðni hér. 814 00:43:21,170 --> 00:43:24,620 Og svo þá, rétt eins og þú myndi gera með HTML og PHP, 815 00:43:24,620 --> 00:43:28,420 þú getur tilgreint þessar texta inntak, og þú getur tilgreint nafn þeirra, 816 00:43:28,420 --> 00:43:33,490 og það er nafn sem mun fá staðist í beiðni hlut innan flösku. 817 00:43:33,490 --> 00:43:36,960 >> Og þá höfum við a Senda hnappinn sem segir Post. 818 00:43:36,960 --> 00:43:40,760 Og hér, Post er nafn af the hnappur, því það er blogg, 819 00:43:40,760 --> 00:43:42,700 en hér, eftir er óskað aðferð. 820 00:43:42,700 --> 00:43:47,060 Þannig að þeir eru sama orðið en í raun ótengd. 821 00:43:47,060 --> 00:43:48,460 Já 822 00:43:48,460 --> 00:43:54,800 >> Fara aftur til Python kóða, þegar við kallað búa aðferð, 823 00:43:54,800 --> 00:43:57,702 taka hér sem þú getur reyndar tilgreina innan leiðinni 824 00:43:57,702 --> 00:44:00,650 Beiðnin aðferðir sem þú vilt taka, 825 00:44:00,650 --> 00:44:04,770 og svo hér, tilgreina ég að ég aðeins vilja til að samþykkja Post aðferð. 826 00:44:04,770 --> 00:44:09,800 Svo, ef ég reyni reyndar að heimsækja síðuna beint, sem er með því að nota GET beiðni, 827 00:44:09,800 --> 00:44:11,700 það verður að segja mér "Aðferð ekki leyfð." 828 00:44:11,700 --> 00:44:15,840 >> Og svo, hefur þú síður, tegund af eins þetta skapa síðu, sem ég er bara 829 00:44:15,840 --> 00:44:20,192 í raun að nota sem leið til það form til að fá fram, 830 00:44:20,192 --> 00:44:22,900 þú getur tilgreint að þú ert ekki vilja fólk til að vera fær um að fara þangað 831 00:44:22,900 --> 00:44:25,650 beint í gegnum GET beiðni, eða ef þú vildi ekki, 832 00:44:25,650 --> 00:44:28,580 fyrir sumir ástæða, a Post beiðni, þú gætir bara tilgreina fá hér, 833 00:44:28,580 --> 00:44:32,720 en í þessu dæmi, við bara vilt Post beiðni til að fara út. 834 00:44:32,720 --> 00:44:38,700 >> Svo, þegar create_post er kallað, þegar við heimsókn sem um Post beiðni, 835 00:44:38,700 --> 00:44:43,600 þegar þú ferð að tiltekin leið, það er þetta beiðni hlut, 836 00:44:43,600 --> 00:44:46,640 og við þurftum að flytja beiðnir á mjög toppur, 837 00:44:46,640 --> 00:44:49,640 en það er þessi beiðni hlutur sem fær staðist í, 838 00:44:49,640 --> 00:44:53,210 og þú getur fengið aðgang að formið, sem mun sjálfkrafa fá fyllt 839 00:44:53,210 --> 00:44:55,070 þegar þú sendir beiðni frá formi. 840 00:44:55,070 --> 00:44:56,990 >> Og þá, það sem ég held æðislegt, er 841 00:44:56,990 --> 00:45:02,840 að form mótmæla að fá samþykkt í, er bara Python orðabók sem 842 00:45:02,840 --> 00:45:10,560 inniheldur, ef þú access-- svo hér, að láta mig draga upp HTML hliðina á henni, bara 843 00:45:10,560 --> 00:45:17,670 svo þú getur haft það sem tilvísun, já, svo 844 00:45:17,670 --> 00:45:21,060 nöfn sem við tilgreinir hér hvað varðar ýmis, svo 845 00:45:21,060 --> 00:45:23,900 titill og textinn við þá bara að nota þá hérna 846 00:45:23,900 --> 00:45:27,110 vísitölur í formi gagna. 847 00:45:27,110 --> 00:45:28,950 Svo er það frábær þægilegt. 848 00:45:28,950 --> 00:45:33,320 >> Svo þá við köllum post.create, sem mun búa til og setja sjálfkrafa inn 849 00:45:33,320 --> 00:45:36,850 þessi nýja staða hlut í gagnagrunninn. 850 00:45:36,850 --> 00:45:40,690 Og ég held að þetta skapa virka hér er mjög flott dæmi um hvernig 851 00:45:40,690 --> 00:45:44,900 öflugur flösku er og vinna með þetta, vegna þess að ef þú varst að gera eitthvað 852 00:45:44,900 --> 00:45:48,660 í PHP, þú gætir þurft að gera a einhver fjöldi af mat, 853 00:45:48,660 --> 00:45:51,730 þú þyrftir að þá koma til gagnasafn tengsl, 854 00:45:51,730 --> 00:45:55,210 þú þyrftir að þá framkvæma SQL fyrirspurn, 855 00:45:55,210 --> 00:45:59,550 en hér höfum við bara þetta gott post.create, sem við getum þá bara 856 00:45:59,550 --> 00:46:01,520 fá upplýsingar út af beiðni hlut, 857 00:46:01,520 --> 00:46:05,370 og þá fara framhjá það í nýja senda sem við erum að skapa. 858 00:46:05,370 --> 00:46:07,850 >> Og þá, mjög síðustu sem við viljum gera, 859 00:46:07,850 --> 00:46:09,630 er að beina notandi aftur til heimilisins. 860 00:46:09,630 --> 00:46:13,020 Og svo við notum þetta Flaskan endurvísa virka. 861 00:46:13,020 --> 00:46:17,770 Og eitthvað sem við höfðum ekki séð áður, var þetta URL virka. 862 00:46:17,770 --> 00:46:21,970 Svo URL fyrir virka leyfir þú fara í raun nafn 863 00:46:21,970 --> 00:46:26,090 falls í Python númerið þitt, frekar en þeirri sérstöku aðferð 864 00:46:26,090 --> 00:46:26,720 að það er á. 865 00:46:26,720 --> 00:46:32,107 >> Svo ég gæti hafa bara eins auðveldlega vísað notanda að rista, 866 00:46:32,107 --> 00:46:37,050 sem myndi senda hana aftur heim, en nota slóðina virka er gott, 867 00:46:37,050 --> 00:46:39,990 vegna þess að ef þú breytir staðsetningu þar sem hlutirnir eru, 868 00:46:39,990 --> 00:46:44,080 þannig að við skulum segja að ég breyta heim til að vera á / home staðinn, 869 00:46:44,080 --> 00:46:47,040 þetta myndi samt svo aftur / heimili, því í raun fer og lítur upp 870 00:46:47,040 --> 00:46:50,770 nafn virka, og það mun gefa þér aftur slóðina fyrir það. 871 00:46:50,770 --> 00:46:52,490 >> Svo, eiginlega á forsendu að þú ert 872 00:46:52,490 --> 00:46:55,489 líklegri til að breyta þar sem hlutirnir eru, en nöfn virka. 873 00:46:55,489 --> 00:46:58,840 Þú getur notað þetta virkilega gott URL fyrir virka. 874 00:46:58,840 --> 00:47:02,470 Og eitt að vera meðvitaðir um það er svolítið erfiður, 875 00:47:02,470 --> 00:47:05,750 er að þú heldur að þú gætir bara kalla áframsenda á vefslóðina fyrir, 876 00:47:05,750 --> 00:47:10,600 en í raun öll leiðum hafa til að fara aftur einhverskonar texta og HTML, 877 00:47:10,600 --> 00:47:14,360 svo þú ert í raun að skila endurvísa hringja. 878 00:47:14,360 --> 00:47:18,379 Annars verður þú að fá eitthvað ógilt um ekki aftur a band, 879 00:47:18,379 --> 00:47:21,420 vegna allir þessir hafa til að fara aftur HTML sem þú vilt í raun að gera. 880 00:47:21,420 --> 00:47:26,980 >> Og svo, þegar þú kallar áframsenda, það beinir þér á síðunni, 881 00:47:26,980 --> 00:47:30,270 en það skilar í raun HTML þú þarft að framkvæma þessi endurvísa. 882 00:47:30,270 --> 00:47:34,430 883 00:47:34,430 --> 00:47:37,110 Fara aftur á heimasíðuna. 884 00:47:37,110 --> 00:47:39,200 Þannig að við höfum þessa tvo mismunandi skoðanir. 885 00:47:39,200 --> 00:47:40,132 Við höfum á heimili skoðun. 886 00:47:40,132 --> 00:47:41,590 Eða, held ég að ég ætti að segja sniðmát. 887 00:47:41,590 --> 00:47:44,190 Við höfum þessa tvo sniðmát, Heimilið sniðmát sem 888 00:47:44,190 --> 00:47:48,500 birtir öll innlegg okkar, og þá höfum við þessa auglýsingu hlutur, 889 00:47:48,500 --> 00:47:52,970 og þegar þú smellir á færslu, fer það að nýrri leið innan flösku, 890 00:47:52,970 --> 00:47:55,920 en það leið ekki endilega hafa samsvarandi sniðmát. 891 00:47:55,920 --> 00:47:59,290 892 00:47:59,290 --> 00:48:01,560 Þú þarft ekki að sjá neitt, en þú getur samt 893 00:48:01,560 --> 00:48:04,090 hafa þetta verk að fara á bak við tjöldin. 894 00:48:04,090 --> 00:48:07,450 Og þá þú fá vísað Aftur til heimasíðuna. 895 00:48:07,450 --> 00:48:12,230 Og örugglega, það er auðvelt að vinna í sumum ágætur CSS inn í sniðmát 896 00:48:12,230 --> 00:48:15,580 og gera þetta líta mikið betur, en allar helstu rökfræði 897 00:48:15,580 --> 00:48:18,590 er það í Python. 898 00:48:18,590 --> 00:48:20,020 >> Einhverjar spurningar um því dæmi? 899 00:48:20,020 --> 00:48:22,760 Ég veit að það eru fullt af mismunandi hlutir að gerast þar, 900 00:48:22,760 --> 00:48:25,341 a einhver fjöldi af hlutur sem við höfðum ekki séð áður, en eins og allt. 901 00:48:25,341 --> 00:48:25,840 Já. 902 00:48:25,840 --> 00:48:28,346 >> Áhorfendur 1: Þarf að gera neitt sérstakt að skrúbba gögn sem er 903 00:48:28,346 --> 00:48:29,600 koma frá formi? 904 00:48:29,600 --> 00:48:31,109 Ég tók eftir að þú sagðir "skapað" 905 00:48:31,109 --> 00:48:33,900 EZRA Zigmond: Já, svo er það reyndar, það er mjög góður punktur. 906 00:48:33,900 --> 00:48:36,350 Svo spurningin var, er það þarf að athuga og ganga úr skugga um 907 00:48:36,350 --> 00:48:39,190 að gögnin séu í gildi, og gera hvers konar hreinsun 908 00:48:39,190 --> 00:48:41,840 til að tryggja að það sé gilt, því eins og þú getur séð hér, 909 00:48:41,840 --> 00:48:42,660 Ég ætla ekki að gera það. 910 00:48:42,660 --> 00:48:48,140 Svo skulum sjá hvað gerist ef ég skrifa eitthvað autt. 911 00:48:48,140 --> 00:48:51,190 Svo, það verður í raun bara gera auður staða og fylla í DateTime. 912 00:48:51,190 --> 00:48:55,990 >> Svo í raun, myndir þú sennilega langar að gera eitthvað eins og, 913 00:48:55,990 --> 00:49:04,749 kannski tilgreina ef titill er jafn tóman streng, þá ekki gera þetta. 914 00:49:04,749 --> 00:49:07,290 Eða, gera bara það ef titill er ekki jafn tómur strengur. 915 00:49:07,290 --> 00:49:10,330 Svo það er í raun ekki sjálfkrafa gæta þess hreinsun 916 00:49:10,330 --> 00:49:12,820 fyrir þig, svo þú þarft samt að gera það. 917 00:49:12,820 --> 00:49:14,330 Já, góð spurning. 918 00:49:14,330 --> 00:49:18,497 >> Áhorfendur 2: Er það kjarr fyrir framhald innspýtingu? 919 00:49:18,497 --> 00:49:19,890 Veistu? 920 00:49:19,890 --> 00:49:22,830 >> EZRA Zigmond: Vonandi Peewee gerir það. 921 00:49:22,830 --> 00:49:25,830 Ég held að það myndi vissulega vera nokkuð slæmt bókasafn ef það gerði það ekki. 922 00:49:25,830 --> 00:49:29,511 923 00:49:29,511 --> 00:49:32,690 Ég veit ekki nákvæmlega. 924 00:49:32,690 --> 00:49:34,820 Ég myndi þurfa að líta á fyrirspurn sem það mynda. 925 00:49:34,820 --> 00:49:38,980 Ég held að ef ég slóst í blogg sem eins konar leit 926 00:49:38,980 --> 00:49:46,370 eins og SQL innspýting árás, eitthvað eins og þetta, ef þetta 927 00:49:46,370 --> 00:49:49,370 er eins og lykilorðsreitinn eða eitthvað, þú gætir gert eitthvað svona. 928 00:49:49,370 --> 00:49:53,410 >> Ég held að mun enn fá bókstaflega staða, 929 00:49:53,410 --> 00:49:59,200 en ég held að Peewee er að gera einhvers konar hreinsun á gögnum 930 00:49:59,200 --> 00:50:01,680 áður en það keyrir í raun það. 931 00:50:01,680 --> 00:50:04,510 >> Áhorfendur 1: Það texti reitur er sem ætlað er að taka texta, ekki satt? 932 00:50:04,510 --> 00:50:05,710 >> EZRA Zigmond: Já, er það. 933 00:50:05,710 --> 00:50:06,465 Já. 934 00:50:06,465 --> 00:50:09,590 Þannig að ég held að allir af, þannig að þetta er rétt hegðun, sem mun gera það, 935 00:50:09,590 --> 00:50:12,170 en ég held að PEEWEE vonandi þýðir ekki 936 00:50:12,170 --> 00:50:13,780 einhvers konar vernd á enda þeirra. 937 00:50:13,780 --> 00:50:16,090 Og ef þú vildir tvöfaldur stöðva það, það 938 00:50:16,090 --> 00:50:19,530 eru leiðir þegar þú búa fyrirspurn. 939 00:50:19,530 --> 00:50:22,622 svo þú þarft ekki að framkvæma það beint. 940 00:50:22,622 --> 00:50:24,330 Ég myndi þurfa að taka líta á gögnum, 941 00:50:24,330 --> 00:50:27,930 en þú getur raunverulega skoða SQL sem það er að búa, 942 00:50:27,930 --> 00:50:30,840 og taka a líta á það, og gera viss um að það leki hluti. 943 00:50:30,840 --> 00:50:33,700 >> Önnur ástæða fyrir því að þú gætir vilja til að líta á SQL 944 00:50:33,700 --> 00:50:37,920 sem Peewee er outputting, er ef það virðist vera að fara mjög hægt, 945 00:50:37,920 --> 00:50:41,090 þú getur að líta og sjá hvað það er í raun að gera, því það er stundum 946 00:50:41,090 --> 00:50:44,670 auðvelt að tilviljun bæta í, hvernig þú skrifar það, 947 00:50:44,670 --> 00:50:47,880 þú getur tilviljun hafa það velja allt gagnasafn fyrst, 948 00:50:47,880 --> 00:50:50,230 og þá gera einhvers konar aðgerð á að þegar þú virkilega 949 00:50:50,230 --> 00:50:51,320 ætlað til að velja undirsvið. 950 00:50:51,320 --> 00:50:53,560 >> Og svo, ef hlutirnir eru ekki alveg að fara rétt, 951 00:50:53,560 --> 00:50:57,300 það er gott að taka a líta á the beiðni sem er í raun að fá mynda. 952 00:50:57,300 --> 00:50:57,800 Já. 953 00:50:57,800 --> 00:51:02,100 >> Áhorfendur 2: Þegar þú byrjaðir fyrst, þú setur í höfn eins og 5000. 954 00:51:02,100 --> 00:51:02,904 >> EZRA Zigmond: Já. 955 00:51:02,904 --> 00:51:06,070 Áhorfendur 2: Er sjálfgefið með Peewee, eða er það eitthvað sem þú getur breytt? 956 00:51:06,070 --> 00:51:10,870 EZRA Zigmond: Já, svo höfn er sjálfgefið með flösku. 957 00:51:10,870 --> 00:51:13,061 Ef þú keyrir það án tilgreina neitt, 958 00:51:13,061 --> 00:51:14,310 það vilja á sjálfvirkan hátt gera það. 959 00:51:14,310 --> 00:51:16,060 Ég tel, að ég myndi þurfa að tvöfalda athuga þetta, 960 00:51:16,060 --> 00:51:19,130 en þú getur tilgreint að í app.run, Ég held að þú getur gert eitthvað eins og: 961 00:51:19,130 --> 00:51:19,629 höfn = 8080. 962 00:51:19,629 --> 00:51:22,375 963 00:51:22,375 --> 00:51:23,750 Við skulum gefa það a reyna raunverulegur fljótur. 964 00:51:23,750 --> 00:51:29,100 965 00:51:29,100 --> 00:51:32,230 Já, svo þú getur bara tilgreina höfn = 8080, og það mun keyra það þar, 966 00:51:32,230 --> 00:51:36,130 sem ég held að ef þú vildir að keyra það á IDE, ég hef ekki reynt þetta út, 967 00:51:36,130 --> 00:51:38,527 en ég held að ef þú hljóp það á höfn 8080, 968 00:51:38,527 --> 00:51:40,360 þú myndi líklega vera fær um að fá aðgang að þjóninum, 969 00:51:40,360 --> 00:51:41,870 bara eins og þú værir fyrir the website. 970 00:51:41,870 --> 00:51:44,390 >> Já, en það er auðvelt að breyta því ef þú 971 00:51:44,390 --> 00:51:48,540 hafa hvers konar eins höfn-áfram hlutir sem þú þarft að gera. 972 00:51:48,540 --> 00:51:50,410 >> Aðrar spurningar? 973 00:51:50,410 --> 00:51:50,916 Já? 974 00:51:50,916 --> 00:51:53,416 Áhorfendur 1: Svo sá ég í þínum módel sem, eins og þú getur, 975 00:51:53,416 --> 00:51:55,647 þú þarft að tilgreina gagnasafn fyrir hvern hlut. 976 00:51:55,647 --> 00:51:58,105 Ert þú skyldir vita, er að gera það mjög auðvelt ef þú 977 00:51:58,105 --> 00:52:03,210 hafa hellingur af SQLite gagnagrunna sem þú vilt nota fyrir einn vefur app, 978 00:52:03,210 --> 00:52:07,210 að þú getur bara tilgreina fullt af mismunandi sjálfur í líkan? 979 00:52:07,210 --> 00:52:11,620 >> EZRA Zigmond: Já, láttu mig opna það upp raunverulegur fljótur. 980 00:52:11,620 --> 00:52:17,570 Svo, þú ert að segja, ef þú vilt hafa fullt af mismunandi eitthvað, kannski 981 00:52:17,570 --> 00:52:22,670 eins og nemendur, að sumir Ástæðan, eitthvað svoleiðis? 982 00:52:22,670 --> 00:52:26,870 Já, þannig að ég held að þú samt, hvert líkanið 983 00:52:26,870 --> 00:52:30,652 þyrfti að enn hafa bara einn gagnagrunn sem honum er ætlað 984 00:52:30,652 --> 00:52:32,610 en ef þú vildir hafa mismunandi líkön sem 985 00:52:32,610 --> 00:52:35,818 hafa mismunandi hlutir gagnasafn úthlutað að það, þú gætir örugglega gert það. 986 00:52:35,818 --> 00:52:43,070 Svo, ef ég búið til nýtt, eitthvað eins og þetta, 987 00:52:43,070 --> 00:52:47,000 og nú er þetta nemandi sem lítur einkennilega eins og blogg, 988 00:52:47,000 --> 00:52:49,390 Ég gæti tilgreina að Gagnagrunnurinn er jafn db_2 hér. 989 00:52:49,390 --> 00:52:51,390 Svo held ég að er Helstu leiðin sem þú getur gert það. 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 Aðrar spurningar? 993 00:52:58,410 --> 00:53:02,170 >> Svo bara að klára upp smá bita, hér eru nokkrar leiðir, 994 00:53:02,170 --> 00:53:06,030 og þessar glærur verða settar á netinu svo þú getur raunverulega fá að þessum tenglum. 995 00:53:06,030 --> 00:53:08,500 Besta úrræði eru í raun handbókum flösku 996 00:53:08,500 --> 00:53:09,930 og PEEWEE sig. 997 00:53:09,930 --> 00:53:12,940 Þeir eru skrifuð mjög vel, held ég. 998 00:53:12,940 --> 00:53:18,180 Svo, flösku website er hér, og þeir hafa QuickStart leiðbeiningar sem 999 00:53:18,180 --> 00:53:20,710 mun ganga í gegnum svipað atriði til hvað ég gekk í gegnum, 1000 00:53:20,710 --> 00:53:23,560 en ef þú vilt hvers konar endurskoðun af því sem ég fór yfir, 1001 00:53:23,560 --> 00:53:26,200 eða þú hélst að ég útskýrði eitthvað í ruglingslegt hátt, 1002 00:53:26,200 --> 00:53:28,390 þeir hafa svipuð dæmi þar. 1003 00:53:28,390 --> 00:53:31,570 >> Peewee hefur skjöl, og þeir hafa QuickStart eitthvert 1004 00:53:31,570 --> 00:53:34,650 sem fer yfir helstu breytur sem þú vilt nota. 1005 00:53:34,650 --> 00:53:38,900 Svo, það sem ég talaði um með einstaka, og tilgreindar vanskila, 1006 00:53:38,900 --> 00:53:42,710 mismunandi tegundir af sviðum sem þú getur notað, þá myndi allt vera þar. 1007 00:53:42,710 --> 00:53:44,690 >> Einnig, ef þú ert með spurningar um Peewee, 1008 00:53:44,690 --> 00:53:47,530 og þú birta þær á stackoverflow, gaurinn sem gerði PEEWEE raun 1009 00:53:47,530 --> 00:53:49,500 fer á og svarar þeim stundum. 1010 00:53:49,500 --> 00:53:53,200 Ef þú ert vonandi spurningu, hann verður að vera fær um að svara henni, 1011 00:53:53,200 --> 00:53:54,867 vegna þess að hann skrifaði allt hlutur. 1012 00:53:54,867 --> 00:53:56,700 Ég held að það allt Mig langaði til að ná. 1013 00:53:56,700 --> 00:53:58,930 Takk fyrir að koma út. 1014 00:53:58,930 --> 00:54:02,688