1 00:00:00,000 --> 00:00:00,499 2 00:00:00,499 --> 00:00:03,227 [CHWARAE CERDDORIAETH] 3 00:00:03,227 --> 00:00:04,705 4 00:00:04,705 --> 00:00:05,830 EZRA ZIGMOND: Hi, bawb. 5 00:00:05,830 --> 00:00:08,020 Diolch am ddod allan heddiw. 6 00:00:08,020 --> 00:00:10,660 Mae'r seminar hwn yn "Python Web Apps gyda Fflasg. " 7 00:00:10,660 --> 00:00:14,510 >> Felly, dw i'n mynd i fod yn siarad ychydig am pam 8 00:00:14,510 --> 00:00:17,400 efallai y byddwch am ddefnyddio Fflasg i wneud apps we gyda Python, yn hytrach na 9 00:00:17,400 --> 00:00:21,556 i rai fframweithiau eraill i maes 'na, fel Django, sef y mwyaf adnabyddus. 10 00:00:21,556 --> 00:00:24,330 Mae'r is-deitl yw "a peewee, "sy'n rhywbeth 11 00:00:24,330 --> 00:00:27,250 rydym yn mynd i siarad am sut i ryngweithio gyda chronfeydd data SQL. 12 00:00:27,250 --> 00:00:29,610 Mae'n ei gwneud yn neis iawn. 13 00:00:29,610 --> 00:00:32,390 >> Felly, dyma dim ond dirywio cyflym yr hyn yr wyf eisiau mynd drosodd. 14 00:00:32,390 --> 00:00:35,520 Felly, yn gyntaf, dim ond un sleid sy'n mynd i fod yn CychwynChwim, 15 00:00:35,520 --> 00:00:38,530 a dyna sut i gael popeth osod ar eich cyfrifiadur. 16 00:00:38,530 --> 00:00:41,760 Rydw i'n mynd i gael ei arddangos mae hyn ar fy beiriant Mac lleol, 17 00:00:41,760 --> 00:00:45,220 dim ond oherwydd dyna lle dwi wedi gwneud hyn o'r blaen, dwi'n fwyaf cyfforddus ag ef, 18 00:00:45,220 --> 00:00:48,510 ond mae hyn yn bendant yn bosibl ar yr CD50 IDE. 19 00:00:48,510 --> 00:00:52,050 >> Felly, ar ôl hynny, yr wyf am cyflwyno beth Fflasg yw, 20 00:00:52,050 --> 00:00:55,089 ac argyhoeddi chi pam dylech ei ddefnyddio yn y lle cyntaf. 21 00:00:55,089 --> 00:00:56,880 Yna, byddaf yn rhoi cyflym enghraifft o'r hyn yr ydych 22 00:00:56,880 --> 00:01:00,550 yn gallu ei wneud yn Fflasg, yn enghraifft cyflym o'r hyn y gallwch ei wneud yn peewee, 23 00:01:00,550 --> 00:01:05,010 ac yna byddaf yn dangos mwy i chi cwblhau cais enghraifft 24 00:01:05,010 --> 00:01:07,520 fy mod yn rhoi at ei gilydd ein bod yn Gall cerdded drwy'r gyda'i gilydd. 25 00:01:07,520 --> 00:01:10,040 >> Ac yna yn olaf, yn y sleid olaf, yr wyf wedi 26 00:01:10,040 --> 00:01:12,730 rhai adnoddau eich bod yn edrych ar-lein am fwy o wybodaeth. 27 00:01:12,730 --> 00:01:15,560 Nid yw hon yn gyflawn tiwtorial o sut i ddefnyddio Fflasg. 28 00:01:15,560 --> 00:01:18,140 A byddaf yn gobeithio i adael rhywfaint o amser ar gyfer cwestiynau. 29 00:01:18,140 --> 00:01:21,050 Dylai unrhyw un gwylio yn lleol, dim ond fel, gweiddi allan yn y canol 30 00:01:21,050 --> 00:01:22,340 os oes gennych unrhyw gwestiynau. 31 00:01:22,340 --> 00:01:27,150 >> Felly gosod pethau yn gyflym, os ydych am ddilyn ar hyd, 32 00:01:27,150 --> 00:01:29,240 neu os ydych am gael hyn i fyny ar eich peiriant eich hun, 33 00:01:29,240 --> 00:01:32,440 Rydw i'n mynd i fod yn defnyddio Python 2.7.10. 34 00:01:32,440 --> 00:01:35,860 Fflasg yn gweithio gyda Python 3, ond yr wyf yn hoffi 35 00:01:35,860 --> 00:01:38,660 gan ddefnyddio Python 2, oherwydd mae rhai pecynnau Python sy'n 36 00:01:38,660 --> 00:01:40,910 nid ydynt yn gweithio gyda 3 eto. 37 00:01:40,910 --> 00:01:44,800 Os ydych wedi gosod pip, a oedd yn yn rheolwr pecyn Python, 38 00:01:44,800 --> 00:01:48,190 Yr wyf yn meddwl os yw eich Python yn fwy na neu'n hafal i 2.7.9, 39 00:01:48,190 --> 00:01:52,220 ydych wedi ei osod yn barod, 'i' super hawdd i'w gosod pecynnau hyn. 40 00:01:52,220 --> 00:01:54,990 >> Gallwch ddim pip osod Fflasg, pip gorsedda peewee, 41 00:01:54,990 --> 00:01:58,600 Fel arfer, rhaid i chi redeg sudo unig felly fod y caniatadau yn gweithio allan. 42 00:01:58,600 --> 00:02:01,080 Ac, os ydych yn defnyddio super hen fersiwn o Python, 43 00:02:01,080 --> 00:02:05,100 Rwy'n argymell diweddaru eich Python, neu ddefnyddio EasyInstall i osod Pip. 44 00:02:05,100 --> 00:02:09,180 45 00:02:09,180 --> 00:02:11,120 Felly, y cwestiwn nesaf yw, beth yw Fflasg? 46 00:02:11,120 --> 00:02:13,280 Ac yr wyf yn dyfalu, yn gyntaf yn gwestiwn rhesymol Tybed 47 00:02:13,280 --> 00:02:15,585 am amser hir yw, beth yw app we? 48 00:02:15,585 --> 00:02:17,960 Oherwydd dyna air yr wyf yn meddwl yn cael ei daflu o gwmpas llawer 49 00:02:17,960 --> 00:02:19,240 nad oeddwn yn wir yn gwybod. 50 00:02:19,240 --> 00:02:22,340 Ac yr wyf yn credu bod y gorau enghraifft o'r hyn app we yn, 51 00:02:22,340 --> 00:02:26,960 wir yn CS50 Cyllid, lle nid yw'n wir dim ond gwefan, 52 00:02:26,960 --> 00:02:29,320 ond mae'n rhywbeth yr ydych Gallai fath o ryngweithio â. 53 00:02:29,320 --> 00:02:31,736 Mae cyfrifon defnyddwyr a pob math o bethau gwahanol. 54 00:02:31,736 --> 00:02:35,010 Felly, ble yn union ydych yn tynnu y llinell rhwng yr hyn yn wefan, 55 00:02:35,010 --> 00:02:38,780 a beth yw app we, yn fath o mympwyol, ond yr wyf yn dyfalu y syniad, 56 00:02:38,780 --> 00:02:42,110 mae'n rhywbeth mwy na gwefan ac mae'n gais defnyddiol. 57 00:02:42,110 --> 00:02:46,081 >> Felly, Fflasg yn fframwaith ar gyfer gan wneud apps we gan ddefnyddio Python. 58 00:02:46,081 --> 00:02:48,330 A gobeithio, erbyn diwedd o hyn, byddaf yn argyhoeddi chi 59 00:02:48,330 --> 00:02:52,210 y gallech mewn gwirionedd yn ysgrifennu rhywbeth fel CS50 Cyllid gan ddefnyddio Python, yr wyf yn 60 00:02:52,210 --> 00:02:53,950 fel llawer gwell na PHP, yn bersonol. 61 00:02:53,950 --> 00:02:57,320 >> Felly, Fflasg yw, maent yn galw microframework, ac erbyn hynny, 62 00:02:57,320 --> 00:02:59,800 maent yn golygu ei fod yn iawn syml, ond estynadwy. 63 00:02:59,800 --> 00:03:02,980 Felly, mae wedi dim ond yr hyn yr ydych ei angen, ond os ydych am mwy o nodweddion, 64 00:03:02,980 --> 00:03:04,522 mae'n hawdd i ddod â nhw i mewn. 65 00:03:04,522 --> 00:03:06,480 Ond dim ond am ei fod yn microframework, nid yw'n 66 00:03:06,480 --> 00:03:08,960 yn golygu mai dim ond ar gyfer prosiectau bach. 67 00:03:08,960 --> 00:03:12,590 Mae gen i gysylltiad yma sy'n dweud bod Obama ddefnyddiwyd Fflasg yn 2012 68 00:03:12,590 --> 00:03:14,410 am ei ymgyrch gwefan, a oedd yn gobeithio, 69 00:03:14,410 --> 00:03:16,937 yn rhywbeth o ardystiad. 70 00:03:16,937 --> 00:03:18,770 Ond y peth yr wyf yn 'n sylweddol hoffi am Fflasg 71 00:03:18,770 --> 00:03:22,401 yw hynny, nid yw'n wir yn gwneud unrhyw fath o benderfyniadau ar eich rhan. 72 00:03:22,401 --> 00:03:24,150 Nid yw'r ffaith ein bod siarad am apps ar y we, 73 00:03:24,150 --> 00:03:26,940 Mae'n rhaid i mi gymharu â Ruby ar Rheiliau a Django, y ddau ohonynt 74 00:03:26,940 --> 00:03:30,450 fframweithiau mawr, ond y ddau ohonynt yn gwneud tybiaethau 75 00:03:30,450 --> 00:03:33,600 am y ffordd rydych am ei rhyngweithio gyda chronfeydd data, 76 00:03:33,600 --> 00:03:36,900 sut yr ydych am i gyflwyno'ch safbwyntiau, ac maent yn bendant yn 77 00:03:36,900 --> 00:03:38,850 agweddau da at hynny. 78 00:03:38,850 --> 00:03:41,490 >> Er enghraifft, Ruby acha Chledrau Mae hon system cofnodion actif, 79 00:03:41,490 --> 00:03:43,100 sydd yn neis iawn ffordd i ryngweithio â data, 80 00:03:43,100 --> 00:03:45,960 ond os ydych am ddefnyddio Ruby ar Rheiliau, rydych yn fath o clymu i mewn i hynny. 81 00:03:45,960 --> 00:03:47,835 Ond gyda Fflasg, fel y byddaf dangos i chi gyda peewee, 82 00:03:47,835 --> 00:03:49,830 gallwch ddefnyddio pa bynnag fath o gronfa ddata rydych eisiau, 83 00:03:49,830 --> 00:03:53,980 a gallwch dynnu hynny yn fel estyniad i Fflasg. 84 00:03:53,980 --> 00:03:56,350 >> Felly dyna pam yr wyf yn wir yn fel Fflasg, 'i' fod yn 85 00:03:56,350 --> 00:04:01,170 nid yw'n gwneud tybiaethau ar eich rhan yn seiliedig ar bethau nad oes angen i chi mewn gwirionedd. 86 00:04:01,170 --> 00:04:04,440 >> Felly, pam y dylech ddefnyddio Fflasg? 87 00:04:04,440 --> 00:04:08,230 Y manteision yw, 'i jyst Mae wir yn nodweddion craidd 88 00:04:08,230 --> 00:04:09,420 ei adeiladu i mewn iddo sydd ei angen arnoch. 89 00:04:09,420 --> 00:04:11,980 Felly, nid oes rhaid i chi boeni am deall criw cyfan o bethau 90 00:04:11,980 --> 00:04:13,175 nad oes gwir angen i chi. 91 00:04:13,175 --> 00:04:15,060 Nid oes yn rhaid i chi rhaid i chi boeni am droi oddi ar nodweddion 92 00:04:15,060 --> 00:04:16,620 nad oes gwir angen i chi. 93 00:04:16,620 --> 00:04:21,082 >> Ac, fel y soniais, mae'n super hawdd i ychwanegu mewn estyniadau o bethau 94 00:04:21,082 --> 00:04:21,790 bod angen i chi. 95 00:04:21,790 --> 00:04:24,700 Mae rhai ohonynt, Fflasg wedi eu cymorth eu hunain ar ei gyfer. 96 00:04:24,700 --> 00:04:28,230 Felly mae yna rywbeth o'r enw Fflasg admin, sy'n adlewyrchu bod admin 97 00:04:28,230 --> 00:04:32,060 panel fod Django darparu, sy'n rhoi ffordd weledol 'n glws i chi 98 00:04:32,060 --> 00:04:33,405 i weinyddu eich gwefan. 99 00:04:33,405 --> 00:04:35,280 Ond unwaith eto, os ydych yn gwneud rhywbeth syml, 100 00:04:35,280 --> 00:04:39,550 mae'n debyg nad oes angen admin mawr panel, felly yr wyf yn credu bod hynny'n super 'n glws. 101 00:04:39,550 --> 00:04:45,940 Ac mae'r anfanteision yw, bod oes gennych lai bŵer allan o'r bocs. 102 00:04:45,940 --> 00:04:49,660 Felly, pan fyddwch yn agor y tro cyntaf i fyny Fflasg, ac yn eich rhaglen Python, 103 00:04:49,660 --> 00:04:53,150 'ch jyst deipio o Fflasg mewnforio *, neu beth bynnag, 104 00:04:53,150 --> 00:04:55,957 nad ydych yn union yn cael yr holl nodweddion efallai y byddwch eisiau. 105 00:04:55,957 --> 00:04:58,540 Ac felly mae'n rhaid i chi yn fwy penodol rhestru'r nodweddion rydych am. 106 00:04:58,540 --> 00:05:01,990 Felly dyna un anfantais, ond yr wyf yn yn credu bod ar gyfer adeiladu gwe bach 107 00:05:01,990 --> 00:05:04,782 apps fel mod i'n mynd i fod yn dangos chi, nid yw hynny'n wir yn broblem. 108 00:05:04,782 --> 00:05:07,281 A beth y peth olaf yn i fod i ddweud, sydd yn typo, 109 00:05:07,281 --> 00:05:10,240 yw bod llai safonedig confensiynau ar gyfer sut i ddefnyddio Fflasg, 110 00:05:10,240 --> 00:05:12,400 dim ond oherwydd nad oes cymaint o pobl sy'n ei ddefnyddio yn broffesiynol 111 00:05:12,400 --> 00:05:13,191 o'i gymharu â Django. 112 00:05:13,191 --> 00:05:16,380 Felly, os ydych yn edrych rhywbeth fel, "Sut ydw i'n gwneud x" yn Django, 113 00:05:16,380 --> 00:05:18,190 mae'n debyg y byddwch yn ei chael yn. 114 00:05:18,190 --> 00:05:20,260 >> Mae dylunio da batrymau gallwch eu defnyddio, 115 00:05:20,260 --> 00:05:22,660 ond gyda Fflasg, 'i' fath o yn mynd eich ffordd eich hun, 116 00:05:22,660 --> 00:05:24,850 dim ond oherwydd ei fod yn llyfrgell n bert bach. 117 00:05:24,850 --> 00:05:27,100 Felly, y rhai yw'r anfanteision, ond yr wyf yn meddwl 118 00:05:27,100 --> 00:05:29,370 ei fod yn dal i fod yn llyfrgell da i'w defnyddio. 119 00:05:29,370 --> 00:05:31,909 >> Felly gadewch i ni jyst neidio i'r dde i mewn Fflasg. 120 00:05:31,909 --> 00:05:34,200 Mae hyn yn bendant ddim yn mynd i fod yn tiwtorial cyflawn, 121 00:05:34,200 --> 00:05:37,480 ond mae'n rhoi syniad i chi o sut i strwythuro pethau, 122 00:05:37,480 --> 00:05:40,790 ac felly rydych yn teimlo'n gyfforddus yn mynd i ffwrdd ac yn edrych ar y dogfennau 123 00:05:40,790 --> 00:05:42,570 ac yn gwybod mwy. 124 00:05:42,570 --> 00:05:48,500 >> Felly, gadewch i mi agor mewn gwirionedd Enghraifft syml ar y dechrau, 125 00:05:48,500 --> 00:05:50,737 a dangos i chi beth sy'n edrych fel, ac yna rydym chi helpu 126 00:05:50,737 --> 00:05:52,070 dorri i lawr ychydig yn fwy. 127 00:05:52,070 --> 00:05:56,160 >> Felly, mae hyn yma, gadewch i mi ei gael rhedeg. 128 00:05:56,160 --> 00:06:06,800 129 00:06:06,800 --> 00:06:09,750 Felly, yr wyf yn awr yn cael fy nghais rhedeg. 130 00:06:09,750 --> 00:06:15,910 Rydw i'n mynd i agor Safari, ac ei fod yn rhedeg ar fy gwesteiwr lleol. 131 00:06:15,910 --> 00:06:19,360 Felly, Im 'jyst yn mynd i wneud hyn yn fwy. 132 00:06:19,360 --> 00:06:23,960 Ond localhost: 5000 133 00:06:23,960 --> 00:06:27,650 >> Ac felly, ar hyn o bryd, mae hyn i gyd yn ei wneud yw, pan fyddwch yn ymweld â'r wefan, 134 00:06:27,650 --> 00:06:31,490 mae'n printiau allan "Helo Fflasg," nad yw'n super ddefnyddiol, 135 00:06:31,490 --> 00:06:34,630 ond yr wyf yn meddwl ei fod yn cŵl bod yn y ffeil bach hyn yma, 136 00:06:34,630 --> 00:06:37,390 mae gennym rhedeg gweinydd gwe sy'n cael ei argraffu rhywbeth. 137 00:06:37,390 --> 00:06:40,500 Felly, gadewch i ni mewn gwirionedd yn edrych yn y cod ar gyfer ail, 138 00:06:40,500 --> 00:06:43,080 ac yn torri i lawr ychydig. 139 00:06:43,080 --> 00:06:45,260 A yw'r faint da i bawb yma? 140 00:06:45,260 --> 00:06:51,560 >> Felly, gobeithio, rydych yn braidd cyfforddus yn defnyddio Python. 141 00:06:51,560 --> 00:06:55,820 Rydw i'n tybio y gallwn edrych ar yr Python a darllen drwyddo. 142 00:06:55,820 --> 00:06:59,290 Os oes gennych unrhyw gwestiynau am unrhyw beth, Gallaf hefyd fynd dros hynny. 143 00:06:59,290 --> 00:07:03,974 >> Felly, y llinell gyntaf yw, o Fflasg, rydym yn mewnforio, Fflasg gyda chyfalaf "F" 144 00:07:03,974 --> 00:07:06,140 sydd yn fath o holl nodweddion allweddol sydd eu hangen arnoch. 145 00:07:06,140 --> 00:07:08,890 Pryd bynnag y byddwch yn ysgrifennu ffeil a defnyddio Fflasg, 146 00:07:08,890 --> 00:07:12,120 ydych yn mynd i eisiau mewnforio hynny, dim ond oherwydd bod gan yr holl brif bethau. 147 00:07:12,120 --> 00:07:15,400 Y peth nesaf rydym yn ei wneud, yw ein yn galw hyn Fflasg swyddogaeth, dim ond 148 00:07:15,400 --> 00:07:19,270 i greu gwrthrych app, ac rydych yn bob amser yn mynd i eisiau i wneud hynny. 149 00:07:19,270 --> 00:07:25,960 >> Ac yna, neidio i lawr i'r gwaelod yn gyflym, y rhan hon yma yw, 150 00:07:25,960 --> 00:07:28,760 'If_name _ == "_ main_"', sef math o confensiwn Python. 151 00:07:28,760 --> 00:07:32,750 Felly, bydd hyn ond yn gweithredu os byddwch yn rhedeg y ffeil hon yn uniongyrchol gan ddefnyddio Python. 152 00:07:32,750 --> 00:07:36,040 Yna, rydym yn galw app.run, a fydd mewn gwirionedd yn cychwyn y app yn mynd. 153 00:07:36,040 --> 00:07:39,570 >> Felly, dyna'r prif strwythur sy'n bydd gennych mewn unrhyw gais Fflasg, 154 00:07:39,570 --> 00:07:48,550 yw y bydd yn rhaid i chi hyn app = Fflasg (_name_), ac yna app.run. 155 00:07:48,550 --> 00:07:54,940 >> Felly, mae'r ddau beth sydd gen i mewn yma, yn yr hyn yr ydym yn galw llwybrau. 156 00:07:54,940 --> 00:07:57,150 Felly, gadewch i ni siarad am llwybro ychydig yn fwy. 157 00:07:57,150 --> 00:07:58,430 Byddaf yn mynd yn ôl at y sleid. 158 00:07:58,430 --> 00:08:02,540 >> Felly, y mwyaf sylfaenol cysyniad yn Fflasg yn llwybro. 159 00:08:02,540 --> 00:08:06,750 Ac mae'n syniad nad ydych neilltuo swyddogaethau mewn Python 160 00:08:06,750 --> 00:08:11,280 i gyfeiriadau penodol ar eich tudalen we. 161 00:08:11,280 --> 00:08:13,930 Felly, pryd bynnag y byddwch eisiau i greu llwybr newydd, 162 00:08:13,930 --> 00:08:16,500 ydych yn defnyddio hwn @ app.route addurnwr swyddogaeth. 163 00:08:16,500 --> 00:08:19,770 Felly, os ydych yn gyfarwydd â addurnwyr swyddogaeth yn Python, 164 00:08:19,770 --> 00:08:24,160 'i' y cysyniad hwn sy'n yn gadael i chi gymryd swyddogaeth 165 00:08:24,160 --> 00:08:26,800 ac yn ei amgylchynu gyda rhywbeth arall. 166 00:08:26,800 --> 00:08:30,140 >> Felly mewn gwirionedd, pa addurnwr hon yn ei wneud, yw ei fod yn cymryd y swyddogaeth islaw iddo, 167 00:08:30,140 --> 00:08:33,409 ac mae'n ychwanegu mwy o wybodaeth iddo, ond yr hyn Fflasg mewn gwirionedd 168 00:08:33,409 --> 00:08:37,480 Nid yw'n gwneud i hynny ddigwydd yn super hollbwysig, ond yr hyn sy'n bwysig, 169 00:08:37,480 --> 00:08:43,640 yw, cyn y daith, byddwch yn rhoi hyn @ app.route, ac yna 170 00:08:43,640 --> 00:08:46,480 cyfeiriad y llwybr, felly mae'r slaes hyn yr ydym 171 00:08:46,480 --> 00:08:48,360 Gwelodd pan rydym yn unig yn agor y dudalen we. 172 00:08:48,360 --> 00:08:49,580 Felly dyna y dudalen hafan. 173 00:08:49,580 --> 00:08:51,037 Dim ond y llwybr slaes. 174 00:08:51,037 --> 00:08:52,370 Ac yna mae gennych swyddogaeth hon. 175 00:08:52,370 --> 00:08:54,453 Enw'r y swyddogaeth Gall fod yn beth bynnag y dymunwch. 176 00:08:54,453 --> 00:08:56,930 Nid oes rhaid iddo o reidrwydd rhaid i wneud â'r llwybr. 177 00:08:56,930 --> 00:08:59,440 Ac yna, beth bynnag dychwelyd y swyddogaeth, yn 178 00:08:59,440 --> 00:09:01,730 dylai'r swyddogaeth ddychwelyd llinyn. 179 00:09:01,730 --> 00:09:03,740 A bod llinyn yn gallu yn cynnwys HTML neu unrhyw beth, 180 00:09:03,740 --> 00:09:06,920 a dyna mewn gwirionedd yn beth fydd yn ei gael dychwelyd at eich porwr gwe fel HTML, 181 00:09:06,920 --> 00:09:08,200 a bydd yn gwneud hynny. 182 00:09:08,200 --> 00:09:12,030 >> Felly, mae hyn yn yr un cod a oedd gan yr enghraifft 183 00:09:12,030 --> 00:09:16,430 yr wyf newydd rhedeg, felly pan fyddwn yn ymweld slaes, mae'n galw swyddogaeth Hello World, a oedd yn 184 00:09:16,430 --> 00:09:20,470 dim ond yn dychwelyd llinyn, Helo Fflasg, ac sy'n cael ei argraffu ar y sgrin. 185 00:09:20,470 --> 00:09:27,290 >> Felly mae yna enghraifft arall, sef, pan fyddwch yn ymweld / helo, 186 00:09:27,290 --> 00:09:30,370 mae'n printiau allan Helo Word, a oedd yn Dylai gwirionedd yn dweud, Helo Byd, 187 00:09:30,370 --> 00:09:32,010 ond gadewch i esgus bod yn fwriadol. 188 00:09:32,010 --> 00:09:35,140 Felly gadewch i ni dynnu bod i fyny go iawn yn gyflym. 189 00:09:35,140 --> 00:09:41,290 >> Felly, os byddwch yn mynd i localhost / helo, bydd yn awr yn argraffu rhywbeth arall. 190 00:09:41,290 --> 00:09:45,680 Felly dyna dim ond yn enghraifft cyflym o sut gallwch greu dau lwybr gwahanol. 191 00:09:45,680 --> 00:09:50,630 >> Felly, hyd yn hyn nid yw hyn yn ddefnyddiol super, Nid oes llawer gyfan gallwch ei wneud, 192 00:09:50,630 --> 00:09:55,360 fe allech chi jyst yn gwneud popeth a gyda cael gwahanol tudalennau HTML, 193 00:09:55,360 --> 00:09:58,000 a phan fyddwch yn ymweld â penodol tudalen 'i jyst yn llwytho'r dudalen. 194 00:09:58,000 --> 00:10:00,864 Felly, gadewch i ni weld rhai mwy bethau defnyddiol y gallwch eu gwneud. 195 00:10:00,864 --> 00:10:03,780 Felly, un peth y gallai fod gennych sylwi yn yr enghraifft yr wyf yn tynnu 196 00:10:03,780 --> 00:10:07,160 i fyny, yw fy mod wedi app.run (debug = Gwir). 197 00:10:07,160 --> 00:10:09,580 Ac felly, beth mae hyn yn dadl dadfygio yn ei wneud, yn 198 00:10:09,580 --> 00:10:14,600 bod pan fyddwch yn rhedeg eich gweinydd gwe, pan fyddwch chi yn eich cais, 199 00:10:14,600 --> 00:10:18,100 os byddwch yn newid ffeil, bydd yn reload y gweinydd yn awtomatig. 200 00:10:18,100 --> 00:10:21,160 >> Ac nid felly mewn gwirionedd yn rhaid i chi restart Python, sydd yn super ddefnyddiol. 201 00:10:21,160 --> 00:10:24,020 Gallaf ddangos hynny. 202 00:10:24,020 --> 00:10:26,960 Gadewch i mi dynnu i fyny fy cod gyda'r typo ynddo, 203 00:10:26,960 --> 00:10:30,420 ac yn esgus bod typo ei roi yno yn fwriadol ar gyfer dibenion addysgiadol. 204 00:10:30,420 --> 00:10:31,625 Felly gadewch i ni ychwanegu'r hyn yn ôl i mewn. 205 00:10:31,625 --> 00:10:33,140 Felly nawr mae'n ei ddweud Helo Byd. 206 00:10:33,140 --> 00:10:34,410 Byddaf yn ei arbed. 207 00:10:34,410 --> 00:10:36,540 Ac os ydym yn tynnu yn ôl i fyny y derfynell, wnewch chi helpu 208 00:10:36,540 --> 00:10:39,520 yn dweud ei fod yn ailddechrau, am ei fod yn canfod newid, 209 00:10:39,520 --> 00:10:43,620 ac felly nawr pan fyddwn yn ail-lwytho y dudalen hon, bydd yn argraffu'r y peth cywir. 210 00:10:43,620 --> 00:10:45,630 >> Felly debug yn super ddefnyddiol ar gyfer hynny. 211 00:10:45,630 --> 00:10:48,740 Hefyd, os oes gennych unrhyw math o damwain, felly 212 00:10:48,740 --> 00:10:54,370 gadewch i mi wneud y cais hwn damwain drwy gael iddo beidio dychwelyd llinyn. 213 00:10:54,370 --> 00:10:57,540 Felly, gadewch i ni yn unig wedi ei dychwelyd Dim am ryw reswm. 214 00:10:57,540 --> 00:11:00,810 Ac yna pan fyddaf yn ymweld â'r dudalen, bydd yn jyst damwain, 215 00:11:00,810 --> 00:11:04,465 ond nid yw'r gweinydd yn unig chwalu, mae'n mewn gwirionedd yn rhoi cefn super ddefnyddiol i chi 216 00:11:04,465 --> 00:11:06,490 olrhain o bopeth a aeth o'i le. 217 00:11:06,490 --> 00:11:10,050 A beth sy'n neis iawn, yw y ar unrhyw gam yn y hybrin cefn, 218 00:11:10,050 --> 00:11:14,260 gallech agor rhyngweithiol cragen yma, ac math o argraffu beth 219 00:11:14,260 --> 00:11:17,780 newidynnau ydych am gymryd golwg ar. 220 00:11:17,780 --> 00:11:21,054 >> Ac felly debugging yn wirioneddol defnyddiol ar gyfer figuring 221 00:11:21,054 --> 00:11:23,470 beth sy'n digwydd gyda'ch gweinydd, yn hytrach na dim ond yn gweld 222 00:11:23,470 --> 00:11:28,201 rhywbeth yn PHP fel 500 mewnol gwall gweinydd, sydd yn super 'n annefnyddiol. 223 00:11:28,201 --> 00:11:30,700 Un peth i fod yn ymwybodol o, yn os byddwch yn rhoi eich app ar-lein 224 00:11:30,700 --> 00:11:34,260 felly mae'n amlwg i'r cyhoedd, yr ydych byth eisiau gadael modd debug ymlaen, 225 00:11:34,260 --> 00:11:37,320 oherwydd gall pobl mewn gwirionedd ddefnyddio'r consol fy mod 226 00:11:37,320 --> 00:11:39,150 Dangosodd i chi weithredu cod mympwyol. 227 00:11:39,150 --> 00:11:42,120 >> Felly, maent yn gallu argraffu fel unrhyw Codau cudd sydd gennych mewn 'na, 228 00:11:42,120 --> 00:11:44,755 gallant edrych ar union sut mae eich gwefan yn gweithio. 229 00:11:44,755 --> 00:11:46,630 Felly mae'n ddefnyddiol iawn ar gyfer profi, ond bob amser 230 00:11:46,630 --> 00:11:50,090 gwnewch yn siwr i fynd ag ef allan gerbron byddwch yn cyhoeddi unrhyw beth ar-lein. 231 00:11:50,090 --> 00:11:56,640 >> Felly, pan fyddwch yn defnyddio rhywbeth fel PHP, mae y syniad hwn 232 00:11:56,640 --> 00:11:58,920 eich bod yn gallu pasio gwybodaeth rhwng tudalennau gwe 233 00:11:58,920 --> 00:12:03,620 drwy roi'r wybodaeth mewn gwirionedd yn yr URL, sy'n gais GET, 234 00:12:03,620 --> 00:12:07,490 ond yn Fflasg, gallwch mewn gwirionedd gwneud rhywbeth fath o fel 'na, 235 00:12:07,490 --> 00:12:10,590 drwy gael llwybr sydd wedi newidyn fel rhan ohono. 236 00:12:10,590 --> 00:12:14,090 >> Felly, os ydych yn edrych ar hyn enghraifft ar y sgrin yma, 237 00:12:14,090 --> 00:12:19,930 mae gennym lwybr sy'n ('/ Helo /'), ac felly, os byddwch yn ymweld 238 00:12:19,930 --> 00:12:23,790 / Hello / rhywbeth, bod rhywbeth yn mynd i gael llenwi mewn gwirionedd 239 00:12:23,790 --> 00:12:25,490 i mewn i'r newidyn enw. 240 00:12:25,490 --> 00:12:27,850 Ac yn sylwi bod y swyddogaeth sy'n dod gyda'r llwybr hwnnw 241 00:12:27,850 --> 00:12:31,302 yn gorfod cymryd yn y paramedr enw, fel y bydd yn mewn gwirionedd 242 00:12:31,302 --> 00:12:32,510 cael eu pasio i mewn i'r swyddogaeth. 243 00:12:32,510 --> 00:12:34,190 >> Ac yna, unwaith y byddwch chi tu mewn swyddogaeth honno, 244 00:12:34,190 --> 00:12:36,420 gallwch drin y hoffi newidyn Python arferol, 245 00:12:36,420 --> 00:12:39,650 ac felly, yna, bydd yn argraffu Helo, ac mae'n 246 00:12:39,650 --> 00:12:42,000 Bydd llenwi'r enw gan ddefnyddio rhywfaint o fformatio llinyn. 247 00:12:42,000 --> 00:12:48,060 >> Felly, i ychwanegu rhannau amrywiol i lwybro, eich bod yn defnyddio'r bachyn ongl marcio. 248 00:12:48,060 --> 00:12:51,220 Ac o ddewis, gallwch ddefnyddio hyn a elwir yn trawsnewidydd. 249 00:12:51,220 --> 00:12:56,840 Ac felly, os byddwch yn rhoi hyn anodi gyda'r colon, 250 00:12:56,840 --> 00:13:00,015 gallwch nodi ei fod yn yn int, neu fflôt, neu lwybr, 251 00:13:00,015 --> 00:13:01,640 a bydd yn trosi hynny yn awtomatig. 252 00:13:01,640 --> 00:13:05,130 Gallwch hefyd wneud yr addasiad o fewn y swyddogaeth Python, 253 00:13:05,130 --> 00:13:09,710 dim ond drwy ddefnyddio cast, ond weithiau os yr ydych am sicrhau bod ei fod yn int, 254 00:13:09,710 --> 00:13:12,080 gallwch roi hynny rheol trosi i mewn 'na. 255 00:13:12,080 --> 00:13:15,930 >> Felly gadewch i ni dynnu i fyny yn enghraifft o rai rheolau amrywiol. 256 00:13:15,930 --> 00:13:21,480 Felly dyma, mae hyn yr un sylfaenol Strwythur gyda'r rhag mewnforio Fflasg 257 00:13:21,480 --> 00:13:25,030 Fflasg, mae'r app = Fflasg (_name_), ac yna ei fod yn rhedeg ar y diwedd. 258 00:13:25,030 --> 00:13:28,050 Mae gennym ddau gwahanol hyn llwybrau amrywiol yma. 259 00:13:28,050 --> 00:13:29,900 Ac mae'r un cyntaf, yn yr un yr wyf yn dangos 260 00:13:29,900 --> 00:13:34,230 yn y sleid, sef bod 'i jyst yn cymryd mewn enw llinyn 261 00:13:34,230 --> 00:13:35,650 a bydd yn argraffu Helo, Enw. 262 00:13:35,650 --> 00:13:41,410 >> Ac yna, yr ail un yn defnyddio'r trosiad. 263 00:13:41,410 --> 00:13:44,690 Felly, bydd hyn yn trosi yn awtomatig i int, ac yna dwbl y int, 264 00:13:44,690 --> 00:13:46,150 ac print that allan. 265 00:13:46,150 --> 00:13:48,220 Ac, nid ydym yn gwneud unrhyw fath trosi oddi mewn iddo 266 00:13:48,220 --> 00:13:49,594 oherwydd Fflasg yn gofalu am hynny. 267 00:13:49,594 --> 00:13:53,181 Felly gadewch i ni gael rhedeg hwn. 268 00:13:53,181 --> 00:13:54,930 Pan fydd gennych Fflasg rhedeg cais, 269 00:13:54,930 --> 00:13:58,440 gallwch Rheoli-C allan ohono i atal y rhedeg gweinydd. 270 00:13:58,440 --> 00:14:02,420 Ac yna byddaf yn rhedeg y newidynnau. 271 00:14:02,420 --> 00:14:11,740 >> Felly gadewch i ni fynd i localhost / helo / Ezra a gobeithio, bydd hyn yn dweud helo i mi. 272 00:14:11,740 --> 00:14:14,530 273 00:14:14,530 --> 00:14:20,310 >> Felly mae'n cymryd yn fy enw i, yn y newidyn llwybr, ac fe lanwodd yn fan hyn. 274 00:14:20,310 --> 00:14:23,950 Felly byddaf hefyd yn dangos cyflym Enghraifft o'r dyblu. 275 00:14:23,950 --> 00:14:28,600 Felly, os byddwch yn mynd i / dwbl / 3, bydd yn argraffu'r 6. 276 00:14:28,600 --> 00:14:31,440 Felly, mae hyn yn cymryd gofal am trosi i ni. 277 00:14:31,440 --> 00:14:34,190 >> Felly, gallwch hefyd ei wneud gyda arnofio, a rhywbeth arbennig, 278 00:14:34,190 --> 00:14:37,530 os oes angen i nodi rhywbeth fel llwybr, sy'n gadael i fod yn derbyn slaes, 279 00:14:37,530 --> 00:14:39,155 ond ni ddylai hynny fel arfer fod yn broblem. 280 00:14:39,155 --> 00:14:41,480 281 00:14:41,480 --> 00:14:43,820 Hyd yn hyn yr ydym ni, yn dal i gael newydd gael ei dychwelyd 282 00:14:43,820 --> 00:14:46,320 llinynnau, ac nid yw yn ddiddorol iawn. 283 00:14:46,320 --> 00:14:48,730 >> Gallem mewn gwirionedd yn dychwelyd llinyn HTML llythrennol. 284 00:14:48,730 --> 00:14:54,322 Felly, yn y cod gallwn fewnosod rhywbeth fel y b-tag i'w wneud yn eofn, 285 00:14:54,322 --> 00:14:56,030 ond mae'r rhan fwyaf yr amser y byddwch yn peidiwch â mewn gwirionedd eisiau 286 00:14:56,030 --> 00:14:58,420 i fod yn ysgrifennu cod HTML yn eich cod Python. 287 00:14:58,420 --> 00:15:01,940 Mae'n mynd yn wir yn flêr, ac nid yw'n amser da. 288 00:15:01,940 --> 00:15:06,430 >> Fflasg yn ein galluogi i wahanu'r HTML i mewn i hyn a elwir y Templed, 289 00:15:06,430 --> 00:15:09,467 ac felly os ydych yn meddwl o ran y model MVC 290 00:15:09,467 --> 00:15:11,550 eich bod yn gyfarwydd â nhw, gobeithio, o weithio 291 00:15:11,550 --> 00:15:15,520 gyda CS50 Cyllid ychydig bach, gallwch chi feddwl am y ffeiliau Python 292 00:15:15,520 --> 00:15:19,430 fel rhai mwy o'r Rheolwr, lle y maent yn rhyngweithio gyda beth bynnag 293 00:15:19,430 --> 00:15:20,970 model data a allai fod gennych. 294 00:15:20,970 --> 00:15:24,900 >> Ac yna maent yn cael eu galw allan i Views a rhoi gwybodaeth i hynny View 295 00:15:24,900 --> 00:15:28,120 i lenwi'r wybodaeth yn HTML sydd ei angen arni. 296 00:15:28,120 --> 00:15:30,490 A beth rydym yn galw Barn y rhai yn Templedi yn y dosbarth. 297 00:15:30,490 --> 00:15:35,280 >> Felly Fflasg yn defnyddio Python arall modiwl y bydd yn awtomatig 298 00:15:35,280 --> 00:15:38,620 gosod pan fyddwch yn Pip gosod O'r enw Fflasg Jinja, a oedd yn 299 00:15:38,620 --> 00:15:40,885 yn gadael i chi ychwanegu'r rhain anodiadau i'r HTML 300 00:15:40,885 --> 00:15:45,140 eich bod yn gweld ar y sgrin, sy'n gadael eich rhoi mewn pethau fel conditionals, 301 00:15:45,140 --> 00:15:47,230 ac dolenni i mewn i'r HTML. 302 00:15:47,230 --> 00:15:51,140 >> Felly mae'n edrych ychydig fel sut yr ydych yn Gallai defnyddio PHP o fewn ffeil HTML, 303 00:15:51,140 --> 00:15:57,380 ond mae hyn yn unig pan fydd y Fflasg gweinydd yn gweini y ffeil HTML, 304 00:15:57,380 --> 00:16:01,610 bydd yn rhedeg y peiriant templating ac dosrannu drwy hyn a llenwi pethau i mewn. 305 00:16:01,610 --> 00:16:06,650 Felly Fflasg swyddogaeth render_template y gallwch weld ar y gwaelod yma. 306 00:16:06,650 --> 00:16:14,300 Ac felly pan fyddwch yn ymweld â'r dudalen hon, mae'n Byddai gwneud hyn Templed hello.html, 307 00:16:14,300 --> 00:16:16,407 ac yna llenwch y dudalen HTML. 308 00:16:16,407 --> 00:16:18,990 Felly gadewch i ni jyst hidla real, mae hyn gyflym, a gweld sut mae'n edrych, 309 00:16:18,990 --> 00:16:21,198 ac yna byddaf yn mynd drwy ychydig bach yn fwy manwl. 310 00:16:21,198 --> 00:16:25,380 311 00:16:25,380 --> 00:16:30,260 Felly, mae eich Templedi yn mynd i fynd mewn ffolder Templates. 312 00:16:30,260 --> 00:16:33,980 Bydd yn edrych yn awtomatig o fewn y Templedi ffolder ar gyfer y Templed. 313 00:16:33,980 --> 00:16:35,615 Felly gadewch i ni agor y fyny. 314 00:16:35,615 --> 00:16:47,350 315 00:16:47,350 --> 00:16:50,005 Felly, byddaf yn rhedeg yr enghraifft templating. 316 00:16:50,005 --> 00:16:52,820 317 00:16:52,820 --> 00:17:03,660 >> Felly, os af i / helo / Ezra, mae wedi hyn erchyll, 318 00:17:03,660 --> 00:17:05,930 tag babell atgas i mi ei roi i mewn. 319 00:17:05,930 --> 00:17:08,050 Iawn 'n glws, ddeinamig iawn. 320 00:17:08,050 --> 00:17:09,349 Dwi'n ffan mawr. 321 00:17:09,349 --> 00:17:13,900 Ond beth sy'n digwydd os Fi jyst yn mynd i, / helo? 322 00:17:13,900 --> 00:17:15,220 Felly 'i jyst yn dweud Helo Byd. 323 00:17:15,220 --> 00:17:17,678 Doeddwn i ddim yn ei throsglwyddo enw, a ei lenwi i mewn yn awtomatig. 324 00:17:17,678 --> 00:17:22,050 Felly, gadewch i ni weld sut y mae'n gwneud hynny, a sut gallwn gael gwared ar y babell efallai. 325 00:17:22,050 --> 00:17:26,240 >> Felly dyma, mae hyn yn fath o enghraifft ddiddorol o, 326 00:17:26,240 --> 00:17:29,101 os ydych yn gyfarwydd â sut switsh datganiadau gweithio mewn iaith. 327 00:17:29,101 --> 00:17:31,350 Dweud hyn yn fath o fel, y math yna o gwymp drwy, 328 00:17:31,350 --> 00:17:34,266 lle rydych mewn gwirionedd ynghlwm dau llwybrau gwahanol i'r un swyddogaeth. 329 00:17:34,266 --> 00:17:41,190 Felly rydym yn atodi'r / helo llwybr a y / helo / llwybr enw i Helo, 330 00:17:41,190 --> 00:17:45,130 ac rydym yn nodi using-- Python yn gadael i chi pennu diofyn arguments-- swyddogaeth 331 00:17:45,130 --> 00:17:48,300 felly os nad oes enw, felly os ydym yn mynd i ddim ond / helo, 332 00:17:48,300 --> 00:17:50,680 bydd yn hidlo'r awtomatig i enwi yn hafal i Dim. 333 00:17:50,680 --> 00:17:55,010 >> Felly, yna, rydym yn golygu bod y Templed gydag enw = enw, 334 00:17:55,010 --> 00:17:59,510 felly bydd yn pasio yn enw'r paramedr gyfartal i hyn paramedr swyddogaeth enw, 335 00:17:59,510 --> 00:18:00,730 i mewn i'r Templed. 336 00:18:00,730 --> 00:18:04,040 Mae hynny yn dal yn esbonio sut mae benderfynu a ddylid argraffu Helo Byd, 337 00:18:04,040 --> 00:18:05,100 neu argraffwch fy enw. 338 00:18:05,100 --> 00:18:08,050 Felly gadewch i ni mewn gwirionedd yn edrych i mewn i'r Templed ei hun, 339 00:18:08,050 --> 00:18:11,610 a gweld lle sy'n dod o. 340 00:18:11,610 --> 00:18:18,680 >> Felly, o fewn y Templed hwn, rydym yn mewn gwirionedd yn cael rhywfaint o resymeg amodol, 341 00:18:18,680 --> 00:18:20,580 y byddai rhai pobl dadlau, yr ydych mewn gwirionedd 342 00:18:20,580 --> 00:18:23,730 Ni ddylai cael llawer o amodol rhesymeg o fewn eich Templed ei hun. 343 00:18:23,730 --> 00:18:26,310 Dylai fod yn fwy o fewn y Rheolwr, ond ar gyfer yr enghraifft hon 344 00:18:26,310 --> 00:18:27,476 ei fod yn rhywbeth eithaf bach. 345 00:18:27,476 --> 00:18:31,060 Felly dyma, rydym yn gwirio, os henw, felly Nid os enw yn hafal i Dim, 346 00:18:31,060 --> 00:18:33,130 os yw enw mewn gwirionedd basiwyd yn, yna byddwn yn 347 00:18:33,130 --> 00:18:36,210 dweud Helo, Enw gyda'r header a'r babell, 348 00:18:36,210 --> 00:18:41,490 hyn i gyd yn HTML arferol, fel arall, byddwn yn argraffu Helo, World yn unig fel arfer. 349 00:18:41,490 --> 00:18:45,820 Felly cwpl o bethau i hysbysiad yma am y ffordd yr ydych fformatio'r templating, 350 00:18:45,820 --> 00:18:49,110 yw bod, pob un o'r rhain Datganiadau amodol, 351 00:18:49,110 --> 00:18:54,475 fath o fel sut rydym yn PHP pan yr hoffech ei fewnosod rhywfaint o PHP, 352 00:18:54,475 --> 00:18:58,380 byddwch yn defnyddio'r llai-na gwestiwn marc, mae'n fath o cyfatebol yma 353 00:18:58,380 --> 00:19:00,140 gyda'r {%. 354 00:19:00,140 --> 00:19:02,130 >> Felly dyma, rydym wedi ein cod amodol. 355 00:19:02,130 --> 00:19:05,920 Ac yna, pan fyddwch mewn gwirionedd eisiau yn llythrennol yn gwerthuso rhywbeth, ac argraffu 356 00:19:05,920 --> 00:19:08,710 allan i'r sgrin, byddwch yn defnyddiwch y braces dwbl. 357 00:19:08,710 --> 00:19:12,310 Felly dyma y braces dwbl, ac yna rydym yn nodi enw, 358 00:19:12,310 --> 00:19:15,500 hynny o fewn hynny, bydd yn gwerthuso at yr enw newidyn, a oedd yn 359 00:19:15,500 --> 00:19:18,860 ei basio i mewn o'r rendr swyddogaeth templed, 360 00:19:18,860 --> 00:19:21,484 yn hytrach na dim ond argraffu allan, os ydym yn cael gwared ar y rhain, 361 00:19:21,484 --> 00:19:23,150 byddai'n jyst argraffwch y gair "enw." 362 00:19:23,150 --> 00:19:26,340 Felly, mae hynny'n rhywbeth i wylio allan am. 363 00:19:26,340 --> 00:19:29,792 >> Felly beth arall i rhybudd yw bod, pan fyddwn yn 364 00:19:29,792 --> 00:19:31,500 am ddefnyddio'r swyddogaeth render_template, 365 00:19:31,500 --> 00:19:34,490 mae gennym mewn gwirionedd i fewnforio mae'n benodol o Fflasg. 366 00:19:34,490 --> 00:19:36,915 Ac mae hyn yn enghraifft o mae'r gyfer modiwlau o Fflasg, 367 00:19:36,915 --> 00:19:39,290 nad oes rhaid i chi i fewnforio pethau nad oes angen i chi. 368 00:19:39,290 --> 00:19:41,290 Alli jyst ddod yn y swyddogaethau yr ydych mewn gwirionedd 369 00:19:41,290 --> 00:19:43,450 oes angen, sydd weithiau'n 'n glws, fel nad ydych yn ei wneud 370 00:19:43,450 --> 00:19:46,560 rhaid i chi gael yr holl swyddogaethau hyn eistedd o gwmpas nad ydych yn ei ddefnyddio, 371 00:19:46,560 --> 00:19:49,730 ond hefyd, os byddwch yn anghofio eich bod Mae angen i fewnforio render_template, 372 00:19:49,730 --> 00:19:52,660 mae'n debyg y byddwch yn cael rhybudd a fydd yn rhoi gwybod i chi am hynny. 373 00:19:52,660 --> 00:19:56,700 Felly, mae hynny'n templating. 374 00:19:56,700 --> 00:20:01,680 >> Felly, rydym wedi dangos iddynt sut i gwneud tudalennau gwe syml, 375 00:20:01,680 --> 00:20:04,947 ac ychwanegwch ychydig mwy rhesymeg i hynny, o ran y llwybro amrywiol. 376 00:20:04,947 --> 00:20:08,280 Mae'n gadael i chi wneud pethau gwahanol yn seiliedig ar pa URL byddwch yn mynd i, ac hefyd bryd hynny, rhowch 377 00:20:08,280 --> 00:20:11,950 y HTML ychydig yn fwy o synnwyr mewn ran sut yr ydych am i rendro pethau. 378 00:20:11,950 --> 00:20:14,210 Nid oes rhaid i chi roi'r holl eich HTML yn eich Python, 379 00:20:14,210 --> 00:20:16,640 ond am 'n bert lawer pob cais ar y we, 380 00:20:16,640 --> 00:20:21,480 ydych yn mynd i eisiau rhyw fath o fodel data sy'n gysylltiedig ag ef. 381 00:20:21,480 --> 00:20:25,560 >> Ac felly yn draddodiadol, byddai hyn yn rhywbeth fel cronfa ddata SQL. 382 00:20:25,560 --> 00:20:30,280 A allwch chi jyst yn rhyngweithio uniongyrchol gyda SQL. 383 00:20:30,280 --> 00:20:32,190 Python wedi, yr wyf yn meddwl ei fod yn enw. 384 00:20:32,190 --> 00:20:33,040 SQLite 3. 385 00:20:33,040 --> 00:20:38,454 Alli jyst fewnforio SQLite 3 a gweithredu ymholiadau SQL yn uniongyrchol, 386 00:20:38,454 --> 00:20:40,870 ond nid wyf yn gwybod amdanoch chi, ond i ddim wir yn ei hoffi, dim ond, 387 00:20:40,870 --> 00:20:42,750 ysgrifennu allan ymholiadau SQL. 388 00:20:42,750 --> 00:20:45,350 Mae'n tueddu i ca 'n sylweddol hir a chymhleth. 389 00:20:45,350 --> 00:20:49,180 >> Ac felly, rhywbeth y Rwy'n hoffi defnyddio yn yr hyn sydd 390 00:20:49,180 --> 00:20:53,610 a elwir yn ORM, sydd yn gwrthrych-perthynol mapio. 391 00:20:53,610 --> 00:20:56,890 A'r pwynt o mapio gwrthrych-perthynol, 392 00:20:56,890 --> 00:21:00,100 yw bod dau wahanol ffyrdd y gallwch chi feddwl am gronfeydd data. 393 00:21:00,100 --> 00:21:03,240 >> Felly yr enghraifft sy'n Yr Athro Malan fel arfer 394 00:21:03,240 --> 00:21:07,660 defnyddio yn y dosbarth, yn y tabl Excel, lle mae gennych rhesi hyn ac y colofnau hyn, 395 00:21:07,660 --> 00:21:10,210 ac mae hynny'n ddefnyddiol iawn ar gyfer sut mae'n cael ei gynrychioli yn SQL 396 00:21:10,210 --> 00:21:13,170 a sut yr ydych yn rhyngweithio ag ef, ond ffordd arall ei fod yn mewn gwirionedd 397 00:21:13,170 --> 00:21:16,390 ddefnyddiol i feddwl am y peth weithiau, yw o ran dosbarthiadau a gwrthrychau. 398 00:21:16,390 --> 00:21:20,420 >> Felly, yn lle meddwl pob tabl fel rhai 399 00:21:20,420 --> 00:21:23,040 rhes hon sydd â rhai gwybodaeth, gallwch mewn gwirionedd 400 00:21:23,040 --> 00:21:26,100 meddwl am y peth fel rhai pob tabl yn ddosbarth, 401 00:21:26,100 --> 00:21:29,810 ac yna bob enghraifft o'r Mae gan ddosbarth penodol o eiddo. 402 00:21:29,810 --> 00:21:35,110 Felly, yn yr enghraifft hon, mae'r achosion o y dosbarth yn y rhesi yn y tabl, 403 00:21:35,110 --> 00:21:37,490 ac yna byddai pob eiddo fod yn golofn yn y tabl. 404 00:21:37,490 --> 00:21:40,840 >> Felly, mae'r ORM fy mod yn hoffi i ddefnyddio ei alw'n peewee. 405 00:21:40,840 --> 00:21:43,520 Mae'n wirioneddol fach, math o fel Fflasg. 406 00:21:43,520 --> 00:21:46,760 Yr wyf yn meddwl eu bod yn mynd yn dda gyda'i gilydd, ond mae yna lawer o ORMS eraill 407 00:21:46,760 --> 00:21:47,730 y gallwch eu defnyddio. 408 00:21:47,730 --> 00:21:52,180 Mae un yn fwy poblogaidd yn a elwir yn SQLAlchemy, 409 00:21:52,180 --> 00:21:56,050 ac ni allaf gofio pam yr wyf yn wreiddiol Dewisodd peewee dros SQLAlchemy, 410 00:21:56,050 --> 00:21:58,311 neu byddwn yn dweud wrthych pam yr wyf yn meddwl ei fod yn yr un gorau, 411 00:21:58,311 --> 00:22:01,060 ond rydym yn jyst yn mynd i ddefnyddio hyn un gan fy mod yn gwybod sut i'w ddefnyddio. 412 00:22:01,060 --> 00:22:04,760 >> Felly, un cwestiwn yw, pam dylech chi drafferthu defnyddio ORM, 413 00:22:04,760 --> 00:22:07,552 hytrach na dim ond yn uniongyrchol ysgrifennu ymholiadau SQL? 414 00:22:07,552 --> 00:22:09,760 Ac yr wyf yn meddwl bod yr achos gorau, yw nad ydych yn ei wneud mewn gwirionedd 415 00:22:09,760 --> 00:22:11,356 rhaid i ysgrifennu ymholiadau SQL. 416 00:22:11,356 --> 00:22:14,480 Mae'n llawer haws, fel y byddaf yn dangos i chi, i gwneud pethau fel dewis, mewnosod, 417 00:22:14,480 --> 00:22:16,157 dileu, yn enwedig creu tablau. 418 00:22:16,157 --> 00:22:17,990 Mae'n llawer haws i ysgrifennu strwythur dosbarth, 419 00:22:17,990 --> 00:22:22,250 nag yw i strwythuro Creu Datganiad Tabl, ond mae un peth 420 00:22:22,250 --> 00:22:25,710 i fod yn ymwybodol o, yw bod Bydd y ORM yn gwneud ei orau 421 00:22:25,710 --> 00:22:28,640 i chyfrif i maes beth y mwyaf Byddai SQL query effeithlon fod, 422 00:22:28,640 --> 00:22:30,110 ond weithiau mae'n mynd yn anghywir. 423 00:22:30,110 --> 00:22:32,660 >> Ac yn enwedig os ydych chi'n gweithio gyda chronfa ddata mawr, 424 00:22:32,660 --> 00:22:35,557 gallwch sylwi bod ymholiad y dylid eu rhedeg yn gyflym, 425 00:22:35,557 --> 00:22:36,640 mewn gwirionedd yn cymryd mwy o amser. 426 00:22:36,640 --> 00:22:40,164 Ac os ydych yn edrych o dan y cwfl ar sut mae'r ORM yn dehongli'r hynny i mewn i SQL, 427 00:22:40,164 --> 00:22:42,080 gallai fod yn gwneud rhywbeth 'n sylweddol chwerthinllyd, 428 00:22:42,080 --> 00:22:44,371 dim ond oherwydd ei fod yn fath o ystumio eich bwriadau anghywir. 429 00:22:44,371 --> 00:22:48,080 Ac, mae yna adegau pan fu Rwyf wedi cael i droi'r fantol yn ei, a dim ond 430 00:22:48,080 --> 00:22:52,429 gweithredu fy ymholiadau SQL hun, dim ond oherwydd ei fod yn dosrannu mewn ffordd ryfedd. 431 00:22:52,429 --> 00:22:54,220 Felly, mae rhywfaint o uwchben, dim ond yn y ffordd 432 00:22:54,220 --> 00:22:58,680 ei fod yn llunio eich datganiadau lawr i SQL. 433 00:22:58,680 --> 00:23:06,200 >> Felly, gadewch i ni edrych super gyflym ar enghraifft syml o fodel data 434 00:23:06,200 --> 00:23:07,350 y gallech eu defnyddio. 435 00:23:07,350 --> 00:23:11,880 Felly, mae hyn yn cod Python, ac felly mae'r peth cyntaf rydych am ei wneud yn dod o 436 00:23:11,880 --> 00:23:12,950 mewnforio peewee *. 437 00:23:12,950 --> 00:23:15,850 Felly, yn wahanol Fflasg, lle mae gennych holl fodiwlau unigol hyn, 438 00:23:15,850 --> 00:23:18,125 ac rydych am i fewnforio Fflasg, a ysgrifennu Templed, a rhai eraill 439 00:23:18,125 --> 00:23:20,690 y byddwn yn gweld yn nes ymlaen, o peewee, gallwch fewnforio popeth, 440 00:23:20,690 --> 00:23:22,290 am ei fod yn llyfrgell eithaf bach. 441 00:23:22,290 --> 00:23:26,490 >> Felly, y peth cyntaf rydych am ei wneud, yw mewn gwirionedd greu'r gwrthrych cronfa ddata. 442 00:23:26,490 --> 00:23:31,212 Felly, mae gennych db = SqliteDatabase, ac yna enw eich cronfa ddata. 443 00:23:31,212 --> 00:23:33,170 A bydd hyn mewn gwirionedd yn creu gwrthrych cronfa ddata 444 00:23:33,170 --> 00:23:36,230 eich bod yn gallu rhyngweithio â, gyda peewee. 445 00:23:36,230 --> 00:23:40,570 >> Ac yna, mae gennym y gwir model yr ydym am ei chreu. 446 00:23:40,570 --> 00:23:42,470 Felly mae'r tabl ydym am ei chreu. 447 00:23:42,470 --> 00:23:47,270 Felly, o fewn peewee, pob dosbarth wedi ei bwrdd ei hun o fewn eich cronfa ddata. 448 00:23:47,270 --> 00:23:52,800 Felly, pob un o'r dosbarthiadau etifeddu oddi wrth y model sylfaenol, 449 00:23:52,800 --> 00:23:55,960 a'r model M cyfalaf yn rhywbeth sydd ddiffinio yn peewee. 450 00:23:55,960 --> 00:24:02,162 >> Felly, eich holl fodelau dylai etifeddu gan fod eu uwchddosbarth uchaf, 451 00:24:02,162 --> 00:24:04,620 dylent etifeddu oddi wrth y model, ond yr hyn sy'n wirioneddol cŵl, 452 00:24:04,620 --> 00:24:07,610 yw y gallwch chi mewn gwirionedd yn cael eich modelau etifeddu oddi wrth ei gilydd. 453 00:24:07,610 --> 00:24:10,530 Ac mae llawer o'r amser, eich Nid yw modelau data yn ei wneud o reidrwydd 454 00:24:10,530 --> 00:24:13,754 gwneud hierarchaeth etifeddiaeth 'n glws, ond adegau pan maent yn ei wneud, mae'n neis iawn, 455 00:24:13,754 --> 00:24:15,920 oherwydd eich bod yn cael y model cynhenid ​​oddi wrth ei gilydd. 456 00:24:15,920 --> 00:24:19,710 >> Felly, rydym yn y diffinnir y dosbarth hwn 'Myfyriwr,' sy'n etifeddu model, 457 00:24:19,710 --> 00:24:21,170 ac mae wedi tri eiddo. 458 00:24:21,170 --> 00:24:24,080 Mae ganddo adnabod, sef a PrimaryKeyField, a oedd yn 459 00:24:24,080 --> 00:24:26,920 yn rhywbeth sy'n ei ddarparu yn ôl peewee, enw yn CharField, 460 00:24:26,920 --> 00:24:28,490 a gradd yn IntegerField. 461 00:24:28,490 --> 00:24:32,260 Felly, mae hyn gall neu na all fod yn sut CS50 gwirionedd siopau i gyd 462 00:24:32,260 --> 00:24:33,650 graddau y myfyrwyr. 463 00:24:33,650 --> 00:24:36,060 Nid yw'n, ond dyma sut y byddwn yn ei wneud. 464 00:24:36,060 --> 00:24:37,920 >> Ac yna mae wedi, o fewn y dosbarth hwn, ac mae hyn 465 00:24:37,920 --> 00:24:41,620 yn rhywbeth y gallwch ei wneud gyda Python, gallwch gael dosbarthiadau nythu. 466 00:24:41,620 --> 00:24:43,920 Ac mae hyn yn rhywbeth sy'n ofynnol gan peewee. 467 00:24:43,920 --> 00:24:47,250 Felly, mae hyn yn Meta dosbarth, mae gennych i bennu bod y gronfa ddata yn 468 00:24:47,250 --> 00:24:49,830 hafal i'r gwrthrych ein bod yn creu uchod. 469 00:24:49,830 --> 00:24:54,339 Ac mae hyn yn dweud beth y ffeil yn y tabl hwn mewn gwirionedd yn mynd i gael ei gynnwys yn. 470 00:24:54,339 --> 00:24:57,130 Felly, mae hyn yn rhywbeth sydd gennych i'w wneud o fewn eich holl fodelau. 471 00:24:57,130 --> 00:24:59,380 Mae'n rhaid i chi nodi o fewn y dosbarth hwn Meta 472 00:24:59,380 --> 00:25:01,400 bod cronfa ddata yn hafal i db. 473 00:25:01,400 --> 00:25:03,940 Felly, yr hyn yr wyf fel arfer yn ei wneud, os oes gennyf criw o wahanol fodelau, 474 00:25:03,940 --> 00:25:05,910 yw bod gen i un ganolfan model, fy mod fel arfer 475 00:25:05,910 --> 00:25:08,839 ffoniwch "model sylfaenol" sydd â'r dosbarth Meta, 476 00:25:08,839 --> 00:25:10,380 ac mae'n gosod y gronfa ddata cyfartal i db. 477 00:25:10,380 --> 00:25:13,710 Ac yna fy holl fodelau dilynol Bydd etifeddu gan y dosbarth sylfaen. 478 00:25:13,710 --> 00:25:16,760 Ac yna does dim rhaid i mi boeni am osod y dosbarth Meta. 479 00:25:16,760 --> 00:25:21,490 >> Felly, pan fydd hyn mewn gwirionedd yn cael a luniwyd i lawr i mewn i ddatganiad SQL, 480 00:25:21,490 --> 00:25:24,875 mae'n edrych fel y peth cas i lawr yma, "Creu tabl cyfanrif adnabod myfyriwr, 481 00:25:24,875 --> 00:25:26,020 " Beth bynnag. 482 00:25:26,020 --> 00:25:30,002 >> Ac, yr wyf yn meddwl ei fod yn fyrrach, SQL hwn ymholiad iawn yma, 483 00:25:30,002 --> 00:25:32,960 ond os edrychwch ar y dosbarth hwn yma gallwch weld yn union beth sy'n digwydd. 484 00:25:32,960 --> 00:25:36,116 Gallwch weld pa fath o gaeau mae yna, beth maen nhw'n cael eu galw, 485 00:25:36,116 --> 00:25:38,115 ac felly, yr wyf yn meddwl bod edrych ar y cod Python 486 00:25:38,115 --> 00:25:43,340 yn llawer mwy darllenadwy na ceisio ysgrifennu hwn SQL query. 487 00:25:43,340 --> 00:25:45,990 >> Felly, er mwyn gwirionedd defnyddio'r gronfa ddata, 488 00:25:45,990 --> 00:25:48,470 mae'n rhaid i ni gysylltu ag ef o fewn Python. 489 00:25:48,470 --> 00:25:52,770 Felly, yr wyf fel arfer yn ysgrifennu swyddogaeth o'r enw initialize_db sy'n gwneud dau beth. 490 00:25:52,770 --> 00:25:54,880 Mae'n cymryd yn y gronfa ddata db gwrthrych ac mae'n 491 00:25:54,880 --> 00:25:58,360 cysylltu iddo, a dim ond yn agor hyd adran i'r gronfa ddata. 492 00:25:58,360 --> 00:26:00,860 Os ydych ond yn rhedeg er Gwefan ar eich peiriant lleol, 493 00:26:00,860 --> 00:26:04,320 nid yw'n llawer super mawr i boeni am gysylltu a datgysylltu, 494 00:26:04,320 --> 00:26:06,885 ond os ydych yn rhedeg ar wefan, rydych yn 495 00:26:06,885 --> 00:26:10,010 eisiau gwneud yn siŵr bod, pryd bynnag y bydd defnyddiwr cysylltu iddo, pan fyddant yn cau allan 496 00:26:10,010 --> 00:26:12,270 y wefan, maent yn datgysylltu er mwyn i chi Nid oes rhaid i griw o bobl sy'n gysylltiedig 497 00:26:12,270 --> 00:26:14,480 at eich cronfa ddata i gyd ar unwaith. 498 00:26:14,480 --> 00:26:16,370 >> Ac yna, pan fyddwch yn cysylltu â'r gronfa ddata, 499 00:26:16,370 --> 00:26:20,832 rydych am ei alw db.create_tables, a rhestru'r modelau ar gyfer yr hyn rydych am 500 00:26:20,832 --> 00:26:21,540 i greu tablau. 501 00:26:21,540 --> 00:26:23,950 Felly dyma, Fi jyst eisiau creu ar gyfer myfyriwr hwn. 502 00:26:23,950 --> 00:26:28,070 Ac yna, yr hyn sy'n bwysig, yw pennu diogel = Gwir rhan fwyaf o'r amser. 503 00:26:28,070 --> 00:26:30,380 Felly, beth mae hyn yn y datganiad Bydd ei wneud, yw ei fod yn 504 00:26:30,380 --> 00:26:33,580 creu tablau ar gyfer y model myfyrwyr, ond dim ond 505 00:26:33,580 --> 00:26:36,109 os nad y tabl hwnnw wedi ei greu yn barod. 506 00:26:36,109 --> 00:26:37,400 Dyna beth mae'r bennir yn ddiogel. 507 00:26:37,400 --> 00:26:39,150 Felly, ni fydd yn trosysgrifo eich bwrdd sy'n bodoli eisoes, 508 00:26:39,150 --> 00:26:41,525 ni fydd yn creu newydd bwrdd os nad oes un yno. 509 00:26:41,525 --> 00:26:45,090 Felly, fe allech chi jyst greu mae'r tablau unwaith gan ddefnyddio SQL. 510 00:26:45,090 --> 00:26:49,410 Ac yna cael y eisteddiad gronfa ddata yno, ac yna cysylltu bob tro, 511 00:26:49,410 --> 00:26:52,450 ond mae'n arfer braf yn unig i rhoi yn create_tables hwn alwad, 512 00:26:52,450 --> 00:26:55,550 er mwyn sicrhau, os ydych chi erioed dileu eich cronfa ddata pan fyddwch yn rhedeg eich gwe 513 00:26:55,550 --> 00:26:57,960 app eto, bydd yn ail-greu. 514 00:26:57,960 --> 00:27:00,730 >> Felly, dim ond gwneud yn siwr bod yn ddiogel wedi ei bennu i fod yn Gwir, 515 00:27:00,730 --> 00:27:03,580 neu y byddwch yn dod o hyd eich data yn unig cael taro bob tro. 516 00:27:03,580 --> 00:27:06,380 Ac yna, gallwch ffonio initialize_db i sefydlu 517 00:27:06,380 --> 00:27:09,820 cysylltiad, ac yn creu tablau os oes angen. 518 00:27:09,820 --> 00:27:13,150 >> Felly, y peth mwyaf cyffredin y byddwch am ei wneud, 519 00:27:13,150 --> 00:27:15,920 neu un o'r pethau mwyaf cyffredin, yw mewn gwirionedd yn mewnosod pethau 520 00:27:15,920 --> 00:27:17,170 i mewn i'ch cronfa ddata. 521 00:27:17,170 --> 00:27:19,430 Ac felly, yn hytrach na chael i ysgrifennu mewnosodiad I 522 00:27:19,430 --> 00:27:21,990 Datganiad gyda phob un gwerthoedd a nodwyd, 523 00:27:21,990 --> 00:27:24,650 gallwch ffonio mewn gwirionedd swyddogaeth ar y dosbarth y myfyrwyr. 524 00:27:24,650 --> 00:27:28,200 Felly, pan fyddwch yn creu dosbarth sy'n etifeddu o fodel, 525 00:27:28,200 --> 00:27:30,200 mae ganddi hyn yn creu dull. 526 00:27:30,200 --> 00:27:33,870 >> Felly, rydych yn gwneud name.create dosbarth, ac rydych yn pennu'r paramedrau 527 00:27:33,870 --> 00:27:35,260 eich bod am i basio mewn. 528 00:27:35,260 --> 00:27:39,200 Felly, os wyf am ychwanegu rhai myfyrwyr at ein enghraifft llyfr gradd CS50, 529 00:27:39,200 --> 00:27:41,820 'N annhymerus' roi yn David, sydd â gradd dda iawn, mae ganddo 95. 530 00:27:41,820 --> 00:27:45,100 A minnau, nid pwy sy'n gwneud cystal yn CS50, mae gen i 50. 531 00:27:45,100 --> 00:27:47,600 Ac felly, y peth braf am beth mae hyn yn swyddogaeth yn creu ei wneud, 532 00:27:47,600 --> 00:27:53,040 yw ei fod yn dychwelyd y lle, neu'r rhes, ei fod yn creu o fewn y bwrdd, 533 00:27:53,040 --> 00:27:55,750 ac felly, yna i chi storio hynny mewn amrywiol, ac yn gweithio ag ef yn nes ymlaen. 534 00:27:55,750 --> 00:27:58,830 Gallwch newid o gwmpas, a oedd yn Byddaf yn dangos enghraifft o. 535 00:27:58,830 --> 00:28:03,050 >> Sylwch fod Doeddwn i ddim rhaid i bennu'r ID, 536 00:28:03,050 --> 00:28:09,340 oherwydd ers ei fod yn y PrimaryKeyField, bydd yn awtomatig 537 00:28:09,340 --> 00:28:10,930 cynyddiad os nad ydych yn nodi hynny. 538 00:28:10,930 --> 00:28:12,250 Ac, mewn gwirionedd, mae'n debyg Ni ddylai bennu ei, 539 00:28:12,250 --> 00:28:14,810 oherwydd eich bod efallai yn ddamweiniol trosysgrifo'r ID rhywun arall. 540 00:28:14,810 --> 00:28:16,830 Ac ydych am wneud yn siŵr ei fod yn unigryw. 541 00:28:16,830 --> 00:28:20,662 >> Felly, mewn gwirionedd, y mwyaf beth cyffredin rydych am ei wneud, 542 00:28:20,662 --> 00:28:22,620 yn ôl pob tebyg yn cael ei dewis allan o'r gronfa ddata ar ôl i chi 543 00:28:22,620 --> 00:28:24,078 yn cael llawer o wybodaeth mewn 'na. 544 00:28:24,078 --> 00:28:27,360 Ac felly, os ydych chi am gael popeth, felly yr hyn sy'n cyfateb y seren dethol 545 00:28:27,360 --> 00:28:30,940 o datganiad myfyrwyr, mae'n fyddai dim ond yn student.select. 546 00:28:30,940 --> 00:28:34,380 A fydd yn rhoi i chi yn ôl amrywiaeth gyda phob un y myfyriwr gwrthrychau ynddo 547 00:28:34,380 --> 00:28:35,770 eich bod yn ailadrodd drosodd ydych ei eisiau. 548 00:28:35,770 --> 00:28:37,019 Gallwch gael pethau allan ohono. 549 00:28:37,019 --> 00:28:39,310 Ac yn y rhan fwyaf o'r amser, byddwch yn peidiwch â eisiau gwneud dewis, 550 00:28:39,310 --> 00:28:40,935 chi mewn gwirionedd yn awyddus i nodi rhywbeth. 551 00:28:40,935 --> 00:28:44,580 Ac felly, gallwch cadwyn ynghyd galwadau swyddogaeth hyn, 552 00:28:44,580 --> 00:28:48,830 fel sut y byddech cadwyn ynghyd y datganiadau yn SQL. 553 00:28:48,830 --> 00:28:53,002 Felly, gallwch chi ei wneud student.select (). Lle yn yr enghraifft hon. 554 00:28:53,002 --> 00:28:54,710 Ac yna, gallwch pennu'r amodau, 555 00:28:54,710 --> 00:28:57,880 dim ond gan ddefnyddio Python arferol Booleans i wirio pethau. 556 00:28:57,880 --> 00:29:02,110 >> Felly, yn yr achos hwn, byddwch am cyfyngu ar yr hyn yr ydych yn dewis i, 557 00:29:02,110 --> 00:29:06,790 lle mae student.grade yn hafal i 50, ac student.name yn hafal i Ezra, 558 00:29:06,790 --> 00:29:09,130 fel y bydd dim ond yn cael fi allan ohono. 559 00:29:09,130 --> 00:29:11,340 Ac yn sylwi, un 'n sylweddol peth cynnil yma yw 560 00:29:11,340 --> 00:29:15,570 hynny, os ydych am bennu mae a / a neu neu / neu, 561 00:29:15,570 --> 00:29:19,840 yn Python, byddech fel arfer yn eu defnyddio, Rwy'n meddwl bod y gair "and" mewn gwirionedd, 562 00:29:19,840 --> 00:29:23,351 ond yma byddwch yn defnyddio'r ampersand sengl, sydd yn weithredwr bitwise fel arfer, 563 00:29:23,351 --> 00:29:25,600 ond yn yr achos arbennig, dim ond y ffordd peewee nac ydi, 564 00:29:25,600 --> 00:29:27,660 eich bod yn defnyddio'r un ampersand i nodi "a." 565 00:29:27,660 --> 00:29:29,451 Mae hynny'n rhywbeth y Yr wyf yn cael cymysgu llawer, 566 00:29:29,451 --> 00:29:32,530 ond nid yw'n dod i fyny bod llawer yn ymarferol. 567 00:29:32,530 --> 00:29:36,350 >> Ac yna, unwaith y byddwch yn cael yr holl y myfyrwyr allan o'r gronfa ddata, 568 00:29:36,350 --> 00:29:39,420 unwaith y byddwch wedi gwneud eich bod yn dewis a bod eich gwisgo neu beth bynnag, 569 00:29:39,420 --> 00:29:42,334 gallwch ddefnyddio dolen foreach, yn union fel normal yn Python, 570 00:29:42,334 --> 00:29:44,500 gydag unrhyw fath o iterator neu gydag unrhyw fath o amrywiaeth. 571 00:29:44,500 --> 00:29:46,333 Felly, gallwch chi ei wneud, ar gyfer s yn student.select (). whe 572 00:29:46,333 --> 00:29:52,930 ail (Student.grade <75), ac yn y blaen bydd hyn ailadrodd dros bob myfyriwr yn y tabl 573 00:29:52,930 --> 00:29:56,260 y mae ei radd yn llai na 75, a oedd yn yn yr achos hwn, yn dal i fod dim ond fi. 574 00:29:56,260 --> 00:29:59,218 Ac yna gallech wneud rhywbeth o fewn hynny dolen, fel anfon e-bost ataf 575 00:29:59,218 --> 00:30:01,680 ac yn dweud wrthyf i mewn gwirionedd troi yn fy Setiau Problemau. 576 00:30:01,680 --> 00:30:04,550 >> Felly, beth arall y gallwch yn ei wneud, yw ei bod yn hawdd iawn 577 00:30:04,550 --> 00:30:06,460 i ddiweddaru rhesi o fewn y tabl. 578 00:30:06,460 --> 00:30:08,720 Felly, cofiwch yn ôl yma, eich pan fyddaf yn mewnosod, 579 00:30:08,720 --> 00:30:11,440 Cymerais y gwerth a oedd yn ddychwelir gan student.create, 580 00:30:11,440 --> 00:30:14,920 ac yr wyf yn neilltuo i enw o'r enw Ezra. 581 00:30:14,920 --> 00:30:18,995 Ac felly yn awr, gallwch newid y gwerthoedd o fewn yr achos hwnnw, 582 00:30:18,995 --> 00:30:20,870 yn union fel y byddech yn arferol y dosbarth yn Python. 583 00:30:20,870 --> 00:30:25,060 >> Felly, gallwch osod ezra.grade = 95 ac a fydd yn diweddaru'r copi lleol, 584 00:30:25,060 --> 00:30:28,380 ond os ydych mewn gwirionedd yn eisiau ymrwymo y newid i'r gronfa ddata, 585 00:30:28,380 --> 00:30:31,410 mae'n rhaid i chi alw ezra.save, er mwyn i chi a elwir yn y dull .save 586 00:30:31,410 --> 00:30:32,650 ar y lle. 587 00:30:32,650 --> 00:30:38,085 >> Ac felly yn awr, yr wyf wedi newid yn llwyddiannus fy graddfa hun o fewn y gronfa ddata. 588 00:30:38,085 --> 00:30:41,210 Felly, yna gadewch i ni ddweud fy mod yn cael eu dal newid fy ngradd yn y gronfa ddata. 589 00:30:41,210 --> 00:30:44,126 Yn ôl pob tebyg yr Athro Malan yn mynd i eisiau i mi dileu oddi wrth y dosbarth, 590 00:30:44,126 --> 00:30:48,630 ac felly gallwch ffonio'r .delete enghraifft dull yn unig ar y peth. 591 00:30:48,630 --> 00:30:51,674 >> Felly, os ydych eisiau mynd yn ôl i mewn dolen hyn yma, 592 00:30:51,674 --> 00:30:53,465 ac mewn gwirionedd, yn lle hynny o anfon negeseuon e-bost bob 593 00:30:53,465 --> 00:30:56,577 o'r myfyrwyr y mae eu gradd yn llai na 75, yr oeddech yn dymuno i'w dileu, 594 00:30:56,577 --> 00:30:58,660 o fewn y ddolen hon gallech ffoniwch enghraifft s.delete. 595 00:30:58,660 --> 00:31:04,180 596 00:31:04,180 --> 00:31:07,780 A'r peth olaf un rydych am ei wneud, pryd bynnag y byddwch yn sefydlu cysylltiad, 597 00:31:07,780 --> 00:31:10,350 ac rydych yn ei wneud gyda'ch gwaith, rydych am ei alw db.close, 598 00:31:10,350 --> 00:31:13,190 lle mae db yw y gronfa ddata gwrthwynebu a oedd gennym o'r blaen. 599 00:31:13,190 --> 00:31:18,290 A'ch bod am wneud yn siŵr bod popeth yn cael gau allan o. 600 00:31:18,290 --> 00:31:18,790 >> Cool. 601 00:31:18,790 --> 00:31:22,410 Felly nawr, mae gennyf gais enghraifft. 602 00:31:22,410 --> 00:31:26,880 Rydw i wedi fath o cyn-gwneud popeth yn unig fel na fydd unrhyw codio yn fyw 603 00:31:26,880 --> 00:31:30,220 camgymeriadau, ond gallwn gerdded drwy'r arni a gweld sut y byddech yn ei roi Fflasg 604 00:31:30,220 --> 00:31:33,685 a peewee gyda'i gilydd, a gwneud app syml. 605 00:31:33,685 --> 00:31:38,680 Wyf yn ei alw rant CS50, ac mae'n math o llwyfan blog syml. 606 00:31:38,680 --> 00:31:41,150 >> Felly, yn gyntaf, 'n annhymerus' ei redeg a dangos sut mae'n edrych, 607 00:31:41,150 --> 00:31:42,890 ac yna gallwn edrych yn fwy i mewn i'r cod. 608 00:31:42,890 --> 00:32:00,470 609 00:32:00,470 --> 00:32:02,830 Iawn, felly gadewch i ni jyst yn rhedeg hyn. 610 00:32:02,830 --> 00:32:14,040 611 00:32:14,040 --> 00:32:17,250 Cool, 'n annhymerus' yn gwneud hyn yn ychydig yn llai. 612 00:32:17,250 --> 00:32:20,000 Dyw hi ddim yn bert iawn, dim ond oherwydd Doeddwn i ddim yn gwneud llawer o CSS, 613 00:32:20,000 --> 00:32:23,255 ond yr hyn mae'n ei wneud yw, mae wedi y gronfa ddata hon o swyddi blog, 614 00:32:23,255 --> 00:32:25,630 ac mae'n mynd drwy bob un nhw, a bydd yn eu dangos 615 00:32:25,630 --> 00:32:28,170 ar y dudalen yn nhrefn y mwyaf diweddar. 616 00:32:28,170 --> 00:32:30,920 Ac felly dyma rai swyddi fy mod wedi cadw yn y gronfa ddata. 617 00:32:30,920 --> 00:32:35,680 >> Felly os ydym am greu newydd post, gallwn fynd i Ychwanegwch Post Newydd, 618 00:32:35,680 --> 00:32:42,720 a gallwn fynd i mewn i'r teitl y post, felly rhywbeth fel, seminar CS50. 619 00:32:42,720 --> 00:32:45,360 620 00:32:45,360 --> 00:32:46,735 Wow, wir yn mwynhau'r seminar. 621 00:32:46,735 --> 00:32:51,070 622 00:32:51,070 --> 00:32:52,270 >> Cool. 623 00:32:52,270 --> 00:32:56,060 Yna byddwch yn pwyso post, ac y bydd yn ailgyfeirio i chi yn ôl at y dudalen gartref, 624 00:32:56,060 --> 00:33:00,039 ac yna byddwch yn gweld bod neges ddiweddaraf ei ychwanegu. 625 00:33:00,039 --> 00:33:01,580 Ac rydym yn dal i gael yr holl rai yno. 626 00:33:01,580 --> 00:33:08,080 Felly nawr, gadewch i ni gamu drwy bob un o'r cod a gweld sut y mae hyn yn cael ei weithredu. 627 00:33:08,080 --> 00:33:11,995 >> Felly, yr wyf yn meddwl y peth cyntaf a gadewch i ni yn edrych ar, mewn gwirionedd y modelau. 628 00:33:11,995 --> 00:33:14,120 Mae llawer o'r amser, pan fydd ydych yn cynllunio rhywbeth, 629 00:33:14,120 --> 00:33:17,036 y byddwch am ystyried yn gyntaf am sut ydych yn mynd i gynrychioli eich data, 630 00:33:17,036 --> 00:33:22,915 ac yna cynllunio pethau o gwmpas hynny, fel bod popeth yn gwneud synnwyr. 631 00:33:22,915 --> 00:33:25,290 A dyna sut yr wyf mewn gwirionedd yn gwneud hynny pan oeddwn yn ei wneud hyn, 632 00:33:25,290 --> 00:33:28,030 Eisteddais i lawr a meddwl, beth ddylwn i ei eisiau mewn swydd. 633 00:33:28,030 --> 00:33:32,130 >> Felly, yma, mae gennym yr un strwythur yr oeddwn yn sôn yn gynharach, 634 00:33:32,130 --> 00:33:33,755 lle rydym yn ei wneud db = Sqldatabase ('posts.db'). 635 00:33:33,755 --> 00:33:37,840 636 00:33:37,840 --> 00:33:40,980 Mewn gwirionedd, mae'n debyg na ddim eisiau i cod caled mewn cronfeydd data eich enw i. 637 00:33:40,980 --> 00:33:43,730 Mae'n debyg y dylai hynny fod yn paramedr sy'n cael ei storio yn rhywle, efallai 638 00:33:43,730 --> 00:33:45,940 mewn ffeil config, ond mewn enghraifft fach fel hyn, 639 00:33:45,940 --> 00:33:48,310 ei fod yn iawn i cod caled sydd yn. 640 00:33:48,310 --> 00:33:53,510 >> Felly nawr, mae gennym y dosbarth hwn Post, sy'n etifeddu oddi wrth y model sylfaenol. 641 00:33:53,510 --> 00:33:56,930 Ac mae wedi, unwaith eto, mae'r ID = PrimaryKeyField. 642 00:33:56,930 --> 00:34:02,250 Mewn gwirionedd, os nad ydych yn nodi, os Fi 'n weithredol yn cael gwared o hyn, 643 00:34:02,250 --> 00:34:07,152 Yna peewee y byddwn yn gofalu am yn awtomatig yn creu y maes hwnnw ID, 644 00:34:07,152 --> 00:34:09,360 ac bydd yn awtomatig ei gwneud yn PrimaryKey, a oedd yn 645 00:34:09,360 --> 00:34:12,485 Yr wyf yn meddwl yn neis iawn, oherwydd fel arfer, mae hynny'n rhywbeth yr ydych am ei gael, 646 00:34:12,485 --> 00:34:16,239 ond yr wyf yn hoffi ei roi yn benodol, yn union fel yr wyf yn cofio ei fod mewn 'na. 647 00:34:16,239 --> 00:34:19,480 Ond os nad ydych yn nodi hynny, a fydd yno yn awtomatig. 648 00:34:19,480 --> 00:34:22,198 >> Felly, yna, mae gen i ddyddiad sy'n yn DateTimeField, a phob 649 00:34:22,198 --> 00:34:24,864 gwahanol feysydd hyn, os ydych yn edrych ar y ddogfennaeth peewee, 650 00:34:24,864 --> 00:34:28,920 bydd yn rhoi rhestr o'r gwahanol i chi mathau o gaeau y gallwch eu defnyddio. 651 00:34:28,920 --> 00:34:34,440 Ar gyfer y rhan fwyaf, mae'n debyg i hyn y byddech yn ei weld yn SQL. 652 00:34:34,440 --> 00:34:37,699 Felly mae yna CharField, a VarCharFields, TextFields, 653 00:34:37,699 --> 00:34:40,550 sydd ar gyfer hir iawn testunau, fel swydd blog 654 00:34:40,550 --> 00:34:44,460 o bosibl, DateTimeFields, DoubleFields, FloatFields, 655 00:34:44,460 --> 00:34:46,100 pob peth fel 'na. 656 00:34:46,100 --> 00:34:51,570 >> A allwch chi basio mewn dadleuon eraill iddo, ac nid oeddwn yn nodi fan hyn. 657 00:34:51,570 --> 00:34:55,719 Dweud, er enghraifft, rydych nid oedd eisiau caniatáu dwy swydd i gael yr un teitl, 658 00:34:55,719 --> 00:34:59,672 Gallai eich bod yn nodi rhywbeth fel unigryw = Gwir, 659 00:34:59,672 --> 00:35:02,880 a dim ond paramedr ychwanegol i y cae hwnnw pan fydd yn llunio ei lawr 660 00:35:02,880 --> 00:35:06,865 i mewn i'r SQL, bydd yn pennu bod yn rhaid iddo fod yn unigryw. 661 00:35:06,865 --> 00:35:09,740 Gallwch hefyd benodi rhywbeth fel Nid null a'r holl bethau eraill 662 00:35:09,740 --> 00:35:11,750 ydych yn ei wneud fel arfer mewn SQL. 663 00:35:11,750 --> 00:35:16,020 Felly, mae hwn yn eithaf syml model sydd â'r dyddiad. 664 00:35:16,020 --> 00:35:19,460 Hysbysiad yma, o fewn y DateTimeField, Rwy'n nodir yr hyn y mae'r rhagosodiad yw. 665 00:35:19,460 --> 00:35:22,560 Rwy'n bennir iddo fod datetime.datetime.now, 666 00:35:22,560 --> 00:35:24,920 oherwydd y ffordd y mae hyn yn cael ei werthuso, 667 00:35:24,920 --> 00:35:28,750 mewn gwirionedd mae'n gwerthuso y datetime.now pan 668 00:35:28,750 --> 00:35:32,110 mae'n mynd yn mewnosod yn y gronfa ddata. 669 00:35:32,110 --> 00:35:34,760 >> Credaf, byddwn i'n cael i ddyblu wirio hyn, 670 00:35:34,760 --> 00:35:38,222 ond os ydych yn gwneud rhywbeth fel hyn, yna byddai mewn gwirionedd yn gwerthuso hynny unwaith, 671 00:35:38,222 --> 00:35:40,180 ac yna y datetime Byddai bob amser yr un fath. 672 00:35:40,180 --> 00:35:44,240 Felly, dim ond os ydych yn gwneud rhywbeth gyda datetimes, gwiriad dwbl 673 00:35:44,240 --> 00:35:47,080 ei fod yn gwerthuso pryd mewn gwirionedd yn cael ei mewnosod, neu fel arall 674 00:35:47,080 --> 00:35:48,780 efallai y byddwch yn ddryslyd. 675 00:35:48,780 --> 00:35:51,221 >> Mae'r teitl yn unig yw CharField, a oedd yno 676 00:35:51,221 --> 00:35:53,970 yn fwy ddadleuon y gallwch chi basio wrth nodi union pa mor hir rydych 677 00:35:53,970 --> 00:35:56,170 am iddo fod, ond yma, nid oedd wir bwys. 678 00:35:56,170 --> 00:35:58,687 A Text yn mynd i fod testun y swydd cyfan, 679 00:35:58,687 --> 00:36:01,020 ac mae hynny'n mynd i fod yn TextField dim ond oherwydd eich bod am 680 00:36:01,020 --> 00:36:03,370 i'w alluogi i fod yn llinyn eithaf hir. 681 00:36:03,370 --> 00:36:05,970 >> Yna, mae gennym Meta hwn Is-ddosbarth sydd yn unig 682 00:36:05,970 --> 00:36:11,250 yn nodi ein bod am y gronfa ddata lle mae hyn yn agor mewn gwirionedd i fyny i mewn 683 00:36:11,250 --> 00:36:14,267 i fod y gwrthrych db sydd gennym yma. 684 00:36:14,267 --> 00:36:16,350 Ac peth olaf yr ydym wedi yma, yn unig yw swyddogaeth hon 685 00:36:16,350 --> 00:36:18,120 ein bod ni'n mynd i defnyddio gan ein prif app 686 00:36:18,120 --> 00:36:23,970 i ymgychwyn y gronfa ddata i gysylltu , ac yna i greu'r tabl Post. 687 00:36:23,970 --> 00:36:26,880 >> Yn awr, gadewch i ni edrych ar y prif app ei hun. 688 00:36:26,880 --> 00:36:30,800 Felly, mae hyn yn un yn dipyn o ychydig yn hirach na'r rhai 689 00:36:30,800 --> 00:36:34,840 ein bod ni wedi ei weld o'r blaen, ond gobeithio ddim yn rhy ddrwg. 690 00:36:34,840 --> 00:36:37,140 Felly, gadewch i mi ymestyn hyn allan. 691 00:36:37,140 --> 00:36:38,370 Iawn. 692 00:36:38,370 --> 00:36:42,070 >> Felly, yn sylwi a phen yr wyf yn mewnforio criw cyfan o bethau eraill 693 00:36:42,070 --> 00:36:44,129 o Fflasg nad ydym wedi gweld 'n sylweddol o'r blaen. 694 00:36:44,129 --> 00:36:46,670 A gobeithio, gallwn fynd drwy'r pob un o'r rhain o un i un 695 00:36:46,670 --> 00:36:49,420 a siarad ychydig yn fwy am nhw, didoli yn ôl esiampl. 696 00:36:49,420 --> 00:36:51,380 Felly, mae gennym y Fflasg, a'r render_template, 697 00:36:51,380 --> 00:36:54,370 yr ydym wedi ei weld o'r blaen, cais hwn gwrthrych, 698 00:36:54,370 --> 00:37:00,400 a fydd yn dod i fyny pan fyddwn yn edrych ar sut y ffurf yr oeddwn yn ei ddangos mewn gwirionedd 699 00:37:00,400 --> 00:37:01,170 yn gweithio. 700 00:37:01,170 --> 00:37:04,850 Ailgyfeirio, sy'n gadael i chi ailgyfeirio yn ôl o'r Create New Post 701 00:37:04,850 --> 00:37:11,710 yn ôl i'r dudalen gartref gwreiddiol, ac yna URL, sy'n rhywbeth sy'n caniatáu i chi 702 00:37:11,710 --> 00:37:15,550 chyfrif i maes ble ar y Gwefan dudalen benodol y mae. 703 00:37:15,550 --> 00:37:17,810 >> Felly, yna, mae'r nesaf beth wyf yn ei wneud, yw wyf mewnforio 704 00:37:17,810 --> 00:37:21,550 yr holl wybodaeth oddi wrth y Modelau ffeiliau a oeddem yn dim ond edrych ar. 705 00:37:21,550 --> 00:37:23,140 Ac, ie. 706 00:37:23,140 --> 00:37:28,720 >> Felly, rhywbeth arall newydd a ddaw i fyny pan fyddwch yn delio â, 707 00:37:28,720 --> 00:37:31,850 yn enwedig cronfeydd data, yw y gallwch nodi 708 00:37:31,850 --> 00:37:35,110 swyddogaeth sy'n cael ei alw cyn bob cais, a swyddogaeth sy'n cael 709 00:37:35,110 --> 00:37:39,690 Gelwir ôl pob cais, gan ddefnyddio'r hyn cais swyddogaeth addurnwr app.before. 710 00:37:39,690 --> 00:37:42,324 >> Ac felly y bydd hyn yn cael ei weithredu lle bynnag y bo swyddogaeth yw hyn. 711 00:37:42,324 --> 00:37:44,240 Nid oes rhaid i hyn fod Gelwir cyn cais, 712 00:37:44,240 --> 00:37:46,281 ond fel arfer mae hynny'n rhywbeth synhwyrol ei alw. 713 00:37:46,281 --> 00:37:48,580 714 00:37:48,580 --> 00:37:51,650 Gallwch nodi pa bynnag swyddogaeth rydych am ei gael o'r enw yno, 715 00:37:51,650 --> 00:37:56,330 felly yr wyf yn penodedig initialize_db hon swyddogaeth a gawsom yn ôl yn y Modelau 716 00:37:56,330 --> 00:38:02,390 ffeiliau, felly cyn pob cais, byddwch yn eisiau cysylltu â'r gronfa ddata. 717 00:38:02,390 --> 00:38:04,560 >> Mae dau wahanol ffordd y gallwch wneud hyn. 718 00:38:04,560 --> 00:38:10,830 Gallwch wneudapp., Fi yn credu ei fod yn after_request. 719 00:38:10,830 --> 00:38:13,800 A'r gwahaniaeth rhwng after_request a teardown_request, 720 00:38:13,800 --> 00:38:17,590 yw y bydd after_request ond yn digwydd os yw'r cais mewn gwirionedd yn ddilys. 721 00:38:17,590 --> 00:38:20,440 Ac felly, dim ond os yw'r cais yn llwyddiannus, 722 00:38:20,440 --> 00:38:22,490 os aeth dim o'i le, ond teardown_request 723 00:38:22,490 --> 00:38:26,300 digwydd yn achos llwyddiannus cais, neu yn achos camgymeriad. 724 00:38:26,300 --> 00:38:28,252 >> Felly, fel arfer, rydych am i ddefnyddio teardown_request, 725 00:38:28,252 --> 00:38:30,460 oni bai eich bod am ei wneud rhywbeth, yn enwedig yn wahanol 726 00:38:30,460 --> 00:38:31,470 yn achos camgymeriad. 727 00:38:31,470 --> 00:38:35,122 Ond dim ond ar gyfer cau'r gronfa ddata, a yw'n llwyddo neu os bydd yn methu, 728 00:38:35,122 --> 00:38:37,080 rydym yn ei wneud ydych am ddatgysylltu o'r gronfa ddata. 729 00:38:37,080 --> 00:38:41,240 Felly, fe'i gelwir, db.close ar y gwrthrych db. 730 00:38:41,240 --> 00:38:43,740 >> Sylwch fod y teardown_request yn cymryd yn eithriad. 731 00:38:43,740 --> 00:38:46,781 Felly, gallwch wirio os oedd mewn gwirionedd gwall pan gafodd ei gau i lawr, 732 00:38:46,781 --> 00:38:49,390 ond yma, gobeithio, yno Nid yw llawer gyfan o gamgymeriadau, 733 00:38:49,390 --> 00:38:52,720 felly rydym yn unig yn fath o anwybyddu hynny. 734 00:38:52,720 --> 00:38:55,990 >> Iawn, ac nid y gweddill ei bod yn rhy ddrwg. 735 00:38:55,990 --> 00:39:02,240 Felly, pan fyddwn yn mynd i'r dudalen gartref, rydym rendro hwn Templed home.html 736 00:39:02,240 --> 00:39:03,490 a fydd yn agor i fyny. 737 00:39:03,490 --> 00:39:06,240 Mae'r tocyn yn ei swydd yn hafal i, a beth mae hyn 738 00:39:06,240 --> 00:39:10,260 yn cael ei, cofiwch gennym y swydd hon model, felly rydym yn dewis yr holl swyddi, 739 00:39:10,260 --> 00:39:13,890 ac yna beth arall y gallwch ei wneud, gallwch nodi y cymal LLE, 740 00:39:13,890 --> 00:39:16,910 gallwch bennu archebwch erbyn, ac felly rydym yn cymryd 741 00:39:16,910 --> 00:39:18,820 pob un o'r swyddi sy'n cael eu dewis, ac yna 742 00:39:18,820 --> 00:39:22,590 rydym yn eu harchebu gan y post.date.descending. 743 00:39:22,590 --> 00:39:25,030 A fydd yn pennu, pan fydd maent mewn gwirionedd yn dod allan, 744 00:39:25,030 --> 00:39:29,250 yr un mwyaf diweddar yn un cyntaf. 745 00:39:29,250 --> 00:39:31,420 >> Ac yna, rydym yn pasio i mewn i hynny y templed home.html, 746 00:39:31,420 --> 00:39:34,240 felly gadewch i ni mewn gwirionedd yn agor i fyny hynny Templed 'n sylweddol yn gyflym, 747 00:39:34,240 --> 00:39:36,760 ac edrych ar sut y mae hynny'n gweithio. 748 00:39:36,760 --> 00:39:42,130 Ac nid yw hyn yn HTML wych, ond gobeithio, gallwn ganolbwyntio ar y Python. 749 00:39:42,130 --> 00:39:46,960 >> Felly mae dolen i'r Add New Post, ac felly mae hyn yn pennu'r llwybr 750 00:39:46,960 --> 00:39:51,580 o fewn y Fflasg yr ydym ddiffinio, sydd yn iawn yma. 751 00:39:51,580 --> 00:39:56,310 Dyma'r llwybr swydd newydd, ac rydym yn nodi bod hyd yma. 752 00:39:56,310 --> 00:40:00,450 Ac fel bod yn gyswllt fydd wedyn yn mynd at y llwybr hwnnw o fewn y gweinydd Fflasg. 753 00:40:00,450 --> 00:40:03,820 >> Y peth mwyaf diddorol yw hon ar gyfer dolen yma. 754 00:40:03,820 --> 00:40:07,685 Felly, rydym yn nodi bod hyn yn ôl-paramedr sy'n 755 00:40:07,685 --> 00:40:09,560 Pasiwyd i mewn i'r swyddogaeth render_template, 756 00:40:09,560 --> 00:40:13,550 ar gyfer pob swydd yn y swydd gwrthrych sy'n cael ei drosglwyddo i mewn. 757 00:40:13,550 --> 00:40:16,600 Rydym eisiau argraffu teitl y swydd, yn H1, 758 00:40:16,600 --> 00:40:21,930 ac yna isod, rydym eisiau argraffu testun post o fewn paragraff. 759 00:40:21,930 --> 00:40:25,710 >> Ac yma, y ​​gallwn mewn gwirionedd yn galw swyddogaeth Python, 760 00:40:25,710 --> 00:40:35,130 er mwyn i ni alw strftime, ST-RF-amser, a gallwch basio yn y fformat llinyn 761 00:40:35,130 --> 00:40:37,064 eich bod am argraffu'r data yn. 762 00:40:37,064 --> 00:40:39,980 Felly, mae'n eithaf 'n glws y gallwch mewn gwirionedd yn galw swyddogaeth Python hwn 763 00:40:39,980 --> 00:40:41,090 o'r tu mewn yma. 764 00:40:41,090 --> 00:40:44,370 Nid oes rhaid i chi wneud y fformatio ar yr ochr rheolwr, oherwydd mewn gwirionedd, 765 00:40:44,370 --> 00:40:47,770 fformatio y dyddiad yn rhywbeth y ydych am i ddelio fewn y View. 766 00:40:47,770 --> 00:40:51,480 >> A phob un o'r rhain cant Nid yw pethau yn super bwysig. 767 00:40:51,480 --> 00:40:55,270 Os ydych yn edrych ar y dogfennau ar gyfer y swyddogaeth strftime yn Python, 768 00:40:55,270 --> 00:40:57,040 mae'n pennu'r rhain i gyd pethau, ond bod yn 769 00:40:57,040 --> 00:40:59,190 sut, pryd oeddem yn chwilio ar dudalen gartref yma, 770 00:40:59,190 --> 00:41:04,440 mae'n fformatau hyn gyda 'n glws hyd yn hyn, ac mae'n pennu AM neu PM, 771 00:41:04,440 --> 00:41:09,410 ond fel arfer, os ydym Nid oedd gan hyn yma, 772 00:41:09,410 --> 00:41:14,024 mae'n debyg y byddwch yn cael rhywfaint o garbage dyddiad nad oedd yn edrych yn dda iawn. 773 00:41:14,024 --> 00:41:15,940 Ac yna rydym yn pennu'r post.text, ac y gallwn 774 00:41:15,940 --> 00:41:19,460 wedi rhoi un neu ddau o llinell yn torri yma, dim ond 775 00:41:19,460 --> 00:41:21,820 i roi rhai bylchau rhwng pob swydd. 776 00:41:21,820 --> 00:41:26,270 >> Felly, yr wyf yn meddwl y pwysicaf beth yn yr enghraifft hon, 777 00:41:26,270 --> 00:41:28,697 yw y gallwch ddefnyddio hwn ar gyfer dolen. 778 00:41:28,697 --> 00:41:30,780 Ac mae hyn yn cyfateb i pethau y gallwch eu gwneud yn PHP. 779 00:41:30,780 --> 00:41:32,905 Gallwch ailadrodd drwy, popeth yn cael ei basio yn, 780 00:41:32,905 --> 00:41:36,719 ac felly, yn hytrach na gorfod ei wneud gopi / past, copi / past holl HTML, 781 00:41:36,719 --> 00:41:40,010 os oes gen ti i ysgrifennu unwaith, ac yna gallwch ailadrodd dros yr holl o'r swyddi. 782 00:41:40,010 --> 00:41:41,510 >> Ac mae hyn yn rhywbeth gyffredin eich bod am 783 00:41:41,510 --> 00:41:44,510 i'w wneud, pan fydd gennych lawer o ddata, yw bod am bopeth yn eich data, 784 00:41:44,510 --> 00:41:48,370 rydych am ei wneud yn beth tebyg. 785 00:41:48,370 --> 00:41:51,690 Ac yna, dim ond cofiwch, pan fyddwch yn eisiau argraffu rhywbeth yn benodol 786 00:41:51,690 --> 00:41:54,780 yn y HTML, byddwch yn defnyddio y braces dwbl yma, 787 00:41:54,780 --> 00:41:57,820 ond wedyn pan fyddwch eisiau nodi ychydig o wybodaeth am gyflwr, 788 00:41:57,820 --> 00:42:02,430 neu am i ddolen, yr ydych defnyddiwch y braced y cant. 789 00:42:02,430 --> 00:42:08,730 >> Felly, mynd yn ôl i'r Python cod, fel bod yn esbonio 790 00:42:08,730 --> 00:42:12,242 beth sy'n digwydd yn y prif llwybr, pan fyddwn yn mynd yno, 791 00:42:12,242 --> 00:42:14,450 'i jyst yn dangos yr holl swyddi, ond wedyn y cwestiwn 792 00:42:14,450 --> 00:42:17,440 yw, sut yr ydym mewn gwirionedd yn cael swyddi i mewn i'r gronfa ddata, a oedd yn 793 00:42:17,440 --> 00:42:18,970 yn ychydig yn fwy diddorol. 794 00:42:18,970 --> 00:42:23,960 >> Felly, pan fyddwch yn clicio ar y Newydd Post cyswllt, a welodd yr ydym yma, 795 00:42:23,960 --> 00:42:26,000 mae'n eich ail-gyfeiriadau i'r ffurflen hon. 796 00:42:26,000 --> 00:42:29,580 A dim ond galwad syml i'r swyddogaeth render_template, sydd wedyn 797 00:42:29,580 --> 00:42:32,110 pasio yn y swydd newydd ar ffurf HTML. 798 00:42:32,110 --> 00:42:36,212 Felly, gadewch i ni edrych ar hynny. 799 00:42:36,212 --> 00:42:37,420 Felly, mae hyn yn un yn eithaf syml. 800 00:42:37,420 --> 00:42:45,110 Mae ganddo ffurflen HTML syml, a oedd yn bydd yn edrych ychydig bach cyfarwydd, 801 00:42:45,110 --> 00:42:47,380 yn seiliedig ar y ffurflenni yn CS50 Cyllid. 802 00:42:47,380 --> 00:42:49,940 Ac felly, rydym yn nodi yma, y ​​camau gweithredu. 803 00:42:49,940 --> 00:42:52,435 Ac yma, os ydych yn gweithio gyda PHP, fel arfer, mae'n 804 00:42:52,435 --> 00:42:55,930 fyddai rhywbeth fel, create.PHP, ond yma 805 00:42:55,930 --> 00:42:59,960 rydym mewn gwirionedd yn pennu llwybr o fewn y gweinydd Fflasg. 806 00:42:59,960 --> 00:43:02,520 Ac felly, yn cyfateb llwybr hwn at y llwybr creu 807 00:43:02,520 --> 00:43:05,680 bod gennym yma, a oedd yn byddwn yn mynd i mewn i mewn eiliad. 808 00:43:05,680 --> 00:43:07,630 >> Ac felly, rydym yn nodi y mae'n ddull post, 809 00:43:07,630 --> 00:43:09,820 oherwydd ein bod am anfon ffurflen data hwn, ac fel arfer 810 00:43:09,820 --> 00:43:12,945 pan fyddwch yn anfon data o ffurflen, efallai y byddwch am ddefnyddio swydd cais, 811 00:43:12,945 --> 00:43:15,760 yn union fel nad ydych yn darfod i fyny gyda hyn fawr, URL anhylaw. 812 00:43:15,760 --> 00:43:18,970 Ond gallech hefyd ddefnyddio cais GET, ac yn ei throsglwyddo gyda llwybrau amrywiol, 813 00:43:18,970 --> 00:43:21,170 ond ar gyfer ffurflenni, mae'n braf i swydd cais yma. 814 00:43:21,170 --> 00:43:24,620 Ac felly, yna, yn union fel chi Byddai wneud gyda HTML a PHP, 815 00:43:24,620 --> 00:43:28,420 gallwch benodi mewnbynnau testun yma, a gallwch nodi enw ohonynt, 816 00:43:28,420 --> 00:43:33,490 a dyna yr enw a fydd yn cael eu pasio i mewn i'r cais gwrthrych fewn Fflasg. 817 00:43:33,490 --> 00:43:36,960 >> Ac yna rydym wedi yn Cyflwyno botwm sy'n dweud Post. 818 00:43:36,960 --> 00:43:40,760 Ac yma, Post yw enw'r y botwm, am ei fod yn swydd blog, 819 00:43:40,760 --> 00:43:42,700 ond yma, post yw'r dull cais. 820 00:43:42,700 --> 00:43:47,060 Felly, y rhai yr un gair ond nad ydynt yn gysylltiedig mewn gwirionedd. 821 00:43:47,060 --> 00:43:48,460 Yeah 822 00:43:48,460 --> 00:43:54,800 >> Gan fynd yn ôl at y cod Python, pan fyddwn yn galw'r creu dull, 823 00:43:54,800 --> 00:43:57,702 sylwi yma y gallwch mewn gwirionedd yn nodi o fewn y llwybr 824 00:43:57,702 --> 00:44:00,650 dulliau cais eich bod am dderbyn, 825 00:44:00,650 --> 00:44:04,770 ac felly dyma, yr wyf yn nodi fy mod Dim ond eisiau derbyn dull Post. 826 00:44:04,770 --> 00:44:09,800 Felly, os wyf mewn gwirionedd yn ceisio ymweld â'r dudalen yn uniongyrchol, sy'n cael ei ddefnyddio cais GET, 827 00:44:09,800 --> 00:44:11,700 bydd yn dweud wrthyf "Dull Ni chaniateir." 828 00:44:11,700 --> 00:44:15,840 >> Ac felly, mae gennych tudalennau, math o fel y dudalen hon yn creu, ac rwy'n yn unig 829 00:44:15,840 --> 00:44:20,192 'n sylweddol gan ddefnyddio fel ffordd i y ffurflen i gael ei gyflwyno, 830 00:44:20,192 --> 00:44:22,900 gallwch nodi nad ydych yn ei wneud am i bobl allu mynd yno 831 00:44:22,900 --> 00:44:25,650 uniongyrchol drwy gais GET, neu os nad oeddech am, 832 00:44:25,650 --> 00:44:28,580 am ryw reswm, cais Post, fe allech chi jyst yn nodi GET yma, 833 00:44:28,580 --> 00:44:32,720 ond yn yr enghraifft hon, rydym yn unig am i'r cais Post i fynd allan. 834 00:44:32,720 --> 00:44:38,700 >> Felly, pan fydd yn cael ei alw'n create_post, pan byddwn yn ymweld hynny drwy gyfrwng y cais Post, 835 00:44:38,700 --> 00:44:43,600 pryd bynnag y byddwch yn mynd i'r manylyn llwybr, mae cais hwn gwrthrych, 836 00:44:43,600 --> 00:44:46,640 ac roedd rhaid i ni fewnforio ceisiadau ar y brig, 837 00:44:46,640 --> 00:44:49,640 ond mae cais hwn gwrthrych sy'n cael ei drosglwyddo i mewn, 838 00:44:49,640 --> 00:44:53,210 a gallwch gael mynediad at y data ffurflen, a fydd yn awtomatig yn cael eu llenwi 839 00:44:53,210 --> 00:44:55,070 pan fyddwch yn anfon cais gan ffurflen. 840 00:44:55,070 --> 00:44:56,990 >> Ac yna, yr hyn yr wyf yn meddwl yn wirioneddol cŵl, yn cael ei 841 00:44:56,990 --> 00:45:02,840 bod y ffurflen gwrthrych i gael ei basio yn, yn unig yw eiriadur Python sy'n 842 00:45:02,840 --> 00:45:10,560 yn cynnwys, os ydych access-- felly dyma, gadewch mi dynnu i fyny y HTML nesaf ato, dim ond 843 00:45:10,560 --> 00:45:17,670 fel y gallwch gael y fel cyfeiriad, ie, felly 844 00:45:17,670 --> 00:45:21,060 enwau a nodwn yma ar gyfer y gwahanol feysydd, felly 845 00:45:21,060 --> 00:45:23,900 teitl a'r testun, rydym yn Yna, dim ond yn defnyddio rhai dros yma 846 00:45:23,900 --> 00:45:27,110 fel mynegeion i mewn i'r data ffurflen. 847 00:45:27,110 --> 00:45:28,950 Felly dyna super gyfleus. 848 00:45:28,950 --> 00:45:33,320 >> Felly, yna rydym yn galw post.create, a oedd yn Bydd yn creu ac yn mewnosod awtomatig 849 00:45:33,320 --> 00:45:36,850 swydd hon gwrthrych newydd i mewn i'r gronfa ddata. 850 00:45:36,850 --> 00:45:40,690 Ac yr wyf yn credu bod hyn yn creu swyddogaeth dyma enghraifft 'n sylweddol oera o sut 851 00:45:40,690 --> 00:45:44,900 Fflasg pwerus yn ac yn gweithio gyda hyn, oherwydd os ydych yn gwneud rhywbeth 852 00:45:44,900 --> 00:45:48,660 yn PHP, efallai y bydd rhaid i chi yn gwneud llawer o dilysu, 853 00:45:48,660 --> 00:45:51,730 byddai'n rhaid i yna rydych sefydlu cysylltiad cronfa ddata, 854 00:45:51,730 --> 00:45:55,210 byddai'n rhaid i yna rydych cyflawni'r SQL query, 855 00:45:55,210 --> 00:45:59,550 ond yma rydym yn unig rhaid i hyn 'n glws post.create, a allwn yna dim ond 856 00:45:59,550 --> 00:46:01,520 cael y wybodaeth allan y cais gwrthrych, 857 00:46:01,520 --> 00:46:05,370 ac yna ei drosglwyddo i mewn i newydd bostio ein bod yn creu. 858 00:46:05,370 --> 00:46:07,850 >> Ac yna, mae'r olaf un beth yr ydym am ei wneud, 859 00:46:07,850 --> 00:46:09,630 yw ailgyfeirio'r defnyddwyr yn ôl i'r cartref. 860 00:46:09,630 --> 00:46:13,020 Ac felly rydym yn defnyddio hwn Fflasg ailgyfeirio swyddogaeth. 861 00:46:13,020 --> 00:46:17,770 A rhywbeth nad ydym wedi gweld o'r blaen, roedd swyddogaeth URL hwn. 862 00:46:17,770 --> 00:46:21,970 Felly yr URL ar gyfer y swyddogaeth yn gadael byddwch yn mynd heibio yn mewn gwirionedd yr enw 863 00:46:21,970 --> 00:46:26,090 swyddogaeth yn eich cod Python, yn hytrach na'r llwybr penodol 864 00:46:26,090 --> 00:46:26,720 ei fod yn. 865 00:46:26,720 --> 00:46:32,107 >> Er mwyn imi gael yr un mor hawdd hailgyfeirio defnyddiwr i dorri, 866 00:46:32,107 --> 00:46:37,050 a fyddai'n hanfon yn ôl adref, ond gan ddefnyddio'r URL ar gyfer swyddogaeth yn braf, 867 00:46:37,050 --> 00:46:39,990 oherwydd os byddwch yn newid y Lleoliad ble mae pethau, 868 00:46:39,990 --> 00:46:44,080 felly gadewch i ni ddweud fy mod yn newid y cartref i fod ar / cartref yn lle hynny, 869 00:46:44,080 --> 00:46:47,040 byddai hyn yn dal i fod wedyn yn dychwelyd / cartref, oherwydd mewn gwirionedd yn mynd ac yn edrych i fyny 870 00:46:47,040 --> 00:46:50,770 enw'r swyddogaeth, ac mae'n bydd yn rhoi i chi yn ôl yr URL ar gyfer hynny. 871 00:46:50,770 --> 00:46:52,490 >> Felly, rhyw fath o ar y rhagdybiaeth eich bod yn 872 00:46:52,490 --> 00:46:55,489 yn fwy tebygol o newid lle mae pethau yn, na enwau'r swyddogaethau. 873 00:46:55,489 --> 00:46:58,840 Gallwch ddefnyddio hyn mewn gwirionedd URL neis ar gyfer swyddogaeth. 874 00:46:58,840 --> 00:47:02,470 Ac un peth i fod yn ymwybodol o hynny ychydig yn anodd, 875 00:47:02,470 --> 00:47:05,750 yw eich bod yn meddwl eich gallai unig ffoniwch ailgyfeirio ar y URL ar gyfer, 876 00:47:05,750 --> 00:47:10,600 ond mewn gwirionedd pob un o'r llwybrau yn cael i ddychwelyd rhyw fath o destun a HTML, 877 00:47:10,600 --> 00:47:14,360 felly mewn gwirionedd yn rhaid i chi dychwelyd yr ailgyfeirio galwadau. 878 00:47:14,360 --> 00:47:18,379 Fel arall, byddwch yn cael rhywbeth annilys am beidio â dychwelyd llinyn, 879 00:47:18,379 --> 00:47:21,420 gan fod pob un o'r rhain yn rhaid i ddychwelyd y HTML rydych mewn gwirionedd yn awyddus i rendro. 880 00:47:21,420 --> 00:47:26,980 >> Ac felly, pan fyddwch yn ffonio y ailgyfeirio, mae'n eich ail-gyfeiriadau at y dudalen, 881 00:47:26,980 --> 00:47:30,270 ond mewn gwirionedd mae'n dychwelyd y HTML mae angen i chi weithredu hynny ailgyfeirio. 882 00:47:30,270 --> 00:47:34,430 883 00:47:34,430 --> 00:47:37,110 Ewch yn ôl i'r dudalen gartref. 884 00:47:37,110 --> 00:47:39,200 Felly mae gennym y ddwy farn wahanol. 885 00:47:39,200 --> 00:47:40,132 Mae gennym y farn cartref. 886 00:47:40,132 --> 00:47:41,590 Neu, mae'n debyg y dylwn i ddweud templedi. 887 00:47:41,590 --> 00:47:44,190 Mae gennym y ddau templedi, templed cartref sy'n 888 00:47:44,190 --> 00:47:48,500 yn dangos pob un o'n swyddi, a Yna, mae gennym y peth ad, 889 00:47:48,500 --> 00:47:52,970 a phan fyddwch yn clicio ar y post, mae'n mynd i lwybr newydd o fewn y Fflasg, 890 00:47:52,970 --> 00:47:55,920 ond nid yw hynny o reidrwydd yn gwneud llwybr cael templed cyfatebol. 891 00:47:55,920 --> 00:47:59,290 892 00:47:59,290 --> 00:48:01,560 Nid oes rhaid i chi weld unrhyw beth, ond gallwch dal i 893 00:48:01,560 --> 00:48:04,090 cael y gwaith hwn yn mynd ymlaen tu ôl i'r llenni. 894 00:48:04,090 --> 00:48:07,450 Ac yna byddwch yn cael eich ailgyfeirio yn ôl i'r dudalen gartref. 895 00:48:07,450 --> 00:48:12,230 Ac yn sicr, mae'n hawdd i weithio mewn rhai CSS brafiach i mewn i'r templed 896 00:48:12,230 --> 00:48:15,580 ac yn gwneud hyn yn edrych yn llawer brafiach, ond mae pob un o'r prif resymeg 897 00:48:15,580 --> 00:48:18,590 sydd yna yn y Python. 898 00:48:18,590 --> 00:48:20,020 >> Unrhyw gwestiynau am yr enghraifft honno? 899 00:48:20,020 --> 00:48:22,760 Rwy'n gwybod bod llawer o pethau gwahanol yn digwydd yno, 900 00:48:22,760 --> 00:48:25,341 llawer o bethau nad ydym wedi gweld o'r blaen, ond fel unrhyw beth. 901 00:48:25,341 --> 00:48:25,840 Yeah. 902 00:48:25,840 --> 00:48:28,346 >> GYNULLEIDFA 1: Oes rhaid i chi wneud unrhyw beth arbennig i prysgwydd data sy'n 903 00:48:28,346 --> 00:48:29,600 yn dod i mewn oddi wrth y ffurflen? 904 00:48:29,600 --> 00:48:31,109 Sylwais ydych newydd ei ddweud "creu," 905 00:48:31,109 --> 00:48:33,900 EZRA ZIGMOND: Yeah, felly dyna mewn gwirionedd, mae hynny'n bwynt da iawn. 906 00:48:33,900 --> 00:48:36,350 Felly, y cwestiwn oedd, a ydych Mae angen i wirio a gwneud yn siŵr 907 00:48:36,350 --> 00:48:39,190 bod y data yn ddilys, ac yn gwneud unrhyw fath o sgwrio 908 00:48:39,190 --> 00:48:41,840 i wneud yn siŵr ei fod yn ddilys, oherwydd fel y gwelwch yma, 909 00:48:41,840 --> 00:48:42,660 Dydw i ddim yn gwneud hynny. 910 00:48:42,660 --> 00:48:48,140 Felly, gadewch i ni weld beth sy'n digwydd os byddaf yn postio rhywbeth wag. 911 00:48:48,140 --> 00:48:51,190 Felly, bydd yn mewn gwirionedd yn unig yn gwneud swydd wag a llenwi'r datetime. 912 00:48:51,190 --> 00:48:55,990 >> Felly, mewn gwirionedd, mae'n debyg y byddech eisiau gwneud rhywbeth fel, 913 00:48:55,990 --> 00:49:04,749 efallai nodwch os teitl yn hafal i llinyn gwag, yna peidiwch gwneud hyn. 914 00:49:04,749 --> 00:49:07,290 Neu, dim ond ei wneud os bydd y teitl yn yn hafal i llinyn gwag. 915 00:49:07,290 --> 00:49:10,330 Felly nid yw'n mewn gwirionedd yn awtomatig yn gofalu am y sgrwbio 916 00:49:10,330 --> 00:49:12,820 i chi, felly mae angen i chi wneud hynny. 917 00:49:12,820 --> 00:49:14,330 Yeah, cwestiwn da. 918 00:49:14,330 --> 00:49:18,497 >> GYNULLEIDFA 2: A yw'n prysgwydd i'w chwistrellu dilyniant? 919 00:49:18,497 --> 00:49:19,890 Wyt ti'n gwybod? 920 00:49:19,890 --> 00:49:22,830 >> EZRA ZIGMOND: Gobeithio, peewee yn gwneud hynny. 921 00:49:22,830 --> 00:49:25,830 Yr wyf yn credu y byddai'n sicr yn 'n bert llyfrgell ddrwg os nad oedd yn gwneud hynny. 922 00:49:25,830 --> 00:49:29,511 923 00:49:29,511 --> 00:49:32,690 Nid wyf yn gwybod yn union. 924 00:49:32,690 --> 00:49:34,820 Byddai'n rhaid i mi edrych ar y holi ei fod yn ei gynhyrchu. 925 00:49:34,820 --> 00:49:38,980 Credaf, os wyf yn teipio mewn blog post y math yna o edrych 926 00:49:38,980 --> 00:49:46,370 fel ymosodiad pigiad SQL, rhywbeth fel hyn, os yw hyn 927 00:49:46,370 --> 00:49:49,370 yn debyg i faes cyfrinair neu rywbeth, efallai y byddwch yn gwneud rhywbeth fel hyn. 928 00:49:49,370 --> 00:49:53,410 >> Rwy'n credu y bydd hynny'n dal cael eu postio yn llythrennol, 929 00:49:53,410 --> 00:49:59,200 ond credaf fod peewee yw'n gwneud rhyw fath o sgwrio y data 930 00:49:59,200 --> 00:50:01,680 cyn iddo mewn gwirionedd executes hynny. 931 00:50:01,680 --> 00:50:04,510 >> GYNULLEIDFA 1: Bod cae testun yn cynllunio i gymryd testun plaen, dde? 932 00:50:04,510 --> 00:50:05,710 >> EZRA ZIGMOND: Yeah, y mae. 933 00:50:05,710 --> 00:50:06,465 Yeah. 934 00:50:06,465 --> 00:50:09,590 Felly, credaf fod pob un o'r, felly mae hwn yn ymddygiad cywir, a fydd yn gwneud hynny, 935 00:50:09,590 --> 00:50:12,170 ond credaf fod peewee gobeithio, yn gwneud 936 00:50:12,170 --> 00:50:13,780 rhyw fath o amddiffyniad ar eu pen. 937 00:50:13,780 --> 00:50:16,090 Ac os ydych yn dymuno gwirio ddwywaith hynny, 938 00:50:16,090 --> 00:50:19,530 yn ffyrdd pan fyddwch yn cynhyrchu ymholiad. 939 00:50:19,530 --> 00:50:22,622 fel nad oes rhaid i chi chyflawni yn uniongyrchol. 940 00:50:22,622 --> 00:50:24,330 Byddai'n rhaid i mi gymryd edrych ar ddogfennau, 941 00:50:24,330 --> 00:50:27,930 ond alli 'n weithredol weld y SQL ei fod yn cynhyrchu, 942 00:50:27,930 --> 00:50:30,840 ac yn edrych ar hynny, ac yn gwneud yn siŵr ei fod yn dianc pethau. 943 00:50:30,840 --> 00:50:33,700 >> Rheswm arall pam y gallech chi am edrych ar y SQL 944 00:50:33,700 --> 00:50:37,920 bod peewee yn outputting, yw os pethau yn ymddangos i fod yn mynd yn wirioneddol yn araf, 945 00:50:37,920 --> 00:50:41,090 gallwch fwrw golwg a gweld beth 'i' wneud mewn gwirionedd, am ei fod weithiau 946 00:50:41,090 --> 00:50:44,670 hawdd i ychwanegu ddamweiniol i mewn, y ffordd rydych yn ei ysgrifennu, 947 00:50:44,670 --> 00:50:47,880 gallwch ddamweiniol gael ei dewiswch y gronfa ddata gyfan yn gyntaf, 948 00:50:47,880 --> 00:50:50,230 ac yna gwneud rhywfaint o weithrediad fath ar hynny, pan ydych yn wir 949 00:50:50,230 --> 00:50:51,320 i fod i ddewis is-set. 950 00:50:51,320 --> 00:50:53,560 >> Ac felly, os nad yw pethau'n hollol mynd yn iawn, 951 00:50:53,560 --> 00:50:57,300 mae'n dda i gymryd golwg ar gais sydd mewn gwirionedd wedi cael ei gynhyrchu. 952 00:50:57,300 --> 00:50:57,800 Yeah. 953 00:50:57,800 --> 00:51:02,100 >> GYNULLEIDFA 2: Pan fyddwch yn dechrau y tro cyntaf, eich rhoi yn y porthladd fel 5000. 954 00:51:02,100 --> 00:51:02,904 >> EZRA ZIGMOND: Yeah. 955 00:51:02,904 --> 00:51:06,070 GYNULLEIDFA 2: A yw'r ball gyda peewee, ynteu a yw'n rhywbeth y gallwch ei newid? 956 00:51:06,070 --> 00:51:10,870 EZRA ZIGMOND: Ie, felly mae'r porthladd yn ddiofyn gyda Fflasg. 957 00:51:10,870 --> 00:51:13,061 Os ydych yn rhedeg heb gan nodi unrhyw beth, 958 00:51:13,061 --> 00:51:14,310 bydd yn gwneud hynny yn awtomatig. 959 00:51:14,310 --> 00:51:16,060 Credaf, byddwn i'n cael i ddyblu wirio hyn, 960 00:51:16,060 --> 00:51:19,130 ond gallwch nodi hynny yn y app.run, Yr wyf yn meddwl y gallwch chi wneud rhywbeth fel, 961 00:51:19,130 --> 00:51:19,629 porthladd = 8080. 962 00:51:19,629 --> 00:51:22,375 963 00:51:22,375 --> 00:51:23,750 Gadewch i ni roi y cynnig arni go gyflym. 964 00:51:23,750 --> 00:51:29,100 965 00:51:29,100 --> 00:51:32,230 Yeah, fel y gallwch jyst nodi port = 8080, a bydd yn rhedeg yno, 966 00:51:32,230 --> 00:51:36,130 yn fy marn i, os ydych eisiau rhedeg ei ar y DRhA, nid wyf wedi ceisio hyn allan, 967 00:51:36,130 --> 00:51:38,527 ond yr wyf yn credu, os ydych rhedeg ar borthladd 8080, 968 00:51:38,527 --> 00:51:40,360 byddech yn ôl pob tebyg yn gallu i gael mynediad at y gweinydd, 969 00:51:40,360 --> 00:51:41,870 yn union fel roeddech ar gyfer y wefan. 970 00:51:41,870 --> 00:51:44,390 >> Yeah, ond mae'n hawdd i newid hynny os ydych yn 971 00:51:44,390 --> 00:51:48,540 gael unrhyw fath o fel porthladd-anfon ymlaen pethau y mae angen i chi ei wneud. 972 00:51:48,540 --> 00:51:50,410 >> Unrhyw gwestiynau eraill? 973 00:51:50,410 --> 00:51:50,916 Yeah? 974 00:51:50,916 --> 00:51:53,416 GYNULLEIDFA 1: Felly, gwelais yn eich modelau sydd, fel y soniasoch, 975 00:51:53,416 --> 00:51:55,647 mae'n rhaid i chi bennu'r gronfa ddata ar gyfer pob gwrthrych. 976 00:51:55,647 --> 00:51:58,105 Ydych chi'n digwydd gwybod, yn gwneud sy'n ei gwneud yn hawdd iawn os ydych yn 977 00:51:58,105 --> 00:52:03,210 cael llawer o gronfeydd data SQLite eich bod am ei ddefnyddio ar gyfer un app sengl ar y we, 978 00:52:03,210 --> 00:52:07,210 eich bod yn gallu jyst nodi criw gwahanol rai o yn eich model? 979 00:52:07,210 --> 00:52:11,620 >> EZRA ZIGMOND: Yeah, gadewch i mi yn agor bod hyd go gyflym. 980 00:52:11,620 --> 00:52:17,570 Felly, rydych yn ei ddweud, os ydych am gael criw o wahanol rhywbeth, efallai 981 00:52:17,570 --> 00:52:22,670 ei hoffi a'r myfyrwyr, ar gyfer rhai reswm, rhywbeth fel 'na? 982 00:52:22,670 --> 00:52:26,870 Yeah, felly yr wyf yn meddwl bod byddwch yn dal, pob model 983 00:52:26,870 --> 00:52:30,652 Byddai'n rhaid i dal i gael dim ond un gronfa ddata a briodolir iddo, 984 00:52:30,652 --> 00:52:32,610 ond os ydych eisiau cael gwahanol fodelau sy'n 985 00:52:32,610 --> 00:52:35,818 wedi gwahanol wrthrychau gronfa ddata a bennwyd iddo, gallech bendant yn gwneud hynny. 986 00:52:35,818 --> 00:52:43,070 Felly, os wyf yn creu newydd, rhywbeth fel hyn, 987 00:52:43,070 --> 00:52:47,000 ac yn awr mae hyn yn fyfyriwr sy'n yn edrych yn rhyfedd fel swydd blog, 988 00:52:47,000 --> 00:52:49,390 Gallwn i bennu bod y cronfa ddata yn hafal i db_2 yma. 989 00:52:49,390 --> 00:52:51,390 Felly, yr wyf yn credu mai dyna'r prif ffordd y gallwch chi wneud hynny. 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 Unrhyw gwestiynau eraill? 993 00:52:58,410 --> 00:53:02,170 >> Felly, dim ond i orffen i fyny ychydig bit, dyma rai adnoddau, 994 00:53:02,170 --> 00:53:06,030 a bydd y sleidiau hyn yn cael eu postio ar-lein er mwyn i chi mewn gwirionedd yn cael i cysylltiadau hyn. 995 00:53:06,030 --> 00:53:08,500 Mae'r adnoddau gorau yn wirioneddol y dogfennau ar gyfer Fflasg 996 00:53:08,500 --> 00:53:09,930 a peewee eu hunain. 997 00:53:09,930 --> 00:53:12,940 Maent yn ysgrifennu yn dda iawn, yr wyf yn meddwl. 998 00:53:12,940 --> 00:53:18,180 Felly, mae'r wefan Fflasg yma, ac mae ganddynt tiwtorial CychwynChwim sy'n 999 00:53:18,180 --> 00:53:20,710 Bydd cerdded drwy tebyg pethau at yr hyn yr wyf yn cerdded trwy, 1000 00:53:20,710 --> 00:53:23,560 ond os ydych am unrhyw fath o adolygiad o'r pethau yr wyf yn mynd drosodd, 1001 00:53:23,560 --> 00:53:26,200 neu os ydych yn meddwl bod yr eglurais rhywbeth mewn ffordd ddryslyd, 1002 00:53:26,200 --> 00:53:28,390 bydd ganddynt enghreifftiau tebyg yno. 1003 00:53:28,390 --> 00:53:31,570 >> Peewee Mae dogfennaeth, a mae ganddynt tiwtorial CychwynChwim 1004 00:53:31,570 --> 00:53:34,650 sy'n mynd dros y prif baramedrau y byddech am ei ddefnyddio. 1005 00:53:34,650 --> 00:53:38,900 Felly, y pethau yr wyf yn siarad am â y diffygion unigryw, ac yn nodi, 1006 00:53:38,900 --> 00:53:42,710 y gwahanol fathau o feysydd sy'n gallwch ddefnyddio, byddai'r rheiny i gyd yno. 1007 00:53:42,710 --> 00:53:44,690 >> Hefyd, os oes gennych cwestiynau am peewee, 1008 00:53:44,690 --> 00:53:47,530 ac rydych yn eu postio ar stackoverflow, y dyn a wnaeth peewee mewn gwirionedd 1009 00:53:47,530 --> 00:53:49,500 mynd ymlaen ac yn ateb rhai weithiau. 1010 00:53:49,500 --> 00:53:53,200 Os oes gennych gwestiwn, gobeithio, bydd yn gallu ei ateb, 1011 00:53:53,200 --> 00:53:54,867 oherwydd ei fod yn ysgrifennodd yr holl beth. 1012 00:53:54,867 --> 00:53:56,700 Rwy'n credu bod hynny'n popeth Roeddwn i eisiau i dalu. 1013 00:53:56,700 --> 00:53:58,930 Diolch am ddod allan. 1014 00:53:58,930 --> 00:54:02,688