1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:03,227 [MIZIK jwe] 3 00:00:03,227 --> 00:00:04,705 4 00:00:04,705 --> 00:00:05,830 EZRA Zigmond: Hi, tout moun. 5 00:00:05,830 --> 00:00:08,020 Mèsi pou vini soti jodi a. 6 00:00:08,020 --> 00:00:10,660 Seminè Sa a se "Piton Entènèt Apps ak Flask. " 7 00:00:10,660 --> 00:00:14,510 >> Se konsa, mwen pral yo dwe pale yon ti kras sou poukisa 8 00:00:14,510 --> 00:00:17,400 ou ta ka vle itilize Flask fè apps entènèt ak Piton, kòm opoze 9 00:00:17,400 --> 00:00:21,556 nan kèk lòt cadres yo deyò, tankou Django, ki se pi byen li te ye la-. 10 00:00:21,556 --> 00:00:24,330 Subtitles an se "ak peewee, "ki se yon bagay 11 00:00:24,330 --> 00:00:27,250 nou ap ale nan pale sou fason yo kominike avèk baz done SQL. 12 00:00:27,250 --> 00:00:29,610 Li fè li vrèman bèl. 13 00:00:29,610 --> 00:00:32,390 >> Se konsa, isit la nan jis yon fatige rapid nan sa m 'vle ale sou. 14 00:00:32,390 --> 00:00:35,520 Se konsa, premye, jis yon sèl glise ki k ap pase yo dwe QuickStart, 15 00:00:35,520 --> 00:00:38,530 ki se kòman ou kapab jwenn tout bagay mete kanpe sou òdinatè ou. 16 00:00:38,530 --> 00:00:41,760 Mwen pral yo dwe demontre sa a sou Mac machin lokal mwen, 17 00:00:41,760 --> 00:00:45,220 jis paske sa a, se kote mwen te fè sa a anvan, mwen se pi konfòtab ak li, 18 00:00:45,220 --> 00:00:48,510 men sa a se definitivman posib sou CD50 IDE a. 19 00:00:48,510 --> 00:00:52,050 >> Se konsa, apre sa, mwen vle prezante sa Flask se, 20 00:00:52,050 --> 00:00:55,089 ak konvenk ou poukisa ou ta dwe sèvi ak li nan plas an premye. 21 00:00:55,089 --> 00:00:56,880 Lè sa a, Mwen pral ba yon rapid egzanp sou sa ou 22 00:00:56,880 --> 00:01:00,550 ka fè nan Flask, se yon egzanp rapid nan sa ki ou ka fè nan peewee, 23 00:01:00,550 --> 00:01:05,010 ak Lè sa a mwen pral montre w yon pi plis konplè aplikasyon egzanp 24 00:01:05,010 --> 00:01:07,520 ke mwen mete tèt yo ansanm ke nou ka mache nan ansanm. 25 00:01:07,520 --> 00:01:10,040 >> Lè sa a, finalman, nan dènye glise nan, mwen gen 26 00:01:10,040 --> 00:01:12,730 kèk nan resous ke ou gade a sou entènèt pou plis enfòmasyon. 27 00:01:12,730 --> 00:01:15,560 Sa a se pa yon konplè leson patikilye sou kouman yo sèvi ak Flask. 28 00:01:15,560 --> 00:01:18,140 Apre sa, mwen pral espere yo kite kèk tan pou kesyon. 29 00:01:18,140 --> 00:01:21,050 Nenpòt moun ki ap gade lokalman, jis tankou, rele soti nan mitan an 30 00:01:21,050 --> 00:01:22,340 si ou gen nenpòt kesyon. 31 00:01:22,340 --> 00:01:27,150 >> Se konsa, rapid bagay enstalasyon, si ou vle yo swiv ansanm, 32 00:01:27,150 --> 00:01:29,240 oswa si ou vle jwenn sa a moute sou machin pwòp ou a, 33 00:01:29,240 --> 00:01:32,440 Mwen pral lè l sèvi avèk Piton 2.7.10. 34 00:01:32,440 --> 00:01:35,860 Flakon fè travay ak Piton 3, men mwen renmen 35 00:01:35,860 --> 00:01:38,660 lè l sèvi avèk Piton 2, paske gen nan kèk pakè Piton ki 36 00:01:38,660 --> 00:01:40,910 pa travay ak 3 ankò. 37 00:01:40,910 --> 00:01:44,800 Si ou te enstale pip, ki se yon manadjè pake Piton, 38 00:01:44,800 --> 00:01:48,190 Mwen panse ke si ou se Piton pi gran pase oswa egal a 2.7.9, 39 00:01:48,190 --> 00:01:52,220 ou genyen li enstale deja, li nan super fasil enstale pakè sa yo. 40 00:01:52,220 --> 00:01:54,990 >> Ou ka enstale pip Flakon, pip enstale peewee, 41 00:01:54,990 --> 00:01:58,600 anjeneral ou gen kouri sudo jis se konsa ke autorisations yo travay deyò. 42 00:01:58,600 --> 00:02:01,080 Epi, si w ap itilize yon super fin vye granmoun vèsyon an Piton, 43 00:02:01,080 --> 00:02:05,100 Mwen rekòmande à Piton ou, oswa lè l sèvi avèk EasyInstall yo enstale pip. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 Se konsa, kesyon an pwochen se, ki sa ki Flask? 46 00:02:11,120 --> 00:02:13,280 Apre sa, mwen devine, premye yon kesyon ki rezonab Map mande mwen 47 00:02:13,280 --> 00:02:15,585 pou yon tan long se, ki sa ki yon app entènèt? 48 00:02:15,585 --> 00:02:17,960 Paske sa a, se yon mo ke mwen panse yo jete nan yon lot 49 00:02:17,960 --> 00:02:19,240 ke mwen pa t 'reyèlman konnen. 50 00:02:19,240 --> 00:02:22,340 Apre sa, mwen panse ke pi bon an egzanp nan sa ki yon app entènèt se, 51 00:02:22,340 --> 00:02:26,960 vrèman se CS50 Finans, kote li pa vrèman jis yon sit entènèt, 52 00:02:26,960 --> 00:02:29,320 men li la yon bagay ke ou te kapab sòt de kominike avèk yo. 53 00:02:29,320 --> 00:02:31,736 Gen kont itilizatè yo ak tout kalite bagay diferan. 54 00:02:31,736 --> 00:02:35,010 Se konsa, kote egzakteman ou trase la liy ant sa ki se yon sit entènèt, 55 00:02:35,010 --> 00:02:38,780 ak sa ki yon app entènèt, se sòt de abitrè, men mwen devine lide a, 56 00:02:38,780 --> 00:02:42,110 li nan yon bagay pi plis pase yon sit entènèt ak li nan yon aplikasyon itil. 57 00:02:42,110 --> 00:02:46,081 >> Se konsa, Flask se yon kad pou fè apps entènèt lè l sèvi avèk Piton. 58 00:02:46,081 --> 00:02:48,330 Ak èspere ke, nan fen nan sa a, mwen pral konvenk ou 59 00:02:48,330 --> 00:02:52,210 ke ou ta ka aktyèlman ekri yon bagay tankou CS50 Finans lè l sèvi avèk Piton, ki mwen 60 00:02:52,210 --> 00:02:53,950 tankou yon bann pi bon pase PHP, pèsonèlman. 61 00:02:53,950 --> 00:02:57,320 >> Se konsa, Flask se yo, yo rele yon microframework, pa ki, 62 00:02:57,320 --> 00:02:59,800 yo vle di li trè senp, men rnouvlabl. 63 00:02:59,800 --> 00:03:02,980 Se konsa, li gen jis sa ou bezwen, men si ou vle plis karakteristik, 64 00:03:02,980 --> 00:03:04,522 li fasil yo pote yo nan. 65 00:03:04,522 --> 00:03:06,480 Men, jis paske li nan yon microframework, pa fè sa 66 00:03:06,480 --> 00:03:08,960 vle di ke li nan sèlman pou pwojè ki piti yo. 67 00:03:08,960 --> 00:03:12,590 Mwen gen yon ap mennen isit la ki di ke Obama itilize Flask nan 2012 68 00:03:12,590 --> 00:03:14,410 pou kanpay li sit entènèt, ki èspere ke, 69 00:03:14,410 --> 00:03:16,937 se yon bagay nan yon andòsman. 70 00:03:16,937 --> 00:03:18,770 Men, bagay la ke mwen reyèlman renmen sou Flask 71 00:03:18,770 --> 00:03:22,401 se ke, li pa vrèman fè nenpòt ki sòt de desizyon pou ou. 72 00:03:22,401 --> 00:03:24,150 Jis paske nou ap ap pale de apps entènèt, 73 00:03:24,150 --> 00:03:26,940 Mwen gen yo konpare l 'bay Ruby sou Ray ak django, tou de kote 74 00:03:26,940 --> 00:03:30,450 yo cadres gwo, men yo tou de fè sipozisyon 75 00:03:30,450 --> 00:03:33,600 sou ki jan ou vle kominike avèk baz done, 76 00:03:33,600 --> 00:03:36,900 ki jan ou vle prezante ou opinyon, e yo ap definitivman 77 00:03:36,900 --> 00:03:38,850 aspè bon nan sa. 78 00:03:38,850 --> 00:03:41,490 >> Pou egzanp, Ruby sou ray gen sistèm dosye aktif sa a, 79 00:03:41,490 --> 00:03:43,100 ki se yon reyèlman bon fason yo kominike avèk done, 80 00:03:43,100 --> 00:03:45,960 men si ou vle sèvi ak Ruby sou Ray, w ap sòt de mare nan sa. 81 00:03:45,960 --> 00:03:47,835 Men, avèk Flask, kòm mwen pral montre ou ak peewee, 82 00:03:47,835 --> 00:03:49,830 ou ka sèvi ak tou sa sòt nan baz done ou vle, 83 00:03:49,830 --> 00:03:53,980 epi ou ka jis rale ke nan kòm yon ekstansyon nan Flask. 84 00:03:53,980 --> 00:03:56,350 >> Se konsa, sa a, se poutèt sa mwen reyèlman tankou Flask, li nan ke li 85 00:03:56,350 --> 00:04:01,170 pa fè sipozisyon pou ou ki baze sou bagay sa yo ou pa bezwen vrèman. 86 00:04:01,170 --> 00:04:04,440 >> Se konsa, poukisa ou ta dwe itilize Flask? 87 00:04:04,440 --> 00:04:08,230 Avantaj ki genyen yo, li jis gen reyèlman karakteristik yo ki nwayo 88 00:04:08,230 --> 00:04:09,420 bati nan li ke ou bezwen. 89 00:04:09,420 --> 00:04:11,980 Se konsa, ou pa gen enkyete sou konprann yon pakèt antye de bagay sa yo 90 00:04:11,980 --> 00:04:13,175 ke ou pa reyèlman bezwen. 91 00:04:13,175 --> 00:04:15,060 Ou pa oblije gen enkyete sou sinon koupe karakteristik 92 00:04:15,060 --> 00:04:16,620 ke ou pa reyèlman bezwen. 93 00:04:16,620 --> 00:04:21,082 >> Epi, menm jan mwen mansyone, li nan super fasil yo ajoute nan ekstansyon de bagay sa yo 94 00:04:21,082 --> 00:04:21,790 ke ou bezwen. 95 00:04:21,790 --> 00:04:24,700 Kèk nan yo, Flask gen pwòp sipò yo pou li. 96 00:04:24,700 --> 00:04:28,230 Se konsa, gen nan yon bagay yo rele Flask admin, ki miwa ki admin 97 00:04:28,230 --> 00:04:32,060 panèl ki Django bay, sa ki ba ou yon fason bèl vizyèl 98 00:04:32,060 --> 00:04:33,405 yo administre sit entènèt ou. 99 00:04:33,405 --> 00:04:35,280 Men, ankò, si w ap fè yon bagay senp, 100 00:04:35,280 --> 00:04:39,550 pwobableman ou pa bezwen yon gwo admin panèl, se konsa mwen panse ke sa ka super bèl. 101 00:04:39,550 --> 00:04:45,940 Ak dezavantaj yo se, ki ou gen mwens pouvwa soti nan bwat la. 102 00:04:45,940 --> 00:04:49,660 Se konsa, lè w ou fèk louvri moute Flask, ak nan pwogram Piton ou, 103 00:04:49,660 --> 00:04:53,150 ou jis tape nan Flask enpòte *, oswa kèlkeswa sa, 104 00:04:53,150 --> 00:04:55,957 ou pa egzakteman jwenn tout karakteristik yo ki ou ta ka vle. 105 00:04:55,957 --> 00:04:58,540 Se konsa, ou gen nan plis klèman lis karakteristik yo ki ou vle. 106 00:04:58,540 --> 00:05:01,990 Se konsa, sa a, se yon sèl dezavantaj, men mwen panse ke pou bati ti entènèt 107 00:05:01,990 --> 00:05:04,782 apps tankou mwen pral yo dwe ki montre ou, sa a, se pa reyèlman yon pwoblèm. 108 00:05:04,782 --> 00:05:07,281 Ak sa ki bagay la pase a se sipoze vle di, ki se yon Typo, 109 00:05:07,281 --> 00:05:10,240 se ke gen mwens ofisyèl konvansyon pou kouman yo sèvi ak Flask, 110 00:05:10,240 --> 00:05:12,400 jis paske pa gen kòm anpil moun ki sèvi ak li pwofesyonèl 111 00:05:12,400 --> 00:05:13,191 konpare ak django. 112 00:05:13,191 --> 00:05:16,380 Se konsa, si ou gade yon bagay tankou, "ki jan m 'fè x" nan django, 113 00:05:16,380 --> 00:05:18,190 ou pral pwobableman jwenn li ankò. 114 00:05:18,190 --> 00:05:20,260 >> Genyen bon konsepsyon modèl ou ka itilize, 115 00:05:20,260 --> 00:05:22,660 Men, se avèk Flask, li nan sòt de al fè wout pwòp ou a, 116 00:05:22,660 --> 00:05:24,850 jis paske li nan yon bèl ti bibliyotèk. 117 00:05:24,850 --> 00:05:27,100 Se konsa, sa yo se nan dezavantaj, men mwen panse 118 00:05:27,100 --> 00:05:29,370 ke li la toujou yon bon bibliyotèk yo sèvi ak. 119 00:05:29,370 --> 00:05:31,909 >> Se konsa, kite yo jis so dwa nan Flask. 120 00:05:31,909 --> 00:05:34,200 Sa a se definitivman pa pral yo dwe yon leson patikilye konplè, 121 00:05:34,200 --> 00:05:37,480 men li la l 'ban nou yon lide pou konnen kijan pou estrikti bagay sa yo, 122 00:05:37,480 --> 00:05:40,790 e konsa ou santi ou alèz ale koupe ak gade nan dokiman an 123 00:05:40,790 --> 00:05:42,570 epi jwenn konnen plis. 124 00:05:42,570 --> 00:05:48,500 >> Se konsa, kite m 'louvri moute yon vrèman senp egzanp nan premye, 125 00:05:48,500 --> 00:05:50,737 epi montre w ki sa sa sanble, ak Lè sa a nou pral 126 00:05:50,737 --> 00:05:52,070 kraze li desann yon ti jan ti kras pi plis. 127 00:05:52,070 --> 00:05:56,160 >> Se konsa, sa a isit la, kite m 'jwenn li kouri. 128 00:05:56,160 --> 00:06:06,800 129 00:06:06,800 --> 00:06:09,750 Se konsa, mwen kounye a gen kouri aplikasyon mwen an. 130 00:06:09,750 --> 00:06:15,910 Mwen pral louvri moute Safari, ak li nan kouri sou lame lokal mwen. 131 00:06:15,910 --> 00:06:19,360 Se konsa, mwen jis ale nan fè sa-a pi gran. 132 00:06:19,360 --> 00:06:23,960 Men, localhost: 5000 133 00:06:23,960 --> 00:06:27,650 >> Se konsa, kounye a, tout bagay sa a fè se, lè ou vizite sit entènèt la, 134 00:06:27,650 --> 00:06:31,490 li simagri soti "Alo Flask," ki se pa super ki itil, 135 00:06:31,490 --> 00:06:34,630 men mwen panse ke li nan fre ki nan dosye sa a ti kras isit la, 136 00:06:34,630 --> 00:06:37,390 nou gen yon kouri sèvè wèb ki enprime soti yon bagay. 137 00:06:37,390 --> 00:06:40,500 Se konsa, kite a aktyèlman gade a kòd la pou yon dezyèm fwa, 138 00:06:40,500 --> 00:06:43,080 ak kraze li desann yon ti kras. 139 00:06:43,080 --> 00:06:45,260 Se gwosè a bon pou tout moun isit la? 140 00:06:45,260 --> 00:06:51,560 >> Se konsa, èspere ke, w ap yon ti jan konfòtab lè l sèvi avèk Piton. 141 00:06:51,560 --> 00:06:55,820 Mwen an konsideran ke nou ka gade nan Piton a ak li nan li. 142 00:06:55,820 --> 00:06:59,290 Si w gen nenpòt kesyon sou anyen, mwen ka ale tou sou sa. 143 00:06:59,290 --> 00:07:03,974 >> Se konsa, liy la premye se, ki soti nan Flask, nou enpòte, Flask ak yon kapital "F" 144 00:07:03,974 --> 00:07:06,140 ki se sòt de nan tout karakteristik kle ke ou bezwen. 145 00:07:06,140 --> 00:07:08,890 Chak fwa w ap ekri yon dosye epi itilize Flask, 146 00:07:08,890 --> 00:07:12,120 w ap ale nan vle enpòte sa, jis paske ki gen tout bagay prensipal la. 147 00:07:12,120 --> 00:07:15,400 Bagay nan pwochen nou fè sa, se nou rele sa a fonksyon Flask, jis 148 00:07:15,400 --> 00:07:19,270 yo kreye yon objè app, epi w ap toujou ale nan vle fè sa. 149 00:07:19,270 --> 00:07:25,960 >> Lè sa a,, sote desann nan la anba byen vit, pati sa a isit la se, 150 00:07:25,960 --> 00:07:28,760 'if_name _ == "_ main_"' ki se sòt de yon konvansyon Piton. 151 00:07:28,760 --> 00:07:32,750 Se konsa, sa a pral sèlman egzekite si ou kouri sa a ranpli dirèkteman lè l sèvi avèk Piton. 152 00:07:32,750 --> 00:07:36,040 Lè sa a, nou rele app.run, ki pral aktyèlman kòmanse app a prale. 153 00:07:36,040 --> 00:07:39,570 >> Se konsa, sa a, se estrikti a prensipal ki ou pral gen nan nenpòt aplikasyon Flask, 154 00:07:39,570 --> 00:07:48,550 se ou pral gen sa a app = Flask (_name_), ak Lè sa a app.run. 155 00:07:48,550 --> 00:07:54,940 >> Se konsa, de bagay sa yo ke mwen gen nan isit la, yo se sa ki nou rele wout. 156 00:07:54,940 --> 00:07:57,150 Se konsa, kite nan pale sou routage yon ti jan ti kras pi plis. 157 00:07:57,150 --> 00:07:58,430 Mwen pral tounen nan glise la. 158 00:07:58,430 --> 00:08:02,540 >> Se konsa, pi fondamantal nan konsèp nan Flask se routage. 159 00:08:02,540 --> 00:08:06,750 Lè li nan lide ki fè konnen ou bay fonksyon nan Piton 160 00:08:06,750 --> 00:08:11,280 nan adrès patikilye nan paj entènèt ou an. 161 00:08:11,280 --> 00:08:13,930 Se konsa, nenpòt lè ou vle yo kreye yon nouvo wout, 162 00:08:13,930 --> 00:08:16,500 ou sèvi ak sa a app.route @ fonksyon dekoratè. 163 00:08:16,500 --> 00:08:19,770 Se konsa, si ou se enkoni ak dekorasyon fonksyon nan Piton, 164 00:08:19,770 --> 00:08:24,160 li nan konsèp sa a ki pèmèt ou pran yon fonksyon 165 00:08:24,160 --> 00:08:26,800 ak antoure l 'ak yon lòt bagay. 166 00:08:26,800 --> 00:08:30,140 >> Se konsa, reyèlman, ki sa sa a fè dekoratè, se ke li pran fonksyon ki anba a li, 167 00:08:30,140 --> 00:08:33,409 epi li ajoute plis enfòmasyon nan li, men sa ki Flask aktyèlman 168 00:08:33,409 --> 00:08:37,480 fè ki rive se pa super enpòtan, men ki sa ki enpòtan, 169 00:08:37,480 --> 00:08:43,640 se ke anvan wout la, ou mete sa a app.route @, ak Lè sa 170 00:08:43,640 --> 00:08:46,480 adrès ki nan wout la, se konsa koupe a se sa nou 171 00:08:46,480 --> 00:08:48,360 wè lè nou jis louvri moute paj wèb la. 172 00:08:48,360 --> 00:08:49,580 Se konsa, sa a, se paj dakèy la. 173 00:08:49,580 --> 00:08:51,037 Se jis wout la koupe. 174 00:08:51,037 --> 00:08:52,370 Lè sa a, ou gen fonksyon sa a. 175 00:08:52,370 --> 00:08:54,453 Non a nan fonksyon an kapab tou sa ou vle. 176 00:08:54,453 --> 00:08:56,930 Li pa gen yo nesesèman gen fè ak wout la. 177 00:08:56,930 --> 00:08:59,440 Lè sa a,, tou sa retounen fonksyon an nan, 178 00:08:59,440 --> 00:09:01,730 fonksyon an ta dwe retounen yon kòd. 179 00:09:01,730 --> 00:09:03,740 Epi sa fisèl kapab gen HTML oswa nenpòt bagay, 180 00:09:03,740 --> 00:09:06,920 e ke se aktyèlman ki sa ki pral jwenn retounen nan navigatè entènèt ou kòm HTML, 181 00:09:06,920 --> 00:09:08,200 epi li pral rann sa. 182 00:09:08,200 --> 00:09:12,030 >> Se konsa, sa a se kòd la menm ki te soti nan egzanp lan 183 00:09:12,030 --> 00:09:16,430 ke mwen jis kouri, se konsa lè nou vizite koupe, li rele yon fonksyon Alo Mondyal, ki 184 00:09:16,430 --> 00:09:20,470 jis retounen yon fisèl, Alo Flask, ak ki vin enprime sou ekran an. 185 00:09:20,470 --> 00:09:27,290 >> Se konsa, gen nan yon lòt egzanp, ki se, lè ou vizite / hello, 186 00:09:27,290 --> 00:09:30,370 li simagri soti Alo Pawòl, ki ta dwe aktyèlman di, Bonjou Mondyal, 187 00:09:30,370 --> 00:09:32,010 men kite a pretann ke te entansyonèl. 188 00:09:32,010 --> 00:09:35,140 Se konsa nou rale ki moute reyèl rapid. 189 00:09:35,140 --> 00:09:41,290 >> Se konsa, si ou ale nan localhost / hello, li pral kounye a enprime yon lòt bagay. 190 00:09:41,290 --> 00:09:45,680 Se konsa, sa se sèlman yon egzanp rapid nan ki jan ou kapab kreye de wout diferan. 191 00:09:45,680 --> 00:09:50,630 >> Se konsa, byen lwen tèlman sa a se pa super ki itil, pa gen yon lot antye ou kapab fè, 192 00:09:50,630 --> 00:09:55,360 ou ta ka jis fè tout sa ak gen paj HTML diferan, 193 00:09:55,360 --> 00:09:58,000 ak ki lè ou ale nan yon patikilye paj li jis charj paj la. 194 00:09:58,000 --> 00:10:00,864 Se konsa, kite a wè kèk plis bagay sa yo itil ou kapab fè. 195 00:10:00,864 --> 00:10:03,780 Se konsa, yon sèl bagay ke ou ta ka gen remake nan egzanp lan ke mwen rale 196 00:10:03,780 --> 00:10:07,160 moute, se ke mwen te app.run (dbug = Vrè). 197 00:10:07,160 --> 00:10:09,580 Se konsa, ki sa sa a agiman dbug fè, se 198 00:10:09,580 --> 00:10:14,600 ke lè ou kouri sèvè entènèt ou an, lè w ap nan aplikasyon w lan, 199 00:10:14,600 --> 00:10:18,100 si ou chanje yon dosye, li pral otomatikman Reload sèvè a. 200 00:10:18,100 --> 00:10:21,160 >> Se konsa, ou pa gen aktyèlman yo rekòmanse Piton, ki se super itil. 201 00:10:21,160 --> 00:10:24,020 Mwen ka montre sa. 202 00:10:24,020 --> 00:10:26,960 Kite m 'rale moute kòd m' ak Typo a nan li, 203 00:10:26,960 --> 00:10:30,420 ak pretann te ke Typo mete ladan l ' entansyonèlman pou rezon édikatif. 204 00:10:30,420 --> 00:10:31,625 Se konsa, kite a ajoute sa a tounen nan. 205 00:10:31,625 --> 00:10:33,140 Se konsa, kounye li di Bonjou Mondyal la. 206 00:10:33,140 --> 00:10:34,410 Mwen pral sove li. 207 00:10:34,410 --> 00:10:36,540 Men, si nou rale tounen moute tèminal la, ou pral 208 00:10:36,540 --> 00:10:39,520 di ke li nan rekòmanse, paske li detekte yon chanjman, 209 00:10:39,520 --> 00:10:43,620 ak konsa koulye a lè nou Reload paj sa a, li pral enprime soti bagay ki kòrèk la. 210 00:10:43,620 --> 00:10:45,630 >> Se konsa, dbug se super itil pou sa. 211 00:10:45,630 --> 00:10:48,740 Epitou, si ou gen nenpòt sòt de yon aksidan, se konsa 212 00:10:48,740 --> 00:10:54,370 kite m 'fè sa-a aksidan aplikasyon pa gen li pa retounen yon fisèl. 213 00:10:54,370 --> 00:10:57,540 Se konsa, kite yo jis genyen li retounen Okenn pou kèk rezon. 214 00:10:57,540 --> 00:11:00,810 Lè sa a, lè m 'ale nan sa a paj, li pral jis aksidan, 215 00:11:00,810 --> 00:11:04,465 men sèvè a pa sèlman aksidan, li aktyèlman ba ou yon tounen super itil 216 00:11:04,465 --> 00:11:06,490 tras nan tout bagay ki ale mal. 217 00:11:06,490 --> 00:11:10,050 Ak sa ki nan vrèman bèl, se ke nan nenpòt ki etap nan sa a tounen tras, 218 00:11:10,050 --> 00:11:14,260 ou te kapab louvri moute yon entèaktif koki isit la, ak sòt de enprime konnen ki sa ki 219 00:11:14,260 --> 00:11:17,780 varyab ou vle pran yon gade nan. 220 00:11:17,780 --> 00:11:21,054 >> Se konsa, debogaj se reyèlman itil pou n ap kalkile konnen 221 00:11:21,054 --> 00:11:23,470 sa k ap pase ak ou sèvè, olye ke sèlman wè 222 00:11:23,470 --> 00:11:28,201 yon bagay nan PHP tankou yon entèn 500 erè sèvè, ki se super initil. 223 00:11:28,201 --> 00:11:30,700 Youn nan bagay yo dwe okouran de, se ke si ou mete app ou sou entènèt 224 00:11:30,700 --> 00:11:34,260 se konsa li a vizib nan piblik la, ou pa janm vle kite mòd dbug sou li a, 225 00:11:34,260 --> 00:11:37,320 paske moun ka aktyèlman sèvi ak sa konsole ke mwen 226 00:11:37,320 --> 00:11:39,150 te montre ou al touye abitrè kòd. 227 00:11:39,150 --> 00:11:42,120 >> Se konsa, yo ka enprime soti tankou nenpòt ki kòd sekrè ou gen nan la, 228 00:11:42,120 --> 00:11:44,755 yo ka gade nan egzakteman ki jan sit entènèt ou ap travay. 229 00:11:44,755 --> 00:11:46,630 Se konsa, li reyèlman itil pou fè tès, men toujou 230 00:11:46,630 --> 00:11:50,090 asire w ke w pran li soti anvan ou pibliye anyen sou entènèt. 231 00:11:50,090 --> 00:11:56,640 >> Se konsa, lè w ap itilize yon bagay tankou PHP, gen nan ide sa a 232 00:11:56,640 --> 00:11:58,920 ke ou ka pase enfòmasyon ant paj wèb 233 00:11:58,920 --> 00:12:03,620 pa mete enfòmasyon ki aktyèlman nan URL la, ki se yon demann JWENN, 234 00:12:03,620 --> 00:12:07,490 men nan Flask, ou ka aktyèlman fè yon bagay sòt de tankou sa yo, 235 00:12:07,490 --> 00:12:10,590 pa gen yon wout ki gen yon varyab kòm yon pati nan li. 236 00:12:10,590 --> 00:12:14,090 >> Se konsa, si ou gade nan sa a egzanp sou ekran an isit la, 237 00:12:14,090 --> 00:12:19,930 nou gen yon wout sa a, se ('/ alo /'), ak Se konsa, si w ap vizite 238 00:12:19,930 --> 00:12:23,790 / alo / yon bagay, ke yon bagay ki pral aktyèlman jwenn ranpli 239 00:12:23,790 --> 00:12:25,490 nan varyab la non. 240 00:12:25,490 --> 00:12:27,850 Apre sa, remake ke fonksyon an ki vini ak ki wout 241 00:12:27,850 --> 00:12:31,302 gen yo pran nan paramèt la non, se konsa ke li pral aktyèlman 242 00:12:31,302 --> 00:12:32,510 debarase pase nan fonksyon an. 243 00:12:32,510 --> 00:12:34,190 >> Lè sa a,, yon fwa w ap andedan nan ki fonksyon, 244 00:12:34,190 --> 00:12:36,420 ou ka trete ke tankou yon nòmal Piton varyab ★ 245 00:12:36,420 --> 00:12:39,650 ak pou lè sa a, li pral enprime soti Hello, epi li 246 00:12:39,650 --> 00:12:42,000 ap ranpli nan non lè l sèvi avèk kèk fòma fisèl. 247 00:12:42,000 --> 00:12:48,060 >> Se konsa, yo ajoute pati varyab nan yon routage, ou itilize bracket a ang regilye nèf semenn klas. 248 00:12:48,060 --> 00:12:51,220 Apre sa, opsyonèlman, ou ka itilize sa ki rele yon konvètisè. 249 00:12:51,220 --> 00:12:56,840 Se konsa, si ou mete sa a komantèr ak kolon an, 250 00:12:56,840 --> 00:13:00,015 ou ka presize ke li nan yon int, oswa yon flote, oswa chemen, 251 00:13:00,015 --> 00:13:01,640 epi li pral otomatikman konvèti sa. 252 00:13:01,640 --> 00:13:05,130 Ou kapab tou fè konvèsyon an nan fonksyon an Piton, 253 00:13:05,130 --> 00:13:09,710 jis lè l sèvi avèk yon jete, men pafwa si ou vle asire ke li nan yon int, 254 00:13:09,710 --> 00:13:12,080 ou ka mete sa règ konvèsyon nan la. 255 00:13:12,080 --> 00:13:15,930 >> Se konsa nou rale moute yon egzanp nan kèk règ varyab. 256 00:13:15,930 --> 00:13:21,480 Se konsa, isit la, sa a gen menm bagay la tou debaz estrikti ak nan soti nan Flask enpòte 257 00:13:21,480 --> 00:13:25,030 Flakon, app = flakon (_name_ la), ak Lè sa a li nan kouri nan fen an. 258 00:13:25,030 --> 00:13:28,050 Nou gen de sa yo diferan wout varyab isit la. 259 00:13:28,050 --> 00:13:29,900 Yonn nan premye, se yon sèl la ki mwen te montre 260 00:13:29,900 --> 00:13:34,230 nan glise la, ki te ke li jis pran nan yon non fisèl 261 00:13:34,230 --> 00:13:35,650 epi li pral enprime soti Hello, Non. 262 00:13:35,650 --> 00:13:41,410 >> Lè sa a, yo, dezyèm nan youn sèvi ak konvèsyon an. 263 00:13:41,410 --> 00:13:44,690 Se konsa, sa pral otomatikman konvèti li nan yon int, ak Lè sa double int a, 264 00:13:44,690 --> 00:13:46,150 epi enprime ki deyò. 265 00:13:46,150 --> 00:13:48,220 Epi, nou pa fè nenpòt ki sòt nan konvèsyon nan li 266 00:13:48,220 --> 00:13:49,594 paske Flask pran swen de sa. 267 00:13:49,594 --> 00:13:53,181 Se konsa nou jwenn sa a kouri. 268 00:13:53,181 --> 00:13:54,930 Lè ou gen yon flakon aplikasyon kouri, 269 00:13:54,930 --> 00:13:58,440 Ou ka kontwole-C soti nan li yo sispann kouri a sèvè. 270 00:13:58,440 --> 00:14:02,420 Lè sa a, mwen pral kouri varyab yo. 271 00:14:02,420 --> 00:14:11,740 >> Se konsa, kite a ale nan localhost / alo / Ezra ak èspere ke, sa a pral di alo m '. 272 00:14:11,740 --> 00:14:14,530 273 00:14:14,530 --> 00:14:20,310 >> Se konsa, li te pran nan non mwen, nan varyab la wout, epi li plen l 'nan isit la. 274 00:14:20,310 --> 00:14:23,950 Se konsa, mwen pral montre tou yon rapid egzanp sou double a. 275 00:14:23,950 --> 00:14:28,600 Se konsa, si ou ale nan / doub / 3, li pral enprime soti 6. 276 00:14:28,600 --> 00:14:31,440 Se konsa, sa te pran swen nan konvèsyon an pou nou. 277 00:14:31,440 --> 00:14:34,190 >> Se konsa, ou kapab tou fè l 'ak flote, ak yon bagay espesyal, 278 00:14:34,190 --> 00:14:37,530 si ou bezwen presize yon bagay tankou yon chemen, ki pèmèt li aksepte bar, 279 00:14:37,530 --> 00:14:39,155 men sa pa ta dwe anjeneral dwe yon pwoblèm. 280 00:14:39,155 --> 00:14:41,480 281 00:14:41,480 --> 00:14:43,820 Se konsa, lwen nou, toujou gen jis te retounen 282 00:14:43,820 --> 00:14:46,320 strings, ki se pa trè enteresan. 283 00:14:46,320 --> 00:14:48,730 >> Nou te kapab aktyèlman retounen literal HTML fisèl. 284 00:14:48,730 --> 00:14:54,322 Se konsa, nan Kòd la nou ka insert yon bagay tankou b-tag la fè li fonse, 285 00:14:54,322 --> 00:14:56,030 men pifò tan an ou pa aktyèlman vle 286 00:14:56,030 --> 00:14:58,420 yo dwe ekri kòd HTML nan kòd Piton ou yo. 287 00:14:58,420 --> 00:15:01,940 Li vin reyèlman sal, epi li pa yon bon moman. 288 00:15:01,940 --> 00:15:06,430 >> Flakon pèmèt nou separe soti nan HTML nan sa yo rele Modèl la, 289 00:15:06,430 --> 00:15:09,467 ak Se konsa, si w ap panse an tèm de modèl la mv 290 00:15:09,467 --> 00:15:11,550 ke w ap abitye ak, èspere ke, soti nan ap travay 291 00:15:11,550 --> 00:15:15,520 ak CS50 Finans yon ti jan, ou ka panse a dosye yo Piton 292 00:15:15,520 --> 00:15:19,430 tankou se te plis nan contrôleur a, kote yo kominike avèk tou sa 293 00:15:19,430 --> 00:15:20,970 done modèl ou ta ka genyen. 294 00:15:20,970 --> 00:15:24,900 >> Apre sa, lè sa a yo ap rele soti nan Pwen de vi yo, e pase enfòmasyon yo ki Gade 295 00:15:24,900 --> 00:15:28,120 ranpli nan enfòmasyon ki nan HTML ke li bezwen. 296 00:15:28,120 --> 00:15:30,490 Ak sa ki nou rele moun Pwen de vi se Templates nan klas la. 297 00:15:30,490 --> 00:15:35,280 >> Se konsa, sèvi ak yon lòt Piton Flask modil ke li pral otomatikman 298 00:15:35,280 --> 00:15:38,620 enstale lè ou enstale pip Flakon rele Jenja, ki 299 00:15:38,620 --> 00:15:40,885 pèmèt ou ajoute sa yo anote ak HTML a 300 00:15:40,885 --> 00:15:45,140 sa ou wè sou ekran an, ki pèmèt ou mete nan bagay sa yo tankou kondisyonal, 301 00:15:45,140 --> 00:15:47,230 ak pasan nan HTML a. 302 00:15:47,230 --> 00:15:51,140 >> Se konsa, li sanble yon ti jan tankou ki jan ou ti kras ta ka sèvi ak PHP nan yon dosye HTML, 303 00:15:51,140 --> 00:15:57,380 men sa a se jis lè flakon an sèvè sèvi moute dosye a HTML, 304 00:15:57,380 --> 00:16:01,610 li pral kouri sa a motè templating ak analizan nan sa a, epi nwasi bagay sa yo nan. 305 00:16:01,610 --> 00:16:06,650 Se konsa, Flask gen yon fonksyon render_template ke ou ka wè nan pati anba a isit la. 306 00:16:06,650 --> 00:16:14,300 Se konsa, lè ou vizite paj sa a, li ta rann sa a Modèl hello.html, 307 00:16:14,300 --> 00:16:16,407 ak Lè sa a ranpli nan paj HTML sa a. 308 00:16:16,407 --> 00:16:18,990 Se konsa, kite yo jis kouri sa a reyèl rapid, ak wè sa ki li sanble, 309 00:16:18,990 --> 00:16:21,198 ak Lè sa a mwen pral ale nan yon ti jan nan plis detay. 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 Se konsa, Templates ou yo ale yo ale nan yon katab Templates. 312 00:16:30,260 --> 00:16:33,980 Li pral otomatikman gade nan nan Templates folder pou sa Modèl. 313 00:16:33,980 --> 00:16:35,615 Se konsa nou louvri sa a leve. 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 Se konsa, mwen pral kouri egzanp lan templating. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> Se konsa, si m 'ale nan / alo / Esdras, li gen sa a terib, 318 00:17:03,660 --> 00:17:05,930 insuportabl tag chapito ke mwen mete nan. 319 00:17:05,930 --> 00:17:08,050 Trè bèl, trè dinamik. 320 00:17:08,050 --> 00:17:09,349 Mwen gen yon gwo fanatik. 321 00:17:09,349 --> 00:17:13,900 Men, sa ki k ap pase si Mwen jis ale nan, / alo? 322 00:17:13,900 --> 00:17:15,220 Se konsa, li jis di Bonjou Mondyal la. 323 00:17:15,220 --> 00:17:17,678 Mwen pa t 'pase li yon non, ak li plen l 'nan otomatikman. 324 00:17:17,678 --> 00:17:22,050 Se konsa nou wè ki jan li te fè sa, e ki jan nou ka debarase m de ki chapito petèt. 325 00:17:22,050 --> 00:17:26,240 >> Se konsa, isit, sa a se sòt de yon egzanp enteresan nan, 326 00:17:26,240 --> 00:17:29,101 si ou yo abitye avèk ki jan switch deklarasyon travay nan yon lang. 327 00:17:29,101 --> 00:17:31,350 Di sa a se sòt de tankou, ki sòt de yon sezon otòn nan, 328 00:17:31,350 --> 00:17:34,266 kote ou aktyèlman tache de wout diferan nan fonksyon an menm. 329 00:17:34,266 --> 00:17:41,190 Se konsa, nou tache / alo wout la ak / alo / wout la non yo Bonjou, 330 00:17:41,190 --> 00:17:45,130 epi nou presize using-- Piton pèmèt ou presize default arguments-- fonksyon 331 00:17:45,130 --> 00:17:48,300 Se konsa, si pa gen okenn Non, se konsa si nou ale nan jis / hello, 332 00:17:48,300 --> 00:17:50,680 li pral otomatikman filtre nan non ki egal a Okenn. 333 00:17:50,680 --> 00:17:55,010 >> Se sak fè, nou rann nan Modèl ak non = non, 334 00:17:55,010 --> 00:17:59,510 se konsa li pral pase nan paramèt nan non egal a sa a paramèt fonksyon non, 335 00:17:59,510 --> 00:18:00,730 nan Modèl la. 336 00:18:00,730 --> 00:18:04,040 Ki toujou pa eksplike ki jan pou n ap deside si l ap enprime Alo Mondyal, 337 00:18:04,040 --> 00:18:05,100 oswa enprime non mwen. 338 00:18:05,100 --> 00:18:08,050 Se konsa, kite a aktyèlman gade nan Modèl nan tèt li, 339 00:18:08,050 --> 00:18:11,610 epi wè ki kote ki ap vini soti nan. 340 00:18:11,610 --> 00:18:18,680 >> Se konsa, ki nan Modèl sa a, nou aktyèlman gen kèk lojik kondisyonèl, 341 00:18:18,680 --> 00:18:20,580 ki kèk moun ki ta diskite, ou aktyèlman 342 00:18:20,580 --> 00:18:23,730 pa ta dwe gen yon anpil nan kondisyonèl lojik nan modèl ou tèt li. 343 00:18:23,730 --> 00:18:26,310 Li ta dwe gen plis nan a Kontwolè, men pou egzanp sa a 344 00:18:26,310 --> 00:18:27,476 li nan yon bagay bèl ki piti yo. 345 00:18:27,476 --> 00:18:31,060 Se konsa, isit la, nou tcheke, si non, se konsa si non se pa egal a Okenn, 346 00:18:31,060 --> 00:18:33,130 si yon non se aktyèlman te pase nan, lè sa a nou pral 347 00:18:33,130 --> 00:18:36,210 di Hello, non ak nan header ak chapito a, 348 00:18:36,210 --> 00:18:41,490 tout HTML nòmal sa a, otreman, nou pral enprime soti Hello, Mondyal jis nòmalman. 349 00:18:41,490 --> 00:18:45,820 Se konsa, yon koup bagay a yon avi isit la sou ki jan ou fòma templating a, 350 00:18:45,820 --> 00:18:49,110 se ke, tout moun sa yo deklarasyon kondisyonèl, 351 00:18:49,110 --> 00:18:54,475 sòt de tankou ki jan nou PHP li lè ou vle insert kèk PHP, 352 00:18:54,475 --> 00:18:58,380 ou itilize mwens la-pase kesyon make, li nan sòt de analoji isit la 353 00:18:58,380 --> 00:19:00,140 ak {% an. 354 00:19:00,140 --> 00:19:02,130 >> Se konsa, isit, nou gen Kòd kondisyonèl nou an. 355 00:19:02,130 --> 00:19:05,920 Lè sa a,, lè ou aktyèlman vle literalman evalye yon bagay, epi enprime 356 00:19:05,920 --> 00:19:08,710 li soti nan ekran an, ou itilize aparèy òtopedik yo doub. 357 00:19:08,710 --> 00:19:12,310 Se konsa, isit la yo se aparèy òtopedik yo doub, ak Lè sa a nou presize non, 358 00:19:12,310 --> 00:19:15,500 se konsa nan ki, li pral evalye nan non an varyab, ki 359 00:19:15,500 --> 00:19:18,860 te pase nan soti nan la rann fonksyon modèl, 360 00:19:18,860 --> 00:19:21,484 olye ke sèlman enprime soti, si nou te debarase m de sa yo, 361 00:19:21,484 --> 00:19:23,150 li ta jis enprime soti mo "Non." 362 00:19:23,150 --> 00:19:26,340 Se konsa, sa a, se yon bagay yo gade soti pou. 363 00:19:26,340 --> 00:19:29,792 >> Se konsa, yon lòt bagay yo avi se ke, lè nou 364 00:19:29,792 --> 00:19:31,500 vle sèvi ak nan fonksyon render_template, 365 00:19:31,500 --> 00:19:34,490 nou gen aktyèlman yo enpòte li klèman soti nan Flask. 366 00:19:34,490 --> 00:19:36,915 Lè sa a se yon egzanp sou modularite nan Flask, 367 00:19:36,915 --> 00:19:39,290 ke ou pa gen yo enpòte bagay sa yo ke ou pa bezwen. 368 00:19:39,290 --> 00:19:41,290 Ou ka jis pote nan nan fonksyon ou aktyèlman 369 00:19:41,290 --> 00:19:43,450 bezwen, ki se pafwa bèl, se konsa ou pa fè sa 370 00:19:43,450 --> 00:19:46,560 gen gen tout fonksyon sa yo chita alantou ke ou pa ap lè l sèvi avèk, 371 00:19:46,560 --> 00:19:49,730 men tou,, si ou bliye ke ou bezwen enpòte render_template, 372 00:19:49,730 --> 00:19:52,660 ou pral pwobableman jwenn yon avètisman ki pral fè w konnen sou sa. 373 00:19:52,660 --> 00:19:56,700 Se konsa, se sa ki templating. 374 00:19:56,700 --> 00:20:01,680 >> Se konsa, nou te montre ki jan yo fè paj wèb ki senp, 375 00:20:01,680 --> 00:20:04,947 epi ajoute yon ti jan ti kras pi plis lojik yo li, an tèm de routage nan varyab. 376 00:20:04,947 --> 00:20:08,280 Li pèmèt ou fè bagay sa yo diferan ki baze sou sa URL ou ale nan, epi tou li lè sa a, bay 377 00:20:08,280 --> 00:20:11,950 HTML a yon ti jan ti kras pi plis sans nan tèm de ki jan ou vle rann bagay sa yo. 378 00:20:11,950 --> 00:20:14,210 Ou pa oblije mete tout HTML ou a Piton ou, 379 00:20:14,210 --> 00:20:16,640 men pou bèl anpil chak aplikasyon sou sit wèb ★ 380 00:20:16,640 --> 00:20:21,480 w ap ale nan vle kèk sòt nan done modèl asosye ak li. 381 00:20:21,480 --> 00:20:25,560 >> Se konsa, tradisyonèlman, sa a ta gen yon bagay tankou yon baz done SQL. 382 00:20:25,560 --> 00:20:30,280 Epi ou ka jis kominike dirèkteman ak SQL. 383 00:20:30,280 --> 00:20:32,190 Piton gen, mwen panse ke sa yo rele. 384 00:20:32,190 --> 00:20:33,040 Sklit 3. 385 00:20:33,040 --> 00:20:38,454 Ou ka jis enpòte sklit 3 ak egzekite queries SQL dirèkteman, 386 00:20:38,454 --> 00:20:40,870 men mwen pa konnen sou ou, men mwen reyèlman pa renmen, jis, 387 00:20:40,870 --> 00:20:42,750 ekri soti queries SQL. 388 00:20:42,750 --> 00:20:45,350 Li gen tandans fè jwenn vrèman long ak konplike. 389 00:20:45,350 --> 00:20:49,180 >> Se konsa, yon bagay ki Mwen renmen yo sèvi ak se sa ki nan 390 00:20:49,180 --> 00:20:53,610 li te ye kòm yon ORM, ki se yon objè-relasyon kat. 391 00:20:53,610 --> 00:20:56,890 Ak pwen a nan yon kat objè-relasyon, 392 00:20:56,890 --> 00:21:00,100 se ke gen de diferan fason ou kapab panse osijè de baz done. 393 00:21:00,100 --> 00:21:03,240 >> Se konsa, egzanp lan ki Pwofesè Malan anjeneral 394 00:21:03,240 --> 00:21:07,660 sèvi ak nan klas, se tab la Excel, kote ou gen ranje sa yo ak kolòn sa yo, 395 00:21:07,660 --> 00:21:10,210 e ke sa a vrèman itil pou kijan li se reprezante nan SQL 396 00:21:10,210 --> 00:21:13,170 ak fason ou kominike avèk li, men li yon lòt fason ke li la aktyèlman 397 00:21:13,170 --> 00:21:16,390 itil nan panse sou li pafwa, se an tèm de klas ak objè yo. 398 00:21:16,390 --> 00:21:20,420 >> Se konsa, olye pou yo panse nan chak tab tankou ke li gen 399 00:21:20,420 --> 00:21:23,040 ranje sa a ki gen sèten enfòmasyon, ou kapab aktyèlman 400 00:21:23,040 --> 00:21:26,100 panse a li tankou se te chak tab se yon klas, 401 00:21:26,100 --> 00:21:29,810 ak Lè sa a chak egzanp nan la klas gen sèten pwopriyete. 402 00:21:29,810 --> 00:21:35,110 Se konsa, nan egzanp sa a, ka yo nan klas la se ranje yo nan tablo a, 403 00:21:35,110 --> 00:21:37,490 ak Lè sa a chak pwopriyete ta gen yon kolòn nan tablo a. 404 00:21:37,490 --> 00:21:40,840 >> Se konsa, ORM a ke mwen renmen yo sèvi ak yo rele sa peewee. 405 00:21:40,840 --> 00:21:43,520 Li nan reyèlman piti, sòt de tankou Flask. 406 00:21:43,520 --> 00:21:46,760 Mwen panse ke yo ke yo mache byen ansanm, men gen yon anpil nan lòt ORMs 407 00:21:46,760 --> 00:21:47,730 ke ou ka itilize. 408 00:21:47,730 --> 00:21:52,180 Yon yon sèl plis popilè se li te ye tankou SQLAlchemy, 409 00:21:52,180 --> 00:21:56,050 epi mwen pa ka sonje poutèt sa mwen orijinal te chwazi peewee sou SQLAlchemy, 410 00:21:56,050 --> 00:21:58,311 oswa mwen ta di ou poutèt sa mwen panse ke li nan yon sèl la pi byen, 411 00:21:58,311 --> 00:22:01,060 men nou ap jis ale nan sèvi ak sa a youn paske mwen konnen ki jan yo sèvi ak li. 412 00:22:01,060 --> 00:22:04,760 >> Se konsa, yon sèl kesyon se, poukisa ou ta dwe deranje lè l sèvi avèk yon ORM, 413 00:22:04,760 --> 00:22:07,552 olye pou yo jis dirèkteman ekri queries SQL? 414 00:22:07,552 --> 00:22:09,760 Apre sa, mwen panse ke ka a pi bon, se ke ou pa fè sa aktyèlman 415 00:22:09,760 --> 00:22:11,356 gen yo ekri queries SQL. 416 00:22:11,356 --> 00:22:14,480 Li nan pi fasil, jan mwen pral montre w, nan fè bagay sa yo tankou seleksyon, ensèsyon, 417 00:22:14,480 --> 00:22:16,157 sipresyon, espesyalman kreye tab. 418 00:22:16,157 --> 00:22:17,990 Li nan pi fasil yo ekri yon estrikti klas, 419 00:22:17,990 --> 00:22:22,250 pase sa li se yo estrikti yon Kreye Deklarasyon Table, men se yon sèl bagay 420 00:22:22,250 --> 00:22:25,710 yo dwe okouran de, se ke ORM a ap eseye pi byen li yo 421 00:22:25,710 --> 00:22:28,640 konnen sa ki pi plis la rechèch SQL efikas ta dwe, 422 00:22:28,640 --> 00:22:30,110 men pafwa li vin li sa ki mal. 423 00:22:30,110 --> 00:22:32,660 >> Epi sitou si w ap travay ak yon baz done gwo, 424 00:22:32,660 --> 00:22:35,557 ou ka remake ke yon demann ki ta dwe kouri vit, 425 00:22:35,557 --> 00:22:36,640 se aktyèlman pran pi long lan. 426 00:22:36,640 --> 00:22:40,164 Men, si ou gade anba kapo machin lan nan ki jan ORM a ap entèprete ki nan SQL, 427 00:22:40,164 --> 00:22:42,080 li ta ka fè yon bagay reyèlman ridikil, 428 00:22:42,080 --> 00:22:44,371 jis paske li sòt de siy entansyon ou mal. 429 00:22:44,371 --> 00:22:48,080 Epi, te gen fwa kote Mwen te gen pase sou desizyon l ', li jis 430 00:22:48,080 --> 00:22:52,429 egzekite queries pwòp SQL mwen, jis paske li te analyse nan yon fason etranj. 431 00:22:52,429 --> 00:22:54,220 Se konsa, gen kèk sou tèt li, jis nan wout la 432 00:22:54,220 --> 00:22:58,680 ke li compiles ou deklarasyon desann nan SQL. 433 00:22:58,680 --> 00:23:06,200 >> Se konsa, kite pou yo gade super byen vit nan yon egzanp ki senp nan yon modèl done 434 00:23:06,200 --> 00:23:07,350 ke ou ta ka sèvi ak. 435 00:23:07,350 --> 00:23:11,880 Se konsa, sa a se Piton Kòd, e konsa nan Premye bagay ou vle fè se soti nan 436 00:23:11,880 --> 00:23:12,950 peewee enpòte *. 437 00:23:12,950 --> 00:23:15,850 Se konsa, yo, kontrèman ak Flask, kote ou gen tout bagay sa yo modil endividyèl, 438 00:23:15,850 --> 00:23:18,125 , epi ou vle enpòte Flask, ak ekri yon Modèl, ak kèk lòt moun 439 00:23:18,125 --> 00:23:20,690 ke nou pral wè pita, ki soti nan peewee, ou ka jis enpòte tout bagay, 440 00:23:20,690 --> 00:23:22,290 paske li nan yon bibliyotèk bèl ki piti yo. 441 00:23:22,290 --> 00:23:26,490 >> Se konsa, premye bagay la ou vle fè, se aktyèlman kreye sa a objè baz done. 442 00:23:26,490 --> 00:23:31,212 Se konsa, ou gen db = SqliteDatabase, ak Lè sa a non an nan baz done ou. 443 00:23:31,212 --> 00:23:33,170 Ak sa a pral aktyèlman kreye yon baz done objè 444 00:23:33,170 --> 00:23:36,230 ke ou ka kominike avèk, ak peewee. 445 00:23:36,230 --> 00:23:40,570 >> Lè sa a,, nou gen aktyèl la modèl ke nou vle kreye. 446 00:23:40,570 --> 00:23:42,470 Se konsa, tab la nou vle kreye. 447 00:23:42,470 --> 00:23:47,270 Se konsa, ki nan peewee, chak klas gen tab pwòp li yo nan lespas baz done ou. 448 00:23:47,270 --> 00:23:52,800 Se konsa, tout nan klas yo eritye soti nan modèl la baz, 449 00:23:52,800 --> 00:23:55,960 ak kapital M modèl la se yon bagay ki nan sa defini nan peewee. 450 00:23:55,960 --> 00:24:02,162 >> Se konsa, tout nan modèl ou ta dwe eritye kòm pi wo supèr yo, 451 00:24:02,162 --> 00:24:04,620 yo ta dwe pran ki soti nan modèl, men sa ki nan vrèman fre, 452 00:24:04,620 --> 00:24:07,610 se ke ou ka gen aktyèlman ou modèl eritye soti nan chak lòt. 453 00:24:07,610 --> 00:24:10,530 Ak yon anpil nan tan an, ou modèl done pa fè sa nesesèman 454 00:24:10,530 --> 00:24:13,754 fè yon yerachi pòsyon tè bèl, men fwa kote yo fè, li vrèman bèl, 455 00:24:13,754 --> 00:24:15,920 paske ou gen modèl la nannan ki soti nan chak lòt. 456 00:24:15,920 --> 00:24:19,710 >> Se konsa, nou defini klas sa a 'elèv,' ki erite yon modèl, 457 00:24:19,710 --> 00:24:21,170 epi li gen twa pwopriyete. 458 00:24:21,170 --> 00:24:24,080 Li te gen yon ID, ki se yon PrimaryKeyField, ki 459 00:24:24,080 --> 00:24:26,920 se yon bagay ki nan bay pa peewee, non se yon CharField, 460 00:24:26,920 --> 00:24:28,490 ak yon klas se yon IntegerField. 461 00:24:28,490 --> 00:24:32,260 Se konsa, sa ka oswa ka pa gen ki jan CS50 aktyèlman estoke tout 462 00:24:32,260 --> 00:24:33,650 klas elèv yo. 463 00:24:33,650 --> 00:24:36,060 Li se pa, men sa a se ki jan mwen ta fè li. 464 00:24:36,060 --> 00:24:37,920 >> Lè sa a, li gen, nan klas sa a, ak sa a 465 00:24:37,920 --> 00:24:41,620 se yon bagay ou kapab fè avèk Piton, ou ka gen klas enbrike. 466 00:24:41,620 --> 00:24:43,920 Lè sa a se yon bagay ki nan egzije sa peewee. 467 00:24:43,920 --> 00:24:47,250 Se konsa, Meta klas sa a, ou gen ou presize ki baz done a se 468 00:24:47,250 --> 00:24:49,830 egal a objè a ke nou kreye pi wo a. 469 00:24:49,830 --> 00:24:54,339 Lè sa a di sa dosye se tablo sa a aktyèlman pral yo dwe genyen nan yo nan. 470 00:24:54,339 --> 00:24:57,130 Se konsa, sa a se yon bagay ki di ou gen fè nan tout nan modèl ou yo. 471 00:24:57,130 --> 00:24:59,380 Ou jis bezwen presize nan klas sa a Meta 472 00:24:59,380 --> 00:25:01,400 ki baz done ki egal a db. 473 00:25:01,400 --> 00:25:03,940 Se konsa, sa m te toujou konn fè, si mwen gen yon pakèt moun sou modèl diferan, 474 00:25:03,940 --> 00:25:05,910 se ke mwen gen yon sèl baz modèl, pou m 'anjeneral 475 00:25:05,910 --> 00:25:08,839 jis rele "modèl baz" ki gen klas la Meta, 476 00:25:08,839 --> 00:25:10,380 epi li kouche baz done a egal a db. 477 00:25:10,380 --> 00:25:13,710 Lè sa a, tout nan modèl ki vin apre m ' pral eritye soti nan ki klas baz. 478 00:25:13,710 --> 00:25:16,760 Lè sa a, mwen pa gen enkyete sou mete klas la Meta. 479 00:25:16,760 --> 00:25:21,490 >> Se konsa, lè sa a aktyèlman vin konpile desann nan yon deklarasyon SQL, 480 00:25:21,490 --> 00:25:24,875 li sanble bagay sa a anbarasan desann isit la, "Kreye tab nonb antye relatif ID elèv, 481 00:25:24,875 --> 00:25:26,020 "Kèlkeswa sa. 482 00:25:26,020 --> 00:25:30,002 >> Epi, mwen panse ke li se pi kout, sa a sijè rechèch SQL dwa isit la, 483 00:25:30,002 --> 00:25:32,960 men si ou gade nan klas sa a isit la ou ka wè ekzakteman ki sa k ap pase sou. 484 00:25:32,960 --> 00:25:36,116 Ou ka wè sa ki kalite nan jaden gen, ki sa yo ap rele yo, 485 00:25:36,116 --> 00:25:38,115 e konsa, mwen panse ke gade nan sa a Kòd Piton 486 00:25:38,115 --> 00:25:43,340 se yon anpil plis lizib pase ap eseye ekri sa a sijè rechèch SQL. 487 00:25:43,340 --> 00:25:45,990 >> Se konsa, yo nan lòd yo aktyèlman itilize baz done a, 488 00:25:45,990 --> 00:25:48,470 nou gen pou konekte avèk li nan Piton. 489 00:25:48,470 --> 00:25:52,770 Se konsa, mwen anjeneral ekri yon fonksyon rele initialize_db ki fè de bagay sa yo. 490 00:25:52,770 --> 00:25:54,880 Li pran nan baz done a db objè epi li 491 00:25:54,880 --> 00:25:58,360 konekte nan li, ki jis ouvè moute seksyon nan baz done a. 492 00:25:58,360 --> 00:26:00,860 Si w ap jis kouri menm si sit sou machin lokal ou a, 493 00:26:00,860 --> 00:26:04,320 li se pa yon kontra gwo super enkyete sou konekte ak debranche, 494 00:26:04,320 --> 00:26:06,885 men si ou se kouri l 'sou yon sit entènèt, ou 495 00:26:06,885 --> 00:26:10,010 vle asire w ke, nenpòt lè yon itilizatè konekte nan li, lè yo fèmen soti 496 00:26:10,010 --> 00:26:12,270 sit entènèt la, yo dekonekte pou ke ou pa gen yon pakèt moun sou moun ki konekte 497 00:26:12,270 --> 00:26:14,480 nan baz done ou tout nan yon fwa. 498 00:26:14,480 --> 00:26:16,370 >> Lè sa a,, lè ou konekte avèk baz done a, 499 00:26:16,370 --> 00:26:20,832 ou vle rele db.create_tables, ak lis modèl yo pou sa ou vle 500 00:26:20,832 --> 00:26:21,540 yo kreye tab. 501 00:26:21,540 --> 00:26:23,950 Se konsa, isit la, mwen jis vle kreye li pou elèv sa a. 502 00:26:23,950 --> 00:26:28,070 Apre sa, lè sa a, sa ki enpòtan, se yo presize ki an sekirite = Vrè pi tan an. 503 00:26:28,070 --> 00:26:30,380 Se konsa, sa deklarasyon sa a pral fè, se ke li 504 00:26:30,380 --> 00:26:33,580 kreye tab pou la modèl elèv, men se sèlman 505 00:26:33,580 --> 00:26:36,109 si sa a pa gen anyen tab te kreye deja. 506 00:26:36,109 --> 00:26:37,400 Sa a ki sa Espesifik yo an sekirite. 507 00:26:37,400 --> 00:26:39,150 Se konsa, li pa pral recouvrir tab ki egziste deja ou, 508 00:26:39,150 --> 00:26:41,525 li pral sèlman kreye yon nouvo tab si gen se pa yon sèl la. 509 00:26:41,525 --> 00:26:45,090 Se konsa, ou ta ka jis kreye tab yo yon fwa lè l sèvi avèk SQL. 510 00:26:45,090 --> 00:26:49,410 Lè sa a, gen sa chita baz done a, ak Lè sa a konekte nan chak fwa, 511 00:26:49,410 --> 00:26:52,450 men li la anjeneral bèl jis yo mete nan sa a apèl create_tables, 512 00:26:52,450 --> 00:26:55,550 pou ke, si ou te janm efase ou baz done lè ou kouri entènèt ou 513 00:26:55,550 --> 00:26:57,960 app ankò, li pral rkree li. 514 00:26:57,960 --> 00:27:00,730 >> Se konsa, jis asire w ke san danje se espesifye yo dwe vre, 515 00:27:00,730 --> 00:27:03,580 oswa ou pral jwenn done ou jis ap resevwa clobbered chak fwa. 516 00:27:03,580 --> 00:27:06,380 Lè sa a,, ou ka jis rele initialize_db yo etabli 517 00:27:06,380 --> 00:27:09,820 yon koneksyon, ak kreye tab si sa nesesè. 518 00:27:09,820 --> 00:27:13,150 >> Se konsa, bagay ki pi komen ke ou pral vle fè a, 519 00:27:13,150 --> 00:27:15,920 oswa yon sèl nan bagay sa yo ki pi komen, se aktyèlman Insert bagay 520 00:27:15,920 --> 00:27:17,170 nan baz done ou. 521 00:27:17,170 --> 00:27:19,430 Se konsa, olye ke gen yo ekri yon insert nan 522 00:27:19,430 --> 00:27:21,990 deklarasyon ak tout valè yo espesifye, 523 00:27:21,990 --> 00:27:24,650 ou ka aktyèlman rele fonksyon sou klas la elèv yo. 524 00:27:24,650 --> 00:27:28,200 Se konsa, lè ou kreye yon klas ki erite soti nan modèl, 525 00:27:28,200 --> 00:27:30,200 li gen sa a kreye metòd. 526 00:27:30,200 --> 00:27:33,870 >> Se konsa, ou fè name.create klas, epi ou presize paramèt yo 527 00:27:33,870 --> 00:27:35,260 ke ou vle pase nan. 528 00:27:35,260 --> 00:27:39,200 Se konsa, si mwen vle ajoute kèk elèv nan egzanp liv klas yo CS50 nou an, 529 00:27:39,200 --> 00:27:41,820 Mwen pral mete nan David la, ki gen yon trè bon ane, li te gen yon 95. 530 00:27:41,820 --> 00:27:45,100 Ak tèt mwen, ki moun ki pa nan fè sa byen nan CS50, mwen gen yon 50. 531 00:27:45,100 --> 00:27:47,600 Se konsa, bagay la bèl sou ki sa sa a fonksyon kreye fè, 532 00:27:47,600 --> 00:27:53,040 se ke li retounen egzanp lan, oswa nan ranje, ki li te kreye nan tablo a, 533 00:27:53,040 --> 00:27:55,750 e konsa Lè sa a, ou sere ke nan yon varyab, ak travay ak li pita. 534 00:27:55,750 --> 00:27:58,830 Ou ka chanje alantou li, ki Mwen pral montre yon egzanp sou. 535 00:27:58,830 --> 00:28:03,050 >> Remake mwen pa t ' gen ou presize ID a, 536 00:28:03,050 --> 00:28:09,340 paske depi li se nan PrimaryKeyField, li pral otomatikman 537 00:28:09,340 --> 00:28:10,930 kantite li si ou pa presize li. 538 00:28:10,930 --> 00:28:12,250 Epi, an reyalite, pwobableman ou pa ta dwe presize li, 539 00:28:12,250 --> 00:28:14,810 paske ou ta ka aksidantèlman batr ID yon lòt moun nan. 540 00:28:14,810 --> 00:28:16,830 Epi ou vle fè asire w ke li nan inik. 541 00:28:16,830 --> 00:28:20,662 >> Pi plis nan Se konsa, aktyèlman, bagay ki komen ou vle fè, 542 00:28:20,662 --> 00:28:22,620 se pwobableman chwazi soti nan baz done a yon fwa ou 543 00:28:22,620 --> 00:28:24,078 gen yon anpil nan enfòmasyon nan la. 544 00:28:24,078 --> 00:28:27,360 Se konsa, si ou vle jwenn tout bagay, se konsa sa ki egal a zetwal nan chwazi 545 00:28:27,360 --> 00:28:30,940 nan men elèv deklarasyon, li ta jis pou student.select. 546 00:28:30,940 --> 00:28:34,380 Apre sa, ki pral ba ou tounen yon etalaj ak tout elèv la objè nan li 547 00:28:34,380 --> 00:28:35,770 ke ou repekte sou ou vle. 548 00:28:35,770 --> 00:28:37,019 Ou ka jwenn bagay sa yo soti nan li. 549 00:28:37,019 --> 00:28:39,310 Ak pi fò nan tan an, ou pa sèlman vle fè chwazi, 550 00:28:39,310 --> 00:28:40,935 ou aktyèlman vle presize yon bagay. 551 00:28:40,935 --> 00:28:44,580 Se konsa, ou kapab chèn ansanm apèl fonksyon sa yo, 552 00:28:44,580 --> 00:28:48,830 tankou ki jan ou ta chèn ansanm deklarasyon sa yo nan SQL. 553 00:28:48,830 --> 00:28:53,002 Se konsa, ou kapab fè student.select () kote. nan egzanp sa a. 554 00:28:53,002 --> 00:28:54,710 Lè sa a,, ou kapab presize kondisyon yo, 555 00:28:54,710 --> 00:28:57,880 jis lè l sèvi avèk Piton nòmal Booleans tcheke bagay sa yo. 556 00:28:57,880 --> 00:29:02,110 >> Se konsa, nan ka sa a, ou vle limite sa w ap chwazi a, 557 00:29:02,110 --> 00:29:06,790 kote student.grade ki egal a 50, ak student.name ki egal a Esdras, 558 00:29:06,790 --> 00:29:09,130 se konsa ke pral jis jwenn m 'soti nan li. 559 00:29:09,130 --> 00:29:11,340 Apre sa, remake, youn vrèman bagay sibtil isit la se 560 00:29:11,340 --> 00:29:15,570 sa a, si ou vle ou presize yon ak / ak oswa yon oswa / oswa, 561 00:29:15,570 --> 00:29:19,840 nan Piton, ou ta nòmalman itilize, Mwen panse ke pawòl Bondye a "ak" aktyèlman, 562 00:29:19,840 --> 00:29:23,351 men isit la ou itilize comercial a sèl, ki se nòmalman yon operatè lojik, 563 00:29:23,351 --> 00:29:25,600 men nan ka sa a espesyal, jis peewee nan fason fè li, 564 00:29:25,600 --> 00:29:27,660 ou itilize yon sèl la comercial ou presize "ak." 565 00:29:27,660 --> 00:29:29,451 Sa a yon bagay ki Mwen jwenn melanje moute yon anpil, 566 00:29:29,451 --> 00:29:32,530 men li pa vini ke anpil nan pratik. 567 00:29:32,530 --> 00:29:36,350 >> Lè sa a,, yon fwa ou gen tout elèv yo soti nan baz done a, 568 00:29:36,350 --> 00:29:39,420 yon fwa ou te fè w ap chwazi ak mete ou oswa kèlkeswa sa, 569 00:29:39,420 --> 00:29:42,334 ou ka itilize yon bouk fortch, jis tankou nòmal nan Piton, 570 00:29:42,334 --> 00:29:44,500 ak nenpòt ki sòt de iterator oswa avèk nenpòt ki sòt de etalaj. 571 00:29:44,500 --> 00:29:46,333 Se konsa, ou ka fè, pou la nan student.select (). Whe 572 00:29:46,333 --> 00:29:52,930 re (Student.grade <75), e konsa volonte sa a repekte sou chak elèv nan tablo a 573 00:29:52,930 --> 00:29:56,260 ki gen klas ki pi piti a pase 75, ki nan ka sa a, se toujou jis m '. 574 00:29:56,260 --> 00:29:59,218 Lè sa a, ou ta ka fè yon bagay ki nan ki bouk, tankou voye m 'yon imèl 575 00:29:59,218 --> 00:30:01,680 , di m 'ki aktyèlman vire nan ansanbl pwoblèm mwen. 576 00:30:01,680 --> 00:30:04,550 >> Se konsa, yon lòt bagay ou kapab fè, se li vrèman fasil 577 00:30:04,550 --> 00:30:06,460 mete ajou ranje ki nan tab la. 578 00:30:06,460 --> 00:30:08,720 Se konsa, sonje tounen isit la, ou lè m 'antre, 579 00:30:08,720 --> 00:30:11,440 Mwen te pran valè a ki te tounen pa student.create, 580 00:30:11,440 --> 00:30:14,920 ak mwen asiyen li nan non rele Esdras. 581 00:30:14,920 --> 00:30:18,995 Se konsa, kounye a, ou kapab chanje a valè nan ki egzanp, 582 00:30:18,995 --> 00:30:20,870 jis tankou ou ta yon klas nòmal nan Piton. 583 00:30:20,870 --> 00:30:25,060 >> Se konsa, ou ka mete ezra.grade = 95 ak ki pral mete ajou kopi lokal la, 584 00:30:25,060 --> 00:30:28,380 men si ou aktyèlman vle komèt ki chanjman nan baz done, 585 00:30:28,380 --> 00:30:31,410 ou gen yo rele ezra.save, se konsa ou rele metòd la .Sove 586 00:30:31,410 --> 00:30:32,650 sou egzanp lan. 587 00:30:32,650 --> 00:30:38,085 >> Se konsa, koulye a, mwen gen anpil siksè chanje klas yo pwòp mwen nan baz done a. 588 00:30:38,085 --> 00:30:41,210 Se konsa, Lè sa a, se pou yo di ke mwen jwenn kenbe chanje klas yo m 'nan baz done a. 589 00:30:41,210 --> 00:30:44,126 Pwofesè Malan se pwobableman pral vle efase m 'anba klas la, 590 00:30:44,126 --> 00:30:48,630 ak pou ou ka rele .Efase nan egzanp metòd jis sou ke bagay. 591 00:30:48,630 --> 00:30:51,674 >> Se konsa, si ou te vle ale tounen nan sa a riban isit la, 592 00:30:51,674 --> 00:30:53,465 ak aktyèlman, olye pou nan voye Imèl tout 593 00:30:53,465 --> 00:30:56,577 elèv klas yo ki gen ki pi piti a pase 75, ou te vle efase yo, 594 00:30:56,577 --> 00:30:58,660 nan sa a riban ou ta ka rele s.delete egzanp. 595 00:30:58,660 --> 00:31:04,180 596 00:31:04,180 --> 00:31:07,780 Epi bagay la trè dènye ou vle fè, se nenpòt lè ou etabli yon koneksyon, 597 00:31:07,780 --> 00:31:10,350 ak w ap fè ak travay ou, ou vle rele db.close, 598 00:31:10,350 --> 00:31:13,190 kote se ke baz done db objè ke nou te anvan. 599 00:31:13,190 --> 00:31:18,290 , Epi ou vle asire w ke tout bagay vin fèmen soti nan. 600 00:31:18,290 --> 00:31:18,790 >> Fre. 601 00:31:18,790 --> 00:31:22,410 Se konsa, kounye, mwen gen yon aplikasyon egzanp. 602 00:31:22,410 --> 00:31:26,880 Mwen te sòt de pre-te fè tout bagay jis se konsa ke gen pa yo pral nenpòt ki kodaj viv 603 00:31:26,880 --> 00:31:30,220 erè, men nou ka mache nan li epi wè ki jan ou ta ka mete Flask 604 00:31:30,220 --> 00:31:33,685 ak peewee ansanm, , epi fè yon app ki senp. 605 00:31:33,685 --> 00:31:38,680 Mwen rele l 'CS50 divage, epi li sòt de yon platfòm blog ki senp. 606 00:31:38,680 --> 00:31:41,150 >> Se konsa, premye, mwen pral kouri li ak montre sa li sanble, 607 00:31:41,150 --> 00:31:42,890 ak Lè sa a nou ka gade plis nan kòd la. 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 Oke, kidonk kite a jis kouri sa a. 610 00:32:02,830 --> 00:32:14,040 611 00:32:14,040 --> 00:32:17,250 Cool, mwen pral fè sa-a yon ti kras pi piti. 612 00:32:17,250 --> 00:32:20,000 Li pa trè bèl, jis paske Mwen pa t 'fè yon anpil nan CSS, 613 00:32:20,000 --> 00:32:23,255 men ki sa li fè sa ki, li gen sa a baz done nan posts blog, 614 00:32:23,255 --> 00:32:25,630 epi li ale nan tout nan yo, epi li pral montre yo 615 00:32:25,630 --> 00:32:28,170 nan paj la yo nan lòd a ki pi resan an. 616 00:32:28,170 --> 00:32:30,920 Se konsa, sa yo, se sèlman kèk posts ke mwen te sove nan baz done a. 617 00:32:30,920 --> 00:32:35,680 >> Se konsa, si nou vle kreye yon nouvo pòs, nou ka ale nan Ajoute yon Nouvo Post, 618 00:32:35,680 --> 00:32:42,720 epi nou ka antre nan tit la nan la pòs, se konsa yon bagay tankou, CS50 seminè. 619 00:32:42,720 --> 00:32:45,360 620 00:32:45,360 --> 00:32:46,735 Wow, reyèlman jwi seminè a. 621 00:32:46,735 --> 00:32:51,070 622 00:32:51,070 --> 00:32:52,270 >> Fre. 623 00:32:52,270 --> 00:32:56,060 Lè sa a, ou peze post, epi li pral redireksyon ou tounen nan paj an kay, 624 00:32:56,060 --> 00:33:00,039 ak Lè sa a ou ap wè ke te post la dènye te ajoute. 625 00:33:00,039 --> 00:33:01,580 Apre sa, nou toujou gen tout moun yo la. 626 00:33:01,580 --> 00:33:08,080 Se konsa, kounye, se pou yo etap nan tout nan nan Kòd ak wè kòman sa a se aplike. 627 00:33:08,080 --> 00:33:11,995 >> Se konsa, mwen panse ke nan premye bagay ki se pou yo pran yon gade nan, se aktyèlman modèl yo. 628 00:33:11,995 --> 00:33:14,120 Yon anpil nan tan an, lè w ap desine yon bagay, 629 00:33:14,120 --> 00:33:17,036 ou vle panse sou ki jan premye w ap ale nan reprezante done ou a, 630 00:33:17,036 --> 00:33:22,915 ak Lè sa a konsepsyon bagay alantou sa, se konsa ke tout bagay fè sans. 631 00:33:22,915 --> 00:33:25,290 Apre sa se aktyèlman ki jan mwen te fè li lè mwen te fè sa a, 632 00:33:25,290 --> 00:33:28,030 Mwen chita bò tab la ak panse, sa m 'vle nan yon pòs. 633 00:33:28,030 --> 00:33:32,130 >> Se konsa, isit la, nou gen estrikti nan menm ke mwen te mansyone pi bonè, 634 00:33:32,130 --> 00:33:33,755 kote nou fè db = Sqldatabase ('posts.db'). 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 An reyalite, pwobableman ou pa vle nan kòd difisil nan baz done non ou lan. 637 00:33:40,980 --> 00:33:43,730 Sa ta dwe pwobableman gen yon paramèt ki nan ki estoke yon kote, petèt 638 00:33:43,730 --> 00:33:45,940 nan yon dosye config, men nan yon ti egzanp tankou sa a, 639 00:33:45,940 --> 00:33:48,310 li nan oke nan kòd difisil ke nan. 640 00:33:48,310 --> 00:33:53,510 >> Se konsa, kounye a, nou gen sa a klas Post, ki erite soti nan modèl la baz. 641 00:33:53,510 --> 00:33:56,930 Apre sa, li gen la, ankò, ID = PrimaryKeyField. 642 00:33:56,930 --> 00:34:02,250 Aktyèlman, si ou pa presize, si mwen aktyèlman te debarase m de sa a, 643 00:34:02,250 --> 00:34:07,152 Lè sa a, nou pral peewee pran swen nan otomatikman kreye ke jaden ID, 644 00:34:07,152 --> 00:34:09,360 epi li pral otomatikman fè l 'yon PrimaryKey, ki 645 00:34:09,360 --> 00:34:12,485 Mwen panse ke se reyèlman bon, paske anjeneral, sa a, se yon bagay ou vle genyen, 646 00:34:12,485 --> 00:34:16,239 men mwen renmen mete l 'nan espesyalman, jis pou mwen sonje ke li nan nan la. 647 00:34:16,239 --> 00:34:19,480 Men, si ou pa presize sa, ki pral dwe la otomatikman. 648 00:34:19,480 --> 00:34:22,198 >> Se sak fè, mwen gen yon dat ki se yon DateTimeField, ansanm ak tout 649 00:34:22,198 --> 00:34:24,864 jaden sa yo diferan, si ou gade nan dokiman an peewee, 650 00:34:24,864 --> 00:34:28,920 li pral ba ou yon lis diferan nan kalite nan jaden ke ou ka itilize. 651 00:34:28,920 --> 00:34:34,440 Pou pati ki pi, li nan analoji nan sa ou ta wè nan SQL. 652 00:34:34,440 --> 00:34:37,699 Se konsa, gen se yon CharField, se yon VarCharFields, TextFields, 653 00:34:37,699 --> 00:34:40,550 ki se pou trè long tèks, tankou yon pòs blog 654 00:34:40,550 --> 00:34:44,460 potansyèlman, DateTimeFields, DoubleFields, FloatFields, 655 00:34:44,460 --> 00:34:46,100 tout bagay sa yo tankou sa. 656 00:34:46,100 --> 00:34:51,570 >> Epi ou ka pase nan lòt agiman nan li, ki mwen pa te spesifye isit la. 657 00:34:51,570 --> 00:34:55,719 Di, pou egzanp, ou pa t 'vle pèmèt de pòs yo gen menm tit la, 658 00:34:55,719 --> 00:34:59,672 ou te kapab presize yon bagay tankou inik = Vre, 659 00:34:59,672 --> 00:35:02,880 e ke sa a jis yon paramèt siplemantè nan jaden an ke lè li compiles li desann 660 00:35:02,880 --> 00:35:06,865 nan SQL a, li pral presize ke li gen yo dwe inik. 661 00:35:06,865 --> 00:35:09,740 Ou kapab tou presize yon bagay tankou pa nil ak tout lòt bagay sa yo 662 00:35:09,740 --> 00:35:11,750 nòmalman ou fè nan SQL. 663 00:35:11,750 --> 00:35:16,020 Se konsa, sa a se yon trè senp modèl ki gen dat la. 664 00:35:16,020 --> 00:35:19,460 Avi isit la, nan DateTimeField a, Mwen espesifye sa default la se. 665 00:35:19,460 --> 00:35:22,560 Mwen espesifye li nan dwe datetime.datetime.now, 666 00:35:22,560 --> 00:35:24,920 paske yo te wout la ki sa a vin evalye, 667 00:35:24,920 --> 00:35:28,750 li aktyèlman evalye datetime.now an lè 668 00:35:28,750 --> 00:35:32,110 li vin mete nan baz done a. 669 00:35:32,110 --> 00:35:34,760 >> Mwen panse ke, Mwen ta gen a doub tcheke sa a, 670 00:35:34,760 --> 00:35:38,222 men si ou te fè yon bagay tankou sa a, Lè sa a, li ta aktyèlman evalye ke yon fwa, 671 00:35:38,222 --> 00:35:40,180 ak Lè sa a dattim nan ta toujou gen menm bagay la. 672 00:35:40,180 --> 00:35:44,240 Se konsa, jis si w ap fè yon bagay ak datetimes, doub chèk 673 00:35:44,240 --> 00:35:47,080 ke li nan evalye lè aktyèlman vin eleman, oswa lòt moun 674 00:35:47,080 --> 00:35:48,780 ou ta ka dwe bay konfizyon. 675 00:35:48,780 --> 00:35:51,221 >> Tit la se jis yon CharField, ki gen 676 00:35:51,221 --> 00:35:53,970 yo gen plis agiman ou ka pase nan ki espesifye egzakteman konbyen tan ou 677 00:35:53,970 --> 00:35:56,170 vle li nan dwe, men isit la, li pa t 'reyèlman gen pwoblèm. 678 00:35:56,170 --> 00:35:58,687 Ak tèks a pwal tèks la nan pòs la tout antye, 679 00:35:58,687 --> 00:36:01,020 e ke k ap pase yo dwe yon Textfield jis paske ou vle 680 00:36:01,020 --> 00:36:03,370 yo ki pèmèt li nan dwe yon fisèl bèl lontan. 681 00:36:03,370 --> 00:36:05,970 >> Lè sa a, nou gen sa a Meta souklas ki jis 682 00:36:05,970 --> 00:36:11,250 presize ke nou vle baz done a kote sa a se aktyèlman louvri moute nan 683 00:36:11,250 --> 00:36:14,267 yo dwe objè a db ke nou gen isit la. 684 00:36:14,267 --> 00:36:16,350 Epi bagay pase a nou gen isit la, se jis sa a fonksyon 685 00:36:16,350 --> 00:36:18,120 ke nou ap ale nan itilize soti nan app prensipal nou an 686 00:36:18,120 --> 00:36:23,970 inisyalize baz done a pou konekte avèk li, ak Lè sa a yo kreye tab la Post. 687 00:36:23,970 --> 00:36:26,880 >> Koulye a, kite pou yo gade nan app a prensipal tèt li. 688 00:36:26,880 --> 00:36:30,800 Se konsa, yon sèl sa a se byen yon ti jan pi long pase sa yo 689 00:36:30,800 --> 00:36:34,840 ke nou te wè anvan, men èspere ke pa twò move. 690 00:36:34,840 --> 00:36:37,140 Se konsa, kite m 'yon ekstansyon pou sa a soti. 691 00:36:37,140 --> 00:36:38,370 Oke. 692 00:36:38,370 --> 00:36:42,070 >> Se konsa, remake ak tèt la mwen enpòte yon pakèt antye nan lòt bagay 693 00:36:42,070 --> 00:36:44,129 soti nan Flask ke nou pa gen reyèlman wè anvan. 694 00:36:44,129 --> 00:36:46,670 Ak èspere ke, nou ka ale nan chak youn nan sa yo youn pa youn 695 00:36:46,670 --> 00:36:49,420 epi pale yon ti kras plis enfòmasyon sou yo, Ranje pa egzanp. 696 00:36:49,420 --> 00:36:51,380 Se konsa, nou gen Flask a, ak render_template a, 697 00:36:51,380 --> 00:36:54,370 ki nou te wè anvan, sa a objè demann, 698 00:36:54,370 --> 00:37:00,400 ki pral vini lè nou gade nan ki jan fòm nan ke mwen te ki montre aktyèlman 699 00:37:00,400 --> 00:37:01,170 travay. 700 00:37:01,170 --> 00:37:04,850 Redirect, ki pèmèt ou redireksyon tounen soti nan Kreye nouvo Post la 701 00:37:04,850 --> 00:37:11,710 do nan Homepage orijinal la, ak Lè sa a URL, ki se yon bagay ki pèmèt ou 702 00:37:11,710 --> 00:37:15,550 konnen ki kote sou mòn lan sit yon paj an patikilye se. 703 00:37:15,550 --> 00:37:17,810 >> Se konsa, lè sa a, pwochen an bagay m 'fè, se mwen enpòte 704 00:37:17,810 --> 00:37:21,550 tout enfòmasyon ki soti nan la Modèl dosye ke nou te jis gade nan. 705 00:37:21,550 --> 00:37:23,140 Epi, yeah. 706 00:37:23,140 --> 00:37:28,720 >> Se konsa, yon lòt bagay nouvo ki vini moute lè w ap fè fas ak, 707 00:37:28,720 --> 00:37:31,850 espesyalman bazdone, se ke ou ka presize 708 00:37:31,850 --> 00:37:35,110 yon fonksyon ki vin rele anvan chak demann, ak fonksyon ki vin 709 00:37:35,110 --> 00:37:39,690 rele apre chak demann, lè l sèvi avèk sa a dekoratè fonksyon app.before demann. 710 00:37:39,690 --> 00:37:42,324 >> Se konsa, sa a pral jwenn egzekite tout kote sa a fonksyon se. 711 00:37:42,324 --> 00:37:44,240 Sa a pa gen yo dwe rele anvan demann, 712 00:37:44,240 --> 00:37:46,281 men anjeneral sa a, se yon bagay sansib yo rele li. 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 Ou ka presize tou sa fonksyon ou vle jwenn rele a, 715 00:37:51,650 --> 00:37:56,330 Se konsa, mwen espesifye initialize_db sa a fonksyon ki nou te gen tounen nan la Modèl 716 00:37:56,330 --> 00:38:02,390 dosye, se konsa anvan chak demann, ou vle pou konekte avèk baz done a. 717 00:38:02,390 --> 00:38:04,560 >> Gen de diferan fason ou kapab fè sa. 718 00:38:04,560 --> 00:38:10,830 Ou ka fèapp., Mwen kwè li nan after_request. 719 00:38:10,830 --> 00:38:13,800 Apre sa, diferans ki genyen ant after_request ak teardown_request, 720 00:38:13,800 --> 00:38:17,590 se ke after_request pral sèlman rive si demann lan aktyèlman te valab. 721 00:38:17,590 --> 00:38:20,440 Se konsa, sèlman si la demann te gen siksè, 722 00:38:20,440 --> 00:38:22,490 si pa gen anyen ale mal, men teardown_request 723 00:38:22,490 --> 00:38:26,300 k ap pase nan ka a nan yon siksè demann, oswa nan ka a nan yon erè. 724 00:38:26,300 --> 00:38:28,252 >> Se konsa, anjeneral, ou vle yo sèvi ak teardown_request, 725 00:38:28,252 --> 00:38:30,460 sof si ou vle fè yon bagay, espesyalman diferan 726 00:38:30,460 --> 00:38:31,470 nan ka a nan yon erè. 727 00:38:31,470 --> 00:38:35,122 Men, jis pou fèmen baz done a, si li reyisi oswa si li echwe, 728 00:38:35,122 --> 00:38:37,080 nou fè ou vle dekonekte soti nan baz done a. 729 00:38:37,080 --> 00:38:41,240 Se konsa, sa yo rele, db.close sou objè a db. 730 00:38:41,240 --> 00:38:43,740 >> Remake teardown_request nan pran nan yon eksepsyon. 731 00:38:43,740 --> 00:38:46,781 Se konsa, ou ka tcheke si te gen aktyèlman yon erè lè li te fèmen desann, 732 00:38:46,781 --> 00:38:49,390 men isit la, èspere ke, gen yo pa yon lot antye nan erè, 733 00:38:49,390 --> 00:38:52,720 se konsa nou ap jis sòt de inyore sa. 734 00:38:52,720 --> 00:38:55,990 >> Oke, ak rès la nan li se pa twò move. 735 00:38:55,990 --> 00:39:02,240 Se konsa, lè nou ale nan paj an kay, nou rann sa a Modèl home.html 736 00:39:02,240 --> 00:39:03,490 ki pral louvri leve. 737 00:39:03,490 --> 00:39:06,240 Pas la se nan pòs egal a, e ki sa sa a 738 00:39:06,240 --> 00:39:10,260 fè se, sonje nou gen pòs sa a modèl, se konsa nou chwazi tout poto yo, 739 00:39:10,260 --> 00:39:13,890 ak Lè sa a yon lòt bagay ou kapab fè, ou ka presize kloz nan KI KOTE, 740 00:39:13,890 --> 00:39:16,910 ou ka presize yon lòd pa, e konsa nou pran 741 00:39:16,910 --> 00:39:18,820 tout nan poto yo ki jwenn chwazi, ak Lè sa a 742 00:39:18,820 --> 00:39:22,590 nou lòd yo pa nan post.date.descending. 743 00:39:22,590 --> 00:39:25,030 Apre sa, ki pral presize, lè yo aktyèlman soti, 744 00:39:25,030 --> 00:39:29,250 yon sèl la ki pi resan pral trè premye yon sèl. 745 00:39:29,250 --> 00:39:31,420 >> Lè sa a,, nou konsa, nan modèl la home.html, 746 00:39:31,420 --> 00:39:34,240 kidonk kite a aktyèlman louvri moute ki Modèl reyèlman rapid, 747 00:39:34,240 --> 00:39:36,760 ak pran yon gade nan ki jan ki nan travay. 748 00:39:36,760 --> 00:39:42,130 Lè sa a se pa gwo HTML, men èspere ke, nou ka konsantre sou Piton a. 749 00:39:42,130 --> 00:39:46,960 >> Se konsa, gen nan yon ap mennen nan Add New nan Post, ak kidonk sa a presize wout la 750 00:39:46,960 --> 00:39:51,580 nan flakon an ke nou defini, ki se dwa isit la. 751 00:39:51,580 --> 00:39:56,310 Sa a se nouvo wout la pòs, epi nou presize ke moute isit la. 752 00:39:56,310 --> 00:40:00,450 Se konsa, ki se yon lyen ki pral lè sa a ale ak sa yo ki wout ki nan sèvè a Flask. 753 00:40:00,450 --> 00:40:03,820 >> Bagay la plis enteresan se sa a pou riban isit la. 754 00:40:03,820 --> 00:40:07,685 Se konsa, nou presize ke sa a pòs paramèt ki 755 00:40:07,685 --> 00:40:09,560 te pase nan an fonksyon render_template, 756 00:40:09,560 --> 00:40:13,550 pou chak pòs nan la a post objè ki vin pase nan. 757 00:40:13,550 --> 00:40:16,600 Nou vle enprime soti tit la post, nan H1, 758 00:40:16,600 --> 00:40:21,930 Lè sa a, pi ba a ak, nou vle enprime soti tèks la pòs ki nan yon paragraf. 759 00:40:21,930 --> 00:40:25,710 >> Ak isit la, nou kapab aktyèlman rele yon fonksyon Piton, 760 00:40:25,710 --> 00:40:35,130 pou nou ka rele strftim, ST-RF-tan, epi ou ka pase nan fòma fisèl la 761 00:40:35,130 --> 00:40:37,064 ke ou vle enprime done yo soti nan. 762 00:40:37,064 --> 00:40:39,980 Se konsa, li la se trè bèl ke ou ka aktyèlman rele fonksyon sa a Piton 763 00:40:39,980 --> 00:40:41,090 soti nan isit la. 764 00:40:41,090 --> 00:40:44,370 Ou pa dwe fè fòma a sou bò kontwolè, paske reyèlman, 765 00:40:44,370 --> 00:40:47,770 fòma dat la se yon bagay ki ou vle fè fas nan View. 766 00:40:47,770 --> 00:40:51,480 >> Apre sa, tout moun sa yo pousan bagay sa yo se pa super enpòtan. 767 00:40:51,480 --> 00:40:55,270 Si ou gade moute dokiman an pou fonksyon an strftim nan Piton, 768 00:40:55,270 --> 00:40:57,040 li presize tout bagay sa yo bagay sa yo, men sa a 769 00:40:57,040 --> 00:40:59,190 ki jan, lè nou te kap nan paj an kay isit la, 770 00:40:59,190 --> 00:41:04,440 li fòma sa a ak yon bèl dat, epi li espesifye AM oswa PM, 771 00:41:04,440 --> 00:41:09,410 men nòmalman, si nou pa t 'gen sa a isit la, 772 00:41:09,410 --> 00:41:14,024 ou pral pwobableman jwenn kèk fatra dat sa a pa t 'gade trè bon. 773 00:41:14,024 --> 00:41:15,940 Lè sa a, nou presize an post.text, ak mwen te kapab 774 00:41:15,940 --> 00:41:19,460 te mete yon koup la liy kraze isit la, jis 775 00:41:19,460 --> 00:41:21,820 yo mete kèk espas ant chak pòs. 776 00:41:21,820 --> 00:41:26,270 >> Se konsa, mwen panse ke pi enpòtan an bagay nan egzanp sa a, 777 00:41:26,270 --> 00:41:28,697 se ke ou ka sèvi ak sa a pou riban. 778 00:41:28,697 --> 00:41:30,780 Lè sa a se analoji nan bagay ou ka fè nan PHP. 779 00:41:30,780 --> 00:41:32,905 Ou ka repekte nan, tout bagay vin te pase nan, 780 00:41:32,905 --> 00:41:36,719 e konsa, olye pou yo gen fè kopi / keratin, kopi / keratin tout HTML a, 781 00:41:36,719 --> 00:41:40,010 ou jis gen yo ekri li yon fwa, ak Lè sa ou ka repekte sou tout nan poto yo. 782 00:41:40,010 --> 00:41:41,510 >> Lè sa a se yon bagay komen ki ou vle 783 00:41:41,510 --> 00:41:44,510 fè, lè ou gen yon anpil nan done, se ke pou tout bagay nan done ou a, 784 00:41:44,510 --> 00:41:48,370 ou vle fè yon bagay menm jan an. 785 00:41:48,370 --> 00:41:51,690 Lè sa a,, jis sonje, ke lè ou vle enprime soti yon bagay klèman 786 00:41:51,690 --> 00:41:54,780 nan HTML a, ou sèvi ak aparèy òtopedik yo doub isit la, 787 00:41:54,780 --> 00:41:57,820 men Lè sa a lè ou vle ou presize kèk enfòmasyon sou yon kondisyon, 788 00:41:57,820 --> 00:42:02,430 oswa sou yon pou riban, ou itilize bracket a pousan. 789 00:42:02,430 --> 00:42:08,730 >> Se konsa, pral tounen nan Piton a Kòd, se konsa ke eksplike 790 00:42:08,730 --> 00:42:12,242 sa k ap pase nan prensipal la wout, lè nou ale la, 791 00:42:12,242 --> 00:42:14,450 li jis montre tout nan posts, men Lè sa a kesyon an 792 00:42:14,450 --> 00:42:17,440 se, ki jan nou aktyèlman jwenn posts nan baz done a, ki 793 00:42:17,440 --> 00:42:18,970 se yon ti jan ti kras pi plis enteresan. 794 00:42:18,970 --> 00:42:23,960 >> Se konsa, lè ou klike sou New a Post lyen, ki nou te wè isit la, 795 00:42:23,960 --> 00:42:26,000 li redireksyon yo ou nan fòm sa a. 796 00:42:26,000 --> 00:42:29,580 Epi sa a, jis yon apèl nan senp yo fonksyon render_template, ki Lè sa a 797 00:42:29,580 --> 00:42:32,110 pase nan post la nouvo nan HTML fòm. 798 00:42:32,110 --> 00:42:36,212 Se konsa, kite a pran yon gade nan sa. 799 00:42:36,212 --> 00:42:37,420 Se konsa, yon sèl sa a se trè senp. 800 00:42:37,420 --> 00:42:45,110 Li te gen yon fòm HTML ki senp, ki pral gade yon ti jan yo konnen yo, 801 00:42:45,110 --> 00:42:47,380 ki baze sou fòm yo nan CS50 Finans. 802 00:42:47,380 --> 00:42:49,940 Se konsa,, nou presize isit la, aksyon an. 803 00:42:49,940 --> 00:42:52,435 Ak isit la, si w ap travay ak PHP, nòmalman, li 804 00:42:52,435 --> 00:42:55,930 ta dwe yon bagay tankou, create.PHP, men isit la 805 00:42:55,930 --> 00:42:59,960 nou aktyèlman presize yon wout nan sèvè a Flask. 806 00:42:59,960 --> 00:43:02,520 Se konsa, sa a koresponn wout nan wout la kreye 807 00:43:02,520 --> 00:43:05,680 ke nou gen isit la, ki nou pral antre nan nan yon dezyèm fwa. 808 00:43:05,680 --> 00:43:07,630 >> Se konsa,, nou presize ke li nan yon metòd post, 809 00:43:07,630 --> 00:43:09,820 paske nou vle voye fòm sa a done, epi anjeneral 810 00:43:09,820 --> 00:43:12,945 lè w ap voye done ki sòti nan yon fòm, ou ta ka vle itilize yon demann pòs, 811 00:43:12,945 --> 00:43:15,760 jis pou ou pa fini ak sa a gwo, maladwa URL. 812 00:43:15,760 --> 00:43:18,970 Men, ou ta ka tou sèvi ak yon demann JWENN, epi yo pase li nan ak varyab routage, 813 00:43:18,970 --> 00:43:21,170 men pou fòm, li nan bèl a yon demann pòs isit la. 814 00:43:21,170 --> 00:43:24,620 Se konsa, lè sa a, jis tankou ou ta fè ak HTML ak PHP, 815 00:43:24,620 --> 00:43:28,420 ou ka presize sa yo entrain tèks, epi ou ka presize non an nan yo, 816 00:43:28,420 --> 00:43:33,490 e ke sa a non an ki pral jwenn te pase nan objè a demann nan Flask. 817 00:43:33,490 --> 00:43:36,960 >> Lè sa a, nou te yon soumèt bouton ki di Post. 818 00:43:36,960 --> 00:43:40,760 Ak isit la, Post se non an nan la bouton, paske li nan yon pòs blog, 819 00:43:40,760 --> 00:43:42,700 men isit la, pòs se metòd la demann. 820 00:43:42,700 --> 00:43:47,060 Se konsa, moun yo se menm bagay pawòl Bondye a men aktyèlman gen rapò. 821 00:43:47,060 --> 00:43:48,460 Yeah 822 00:43:48,460 --> 00:43:54,800 >> Pral tounen nan kòd la Piton, lè nou rele kreye nan metòd, 823 00:43:54,800 --> 00:43:57,702 remake isit la ke ou kapab aktyèlman presize nan wout la 824 00:43:57,702 --> 00:44:00,650 metòd yo demann ke ou vle aksepte, 825 00:44:00,650 --> 00:44:04,770 e konsa isit la, mwen presize ke mwen sèlman vle aksepte yon metòd Post. 826 00:44:04,770 --> 00:44:09,800 Se konsa, si mwen aktyèlman eseye vizite paj la dirèkteman, ki se lè l sèvi avèk yon demann JWENN, 827 00:44:09,800 --> 00:44:11,700 li pral fè m 'konnen "Metòd pa pèmèt." 828 00:44:11,700 --> 00:44:15,840 >> Se konsa, ou gen paj, sòt de tankou sa a kreye paj, ki se sèlman mwen 829 00:44:15,840 --> 00:44:20,192 reyèlman lè l sèvi avèk kòm yon fason pou fòm nan yo debarase soumèt, 830 00:44:20,192 --> 00:44:22,900 ou ka presize ke ou pa fè sa vle moun yo pral kapab ale la 831 00:44:22,900 --> 00:44:25,650 dirèkteman atravè yon demann JWENN, oswa si ou pa t 'vle, 832 00:44:25,650 --> 00:44:28,580 pou kèk rezon, se yon Post demann, ou ta ka jis presize JWENN isit la, 833 00:44:28,580 --> 00:44:32,720 men nan egzanp sa a, nou jis vle Post demann lan ale deyò. 834 00:44:32,720 --> 00:44:38,700 >> Se konsa, lè se create_post rele, lè nou vizite ki via Post demann lan, 835 00:44:38,700 --> 00:44:43,600 chak fwa ou ale nan yon patikilye wout, gen nan demann sa a objè, 836 00:44:43,600 --> 00:44:46,640 epi nou te gen yo enpòte demann nan tèt la anpil, 837 00:44:46,640 --> 00:44:49,640 men gen nan demann sa a objè ki vin pase nan, 838 00:44:49,640 --> 00:44:53,210 epi ou kapab jwenn aksè nan fòm done yo, ki pral otomatikman jwenn plen 839 00:44:53,210 --> 00:44:55,070 lè ou voye mande ki sòti nan yon fòm. 840 00:44:55,070 --> 00:44:56,990 >> Lè sa a,, ki sa mwen panse se vrèman fre, se 841 00:44:56,990 --> 00:45:02,840 ki nan fòm objè a jwenn te pase an, se jis yon diksyonè Piton ki 842 00:45:02,840 --> 00:45:10,560 gen, si ou access-- se konsa isit la, se pou m 'rale moute HTML a akote l, jis 843 00:45:10,560 --> 00:45:17,670 konsa ou ka gen sa kòm yon referans, wi, se konsa 844 00:45:17,670 --> 00:45:21,060 non sa yo ke nou presize isit la pou jaden yo diferan, se konsa 845 00:45:21,060 --> 00:45:23,900 tit la ak tèks la, nou Lè sa a, jis itilize sa yo sou isit la 846 00:45:23,900 --> 00:45:27,110 kòm endis nan fòm done yo. 847 00:45:27,110 --> 00:45:28,950 Se konsa, sa a, se super pratik. 848 00:45:28,950 --> 00:45:33,320 >> Se sak fè nou rele post.create, ki pral kreye ak otomatikman Insert 849 00:45:33,320 --> 00:45:36,850 sa a nouvo pòs objè nan baz done a. 850 00:45:36,850 --> 00:45:40,690 Apre sa, mwen panse ke sa a kreye fonksyon isit la se yon egzanp vrèman fre nan ki jan 851 00:45:40,690 --> 00:45:44,900 pwisan Flask se ak ap travay ak sa a, paske si ou te fè yon bagay 852 00:45:44,900 --> 00:45:48,660 nan PHP, ou ka gen yo fè yon anpil nan validation, 853 00:45:48,660 --> 00:45:51,730 ou ta gen Lè sa a, etabli yon koneksyon baz done, 854 00:45:51,730 --> 00:45:55,210 ou ta gen Lè sa a, egzekite rechèch la SQL, 855 00:45:55,210 --> 00:45:59,550 men isit la nou jis gen sa a bèl post.create, ki sa nou kapab lè sa a jis 856 00:45:59,550 --> 00:46:01,520 jwenn enfòmasyon an soti nan objè a demann, 857 00:46:01,520 --> 00:46:05,370 ak Lè sa a pase li nan yon nouvo afiche ke nou ap kreye. 858 00:46:05,370 --> 00:46:07,850 >> Lè sa a,, dènye a trè bagay nou vle fè, 859 00:46:07,850 --> 00:46:09,630 se yo redireksyon nan itilizatè tounen nan kay la. 860 00:46:09,630 --> 00:46:13,020 Se konsa, nou sèvi ak sa a Flakon redireksyon fonksyon. 861 00:46:13,020 --> 00:46:17,770 Apre sa, yon bagay ke nou pa te wè anvan, te fonksyon URL sa a. 862 00:46:17,770 --> 00:46:21,970 Se konsa, URL la pou fonksyon pèmèt ou pase nan aktyèlman non an 863 00:46:21,970 --> 00:46:26,090 nan yon fonksyon nan kòd Piton ou, olye ke wout la patikilye 864 00:46:26,090 --> 00:46:26,720 ke li nan nan. 865 00:46:26,720 --> 00:46:32,107 >> Se konsa, mwen te kapab gen menm jan fasil reyorante resous yon itilizatè yo koupe, 866 00:46:32,107 --> 00:46:37,050 ki ta voye li tounen lakay, men lè l sèvi avèk URL la pou fonksyon se bèl, 867 00:46:37,050 --> 00:46:39,990 paske si ou chanje a kote kote bagay sa yo ye a, 868 00:46:39,990 --> 00:46:44,080 kidonk kite a di ke mwen chanje a lakay yo nan fèt nan / Home olye de sa, 869 00:46:44,080 --> 00:46:47,040 sa a ta toujou Lè sa a, retounen / kay la, paske aktyèlman ale ak sanble moute 870 00:46:47,040 --> 00:46:50,770 non an nan fonksyon an, epi li pral ba ou tounen URL la pou sa. 871 00:46:50,770 --> 00:46:52,490 >> Se konsa, sòt de sou mòn lan sipozisyon ke w ap 872 00:46:52,490 --> 00:46:55,489 plis chans yo chanje kote bagay sa yo ye a, pase non yo nan fonksyon yo. 873 00:46:55,489 --> 00:46:58,840 Ou kapab sèvi ak sa a vrèman bèl URL pou fonksyon. 874 00:46:58,840 --> 00:47:02,470 Apre sa, yon sèl bagay yo dwe okouran de ki se yon ti jan difisil, 875 00:47:02,470 --> 00:47:05,750 se ke ou panse ou ta ka jis rele redireksyon sou URL la pou, 876 00:47:05,750 --> 00:47:10,600 men aktyèlman tout nan wout yo gen retounen kèk sòt de tèks ak HTML, 877 00:47:10,600 --> 00:47:14,360 kidonk, ou gen aktyèlman yo retounen apèl la redireksyon. 878 00:47:14,360 --> 00:47:18,379 Sinon, ou pral jwenn yon bagay valab sou pa retounen yon fisèl, 879 00:47:18,379 --> 00:47:21,420 paske tout moun sa yo gen retounen HTML a ou aktyèlman vle rann. 880 00:47:21,420 --> 00:47:26,980 >> Se konsa, lè ou rele redireksyon a, li redireksyon yo ou nan paj la, 881 00:47:26,980 --> 00:47:30,270 men li aktyèlman retounen HTML a ou bezwen egzekite ki redireksyon. 882 00:47:30,270 --> 00:47:34,430 883 00:47:34,430 --> 00:47:37,110 Tounen nan paj an kay. 884 00:47:37,110 --> 00:47:39,200 Se konsa, nou gen de opinyon sa yo diferan. 885 00:47:39,200 --> 00:47:40,132 Nou gen gade nan kay la. 886 00:47:40,132 --> 00:47:41,590 Oswa, Mwen devine mwen ta dwe di modèl. 887 00:47:41,590 --> 00:47:44,190 Nou gen de modèl sa yo, modèl nan kay ki 888 00:47:44,190 --> 00:47:48,500 montre tout nan posts nou an, epi Lè sa a, nou gen bagay sa a anons, 889 00:47:48,500 --> 00:47:52,970 ak ki lè ou klike sou post la, li ale nan yon wout nouvo nan flakon an, 890 00:47:52,970 --> 00:47:55,920 men sa pa nesesèman fè wout gen yon modèl koresponn lan. 891 00:47:55,920 --> 00:47:59,290 892 00:47:59,290 --> 00:48:01,560 Ou pa gen yo wè anyen, men ou ka toujou 893 00:48:01,560 --> 00:48:04,090 gen travay sa a pral sou dèyè sèn nan. 894 00:48:04,090 --> 00:48:07,450 Lè sa a, ou jwenn reyorante resous do nan paj la lakay yo. 895 00:48:07,450 --> 00:48:12,230 Ak definitivman, li fasil nan travay nan kèk CSS joli nan modèl la 896 00:48:12,230 --> 00:48:15,580 , epi fè sa a gade yon anpil joli, men tout nan lojik nan prensipal 897 00:48:15,580 --> 00:48:18,590 ki gen la nan Piton a. 898 00:48:18,590 --> 00:48:20,020 >> Nenpòt kesyon sou sa egzanp? 899 00:48:20,020 --> 00:48:22,760 Mwen konnen gen yon anpil nan bagay sa yo diferan pase sou la, 900 00:48:22,760 --> 00:48:25,341 yon anpil nan bagay sa yo nou pa te wè anvan, men tankou anyen. 901 00:48:25,341 --> 00:48:25,840 Yeah. 902 00:48:25,840 --> 00:48:28,346 >> ODYANS 1: sa ou dwe fè anyen espesyal nan fwote done yo sa a, se 903 00:48:28,346 --> 00:48:29,600 vini nan soti nan fòm nan? 904 00:48:29,600 --> 00:48:31,109 Mwen remake ou jis te di "kreye," 905 00:48:31,109 --> 00:48:33,900 EZRA Zigmond: Yeah, se konsa sa a, se aktyèlman, sa a, se yon pwen reyèlman bon. 906 00:48:33,900 --> 00:48:36,350 , Ou Se konsa, kesyon an te bezwen yo tcheke, epi fè sèten 907 00:48:36,350 --> 00:48:39,190 ke done a se ki valab, ak fè nenpòt ki sòt de épuration 908 00:48:39,190 --> 00:48:41,840 a asire w ke li se ki valab, paske jan ou ka wè isit la, 909 00:48:41,840 --> 00:48:42,660 Mwen pa fè sa. 910 00:48:42,660 --> 00:48:48,140 Se konsa nou wè sa ki rive si mwen afiche yon bagay vid. 911 00:48:48,140 --> 00:48:51,190 Se konsa, li pral aktyèlman jis fè yon vid pòs, epi nwasi nan dattim la. 912 00:48:51,190 --> 00:48:55,990 >> Se konsa, an reyalite, ou ta pwobableman vle fè yon bagay tankou, 913 00:48:55,990 --> 00:49:04,749 petèt presize si tit ki egal a fisèl la vid, lè sa a pa fè sa. 914 00:49:04,749 --> 00:49:07,290 Oswa, sèlman fè li si tit la se pa egal a fisèl la vid. 915 00:49:07,290 --> 00:49:10,330 Se konsa, li fè sa ki pa aktyèlman otomatikman pran swen nan ke foubi 916 00:49:10,330 --> 00:49:12,820 pou ou, pou ou toujou bezwen fè sa. 917 00:49:12,820 --> 00:49:14,330 Yeah, bon kesyon. 918 00:49:14,330 --> 00:49:18,497 >> ODYANS 2: Èske li fwote pou piki fen? 919 00:49:18,497 --> 00:49:19,890 Eske ou konnen? 920 00:49:19,890 --> 00:49:22,830 >> EZRA Zigmond: Èspere ke, peewee fè sa. 921 00:49:22,830 --> 00:49:25,830 Mwen panse ke li ta sètènman gen yon bèl move bibliyotèk si li pa t 'fè sa. 922 00:49:25,830 --> 00:49:29,511 923 00:49:29,511 --> 00:49:32,690 Mwen pa konnen egzakteman. 924 00:49:32,690 --> 00:49:34,820 Mwen ta gen fè yon gade nan nan sijè rechèch ke li pwodwi. 925 00:49:34,820 --> 00:49:38,980 Mwen panse ke, si mwen tape nan yon pòs blog ki sòt de gade 926 00:49:38,980 --> 00:49:46,370 tankou yon atak piki SQL, yon bagay tankou sa a, si sa a 927 00:49:46,370 --> 00:49:49,370 se tankou yon jaden modpas oswa yon bagay, ou ta ka fè yon bagay tankou sa a. 928 00:49:49,370 --> 00:49:53,410 >> Mwen panse ke ap toujou jwenn literalman afiche, 929 00:49:53,410 --> 00:49:59,200 men mwen panse ke peewee fè kèk sòt de épuration nan done yo 930 00:49:59,200 --> 00:50:01,680 anvan li aktyèlman ègzekutra li. 931 00:50:01,680 --> 00:50:04,510 >> ODYANS 1: Sa jaden tèks se fèt yo pran tèks plenn, dwa? 932 00:50:04,510 --> 00:50:05,710 >> EZRA Zigmond: Yeah, li ye. 933 00:50:05,710 --> 00:50:06,465 Yeah. 934 00:50:06,465 --> 00:50:09,590 Se konsa, mwen panse ke tout moun nan la, se konsa sa a se konpòtman kòrèk, ki pral fè sa, 935 00:50:09,590 --> 00:50:12,170 men mwen panse ke peewee èspere ke fè fè 936 00:50:12,170 --> 00:50:13,780 kèk sòt de pwoteksyon sou fen yo. 937 00:50:13,780 --> 00:50:16,090 Men, si ou te vle doub chèk sa, gen 938 00:50:16,090 --> 00:50:19,530 fason lè ou jenere yon query. 939 00:50:19,530 --> 00:50:22,622 se konsa ou pa bezwen egzekite li dirèkteman. 940 00:50:22,622 --> 00:50:24,330 Mwen ta dwe pran yon gade nan kopi dokiman yo, 941 00:50:24,330 --> 00:50:27,930 men ou ka aktyèlman wè nan SQL ke li se génération, 942 00:50:27,930 --> 00:50:30,840 ak pran yon gade nan sa a, epi fè asire w ke li se chape bagay sa yo. 943 00:50:30,840 --> 00:50:33,700 >> Yon lòt rezon ki fè ou ta ka vle gade nan SQL an 944 00:50:33,700 --> 00:50:37,920 ki se peewee sorti, se si bagay sanble yo dwe ale reyèlman dousman, 945 00:50:37,920 --> 00:50:41,090 ou ka pran yon gade ak wè sa ki li a aktyèlman fè, paske li nan pafwa 946 00:50:41,090 --> 00:50:44,670 fasil yo aksidantèlman ajoute nan, wout la ou ekri li, 947 00:50:44,670 --> 00:50:47,880 ou ka aksidantèlman genyen li chwazi baz done a tout antye premye, 948 00:50:47,880 --> 00:50:50,230 ak Lè sa a fè kèk operasyon sòt sou sa, lè ou reyèlman 949 00:50:50,230 --> 00:50:51,320 vle di ke yo chwazi yon sou. 950 00:50:51,320 --> 00:50:53,560 >> Se konsa, si bagay sa yo yo pa byen ale dwat, 951 00:50:53,560 --> 00:50:57,300 li nan bon pran yon gade nan demann lan ki nan aktyèlman ap resevwa pwodwi. 952 00:50:57,300 --> 00:50:57,800 Yeah. 953 00:50:57,800 --> 00:51:02,100 >> ODYANS 2: Lè ou fèk kòmanse, ou mete nan pò a kòm 5000. 954 00:51:02,100 --> 00:51:02,904 >> EZRA Zigmond: Yeah. 955 00:51:02,904 --> 00:51:06,070 ODYANS 2: Èske default la ak peewee, oswa se ke yon bagay ou kapab chanje? 956 00:51:06,070 --> 00:51:10,870 EZRA Zigmond: Wi, se konsa nan pò se default ak Flask. 957 00:51:10,870 --> 00:51:13,061 Si ou kouri li san yo pa espesifye anyen, 958 00:51:13,061 --> 00:51:14,310 li pral otomatikman fè sa. 959 00:51:14,310 --> 00:51:16,060 Mwen kwè, mwen ta gen a doub tcheke sa a, 960 00:51:16,060 --> 00:51:19,130 men ou ka presize ke an app.run a, Mwen panse ke ou ka fè yon bagay tankou, 961 00:51:19,130 --> 00:51:19,629 pò = 8080. 962 00:51:19,629 --> 00:51:22,375 963 00:51:22,375 --> 00:51:23,750 Se pou nou bay ki yon eseye reyèl rapid. 964 00:51:23,750 --> 00:51:29,100 965 00:51:29,100 --> 00:51:32,230 Yeah, se konsa ou ka jis presize pò = 8080, epi li pral kouri li a, 966 00:51:32,230 --> 00:51:36,130 ki mwen panse ke, si ou te vle kouri li sou IDE a, mwen pa te eseye sa a soti, 967 00:51:36,130 --> 00:51:38,527 men mwen panse ke si ou kouri l 'sou pò 8080, 968 00:51:38,527 --> 00:51:40,360 ou ta pwobableman kapab jwenn aksè nan sèvè a, 969 00:51:40,360 --> 00:51:41,870 jis tankou ou te pou sit entènèt la. 970 00:51:41,870 --> 00:51:44,390 >> Yeah, men li la fasil chanje ke si ou 971 00:51:44,390 --> 00:51:48,540 gen nenpòt sòt de tankou port-voye bagay sa yo ke ou bezwen fè. 972 00:51:48,540 --> 00:51:50,410 >> Nenpòt lòt kesyon? 973 00:51:50,410 --> 00:51:50,916 Yeah? 974 00:51:50,916 --> 00:51:53,416 ODYANS 1: Se konsa, mwen te wè nan ou modèl ki, menm jan ou mansyone, 975 00:51:53,416 --> 00:51:55,647 ou gen ou presize nan baz done pou chak objè. 976 00:51:55,647 --> 00:51:58,105 Ou rive konnen, fè sa ki ki fè li reyèlman fasil si ou 977 00:51:58,105 --> 00:52:03,210 gen anpil bagay nan baz done sklit ke ou vle pou itilize pou yon sèl app sou sit wèb ★ 978 00:52:03,210 --> 00:52:07,210 ke ou ka jis presize yon pakèt moun nan yo menm diferan nan modèl ou a? 979 00:52:07,210 --> 00:52:11,620 >> EZRA Zigmond: Yeah, kite m ' louvri ki moute reyèl rapid. 980 00:52:11,620 --> 00:52:17,570 Se konsa, ou ap di, si ou vle gen yon pakèt moun sou diferan yon bagay, petèt 981 00:52:17,570 --> 00:52:22,670 renmen ak elèv yo, pou kèk rezon ki fè, yon bagay tankou sa? 982 00:52:22,670 --> 00:52:26,870 Yeah, se konsa mwen panse ke ou toujou, chak modèl 983 00:52:26,870 --> 00:52:30,652 ta gen yo toujou gen jis youn baz done asiyen nan li, 984 00:52:30,652 --> 00:52:32,610 men si ou te vle gen modèl diferan ki 985 00:52:32,610 --> 00:52:35,818 te diferan objè baz done asiyen nan li, ou ta ka definitivman fè sa. 986 00:52:35,818 --> 00:52:43,070 Se konsa, si mwen te kreye yon nouvo, yon bagay tankou sa a, 987 00:52:43,070 --> 00:52:47,000 e kounye a, sa a se yon elèv ki sanble etranj tankou yon pòs blog, 988 00:52:47,000 --> 00:52:49,390 Mwen te kapab presize ke an baz done ki egal a db_2 isit la. 989 00:52:49,390 --> 00:52:51,390 Se konsa, mwen panse ke sa ka a fason prensipal ou ka fè sa. 990 00:52:51,390 --> 00:52:54,560 991 00:52:54,560 --> 00:52:56,200 >> Fre. 992 00:52:56,200 --> 00:52:58,410 Nenpòt lòt kesyon? 993 00:52:58,410 --> 00:53:02,170 >> Se konsa, jis a fini moute yon ti kras ti jan, isit la gen kèk resous, 994 00:53:02,170 --> 00:53:06,030 ak glisad sa yo pral afiche sou entènèt pou ou kapab aktyèlman ale nan lyen sa yo. 995 00:53:06,030 --> 00:53:08,500 Resous yo pi byen yo se reyèlman dokiman an pou Flask 996 00:53:08,500 --> 00:53:09,930 ak peewee tèt yo. 997 00:53:09,930 --> 00:53:12,940 Yo ap ekri vrèman byen, mwen panse ke. 998 00:53:12,940 --> 00:53:18,180 Se konsa, sit entènèt la Flask se isit la, ak yo gen yon leson patikilye ki QuickStart 999 00:53:18,180 --> 00:53:20,710 pral mache nan menm jan an bagay sa yo ki sa mwen te mache nan tout, 1000 00:53:20,710 --> 00:53:23,560 men si ou vle nenpòt ki sòt de revizyon nan bagay sa yo ke mwen te ale sou yo, 1001 00:53:23,560 --> 00:53:26,200 oswa ou te panse ke mwen eksplike yon bagay nan yon fason konfizyon, 1002 00:53:26,200 --> 00:53:28,390 yo pral gen egzanp menm jan an a. 1003 00:53:28,390 --> 00:53:31,570 >> Peewee gen dokiman, ak yo gen yon leson patikilye QuickStart 1004 00:53:31,570 --> 00:53:34,650 ki ale sou paramèt prensipal yo ke ou ta vle sèvi ak. 1005 00:53:34,650 --> 00:53:38,900 Se konsa, bagay sa yo mwen te pale osijè de ak défaut yo inik, ak ki espesifye, 1006 00:53:38,900 --> 00:53:42,710 kalite sa yo diferan nan jaden yo ki ou ka itilize, sa yo ki ta tout dwe la. 1007 00:53:42,710 --> 00:53:44,690 >> Epitou, si ou gen kesyon sou peewee, 1008 00:53:44,690 --> 00:53:47,530 epi ou afiche yo sou Stackoverflow, nèg la ki te fè peewee aktyèlman 1009 00:53:47,530 --> 00:53:49,500 ale sou yo ak sou reponn moun pafwa. 1010 00:53:49,500 --> 00:53:53,200 Si ou gen yon kesyon, èspere ke li pral kapab reponn li, 1011 00:53:53,200 --> 00:53:54,867 paske li te ekri tout bagay la. 1012 00:53:54,867 --> 00:53:56,700 Mwen panse ke sa a, se tout bagay Mwen te vle kouvri. 1013 00:53:56,700 --> 00:53:58,930 Mèsi pou vini soti. 1014 00:53:58,930 --> 00:54:02,688