[CHWARAE CERDDORIAETH] EZRA ZIGMOND: Hi, bawb. Diolch am ddod allan heddiw. Mae'r seminar hwn yn "Python Web Apps gyda Fflasg. " Felly, dw i'n mynd i fod yn siarad ychydig am pam efallai y byddwch am ddefnyddio Fflasg i wneud apps we gyda Python, yn hytrach na i rai fframweithiau eraill i maes 'na, fel Django, sef y mwyaf adnabyddus. Mae'r is-deitl yw "a peewee, "sy'n rhywbeth rydym yn mynd i siarad am sut i ryngweithio gyda chronfeydd data SQL. Mae'n ei gwneud yn neis iawn. Felly, dyma dim ond dirywio cyflym yr hyn yr wyf eisiau mynd drosodd. Felly, yn gyntaf, dim ond un sleid sy'n mynd i fod yn CychwynChwim, a dyna sut i gael popeth osod ar eich cyfrifiadur. Rydw i'n mynd i gael ei arddangos mae hyn ar fy beiriant Mac lleol, dim ond oherwydd dyna lle dwi wedi gwneud hyn o'r blaen, dwi'n fwyaf cyfforddus ag ef, ond mae hyn yn bendant yn bosibl ar yr CD50 IDE. Felly, ar ôl hynny, yr wyf am cyflwyno beth Fflasg yw, ac argyhoeddi chi pam dylech ei ddefnyddio yn y lle cyntaf. Yna, byddaf yn rhoi cyflym enghraifft o'r hyn yr ydych yn gallu ei wneud yn Fflasg, yn enghraifft cyflym o'r hyn y gallwch ei wneud yn peewee, ac yna byddaf yn dangos mwy i chi cwblhau cais enghraifft fy mod yn rhoi at ei gilydd ein bod yn Gall cerdded drwy'r gyda'i gilydd. Ac yna yn olaf, yn y sleid olaf, yr wyf wedi rhai adnoddau eich bod yn edrych ar-lein am fwy o wybodaeth. Nid yw hon yn gyflawn tiwtorial o sut i ddefnyddio Fflasg. A byddaf yn gobeithio i adael rhywfaint o amser ar gyfer cwestiynau. Dylai unrhyw un gwylio yn lleol, dim ond fel, gweiddi allan yn y canol os oes gennych unrhyw gwestiynau. Felly gosod pethau yn gyflym, os ydych am ddilyn ar hyd, neu os ydych am gael hyn i fyny ar eich peiriant eich hun, Rydw i'n mynd i fod yn defnyddio Python 2.7.10. Fflasg yn gweithio gyda Python 3, ond yr wyf yn hoffi gan ddefnyddio Python 2, oherwydd mae rhai pecynnau Python sy'n nid ydynt yn gweithio gyda 3 eto. Os ydych wedi gosod pip, a oedd yn yn rheolwr pecyn Python, Yr wyf yn meddwl os yw eich Python yn fwy na neu'n hafal i 2.7.9, ydych wedi ei osod yn barod, 'i' super hawdd i'w gosod pecynnau hyn. Gallwch ddim pip osod Fflasg, pip gorsedda peewee, Fel arfer, rhaid i chi redeg sudo unig felly fod y caniatadau yn gweithio allan. Ac, os ydych yn defnyddio super hen fersiwn o Python, Rwy'n argymell diweddaru eich Python, neu ddefnyddio EasyInstall i osod Pip. Felly, y cwestiwn nesaf yw, beth yw Fflasg? Ac yr wyf yn dyfalu, yn gyntaf yn gwestiwn rhesymol Tybed am amser hir yw, beth yw app we? Oherwydd dyna air yr wyf yn meddwl yn cael ei daflu o gwmpas llawer nad oeddwn yn wir yn gwybod. Ac yr wyf yn credu bod y gorau enghraifft o'r hyn app we yn, wir yn CS50 Cyllid, lle nid yw'n wir dim ond gwefan, ond mae'n rhywbeth yr ydych Gallai fath o ryngweithio â. Mae cyfrifon defnyddwyr a pob math o bethau gwahanol. Felly, ble yn union ydych yn tynnu y llinell rhwng yr hyn yn wefan, a beth yw app we, yn fath o mympwyol, ond yr wyf yn dyfalu y syniad, mae'n rhywbeth mwy na gwefan ac mae'n gais defnyddiol. Felly, Fflasg yn fframwaith ar gyfer gan wneud apps we gan ddefnyddio Python. A gobeithio, erbyn diwedd o hyn, byddaf yn argyhoeddi chi y gallech mewn gwirionedd yn ysgrifennu rhywbeth fel CS50 Cyllid gan ddefnyddio Python, yr wyf yn fel llawer gwell na PHP, yn bersonol. Felly, Fflasg yw, maent yn galw microframework, ac erbyn hynny, maent yn golygu ei fod yn iawn syml, ond estynadwy. Felly, mae wedi dim ond yr hyn yr ydych ei angen, ond os ydych am mwy o nodweddion, mae'n hawdd i ddod â nhw i mewn. Ond dim ond am ei fod yn microframework, nid yw'n yn golygu mai dim ond ar gyfer prosiectau bach. Mae gen i gysylltiad yma sy'n dweud bod Obama ddefnyddiwyd Fflasg yn 2012 am ei ymgyrch gwefan, a oedd yn gobeithio, yn rhywbeth o ardystiad. Ond y peth yr wyf yn 'n sylweddol hoffi am Fflasg yw hynny, nid yw'n wir yn gwneud unrhyw fath o benderfyniadau ar eich rhan. Nid yw'r ffaith ein bod siarad am apps ar y we, Mae'n rhaid i mi gymharu â Ruby ar Rheiliau a Django, y ddau ohonynt fframweithiau mawr, ond y ddau ohonynt yn gwneud tybiaethau am y ffordd rydych am ei rhyngweithio gyda chronfeydd data, sut yr ydych am i gyflwyno'ch safbwyntiau, ac maent yn bendant yn agweddau da at hynny. Er enghraifft, Ruby acha Chledrau Mae hon system cofnodion actif, sydd yn neis iawn ffordd i ryngweithio â data, ond os ydych am ddefnyddio Ruby ar Rheiliau, rydych yn fath o clymu i mewn i hynny. Ond gyda Fflasg, fel y byddaf dangos i chi gyda peewee, gallwch ddefnyddio pa bynnag fath o gronfa ddata rydych eisiau, a gallwch dynnu hynny yn fel estyniad i Fflasg. Felly dyna pam yr wyf yn wir yn fel Fflasg, 'i' fod yn nid yw'n gwneud tybiaethau ar eich rhan yn seiliedig ar bethau nad oes angen i chi mewn gwirionedd. Felly, pam y dylech ddefnyddio Fflasg? Y manteision yw, 'i jyst Mae wir yn nodweddion craidd ei adeiladu i mewn iddo sydd ei angen arnoch. Felly, nid oes rhaid i chi boeni am deall criw cyfan o bethau nad oes gwir angen i chi. Nid oes yn rhaid i chi rhaid i chi boeni am droi oddi ar nodweddion nad oes gwir angen i chi. Ac, fel y soniais, mae'n super hawdd i ychwanegu mewn estyniadau o bethau bod angen i chi. Mae rhai ohonynt, Fflasg wedi eu cymorth eu hunain ar ei gyfer. Felly mae yna rywbeth o'r enw Fflasg admin, sy'n adlewyrchu bod admin panel fod Django darparu, sy'n rhoi ffordd weledol 'n glws i chi i weinyddu eich gwefan. Ond unwaith eto, os ydych yn gwneud rhywbeth syml, mae'n debyg nad oes angen admin mawr panel, felly yr wyf yn credu bod hynny'n super 'n glws. Ac mae'r anfanteision yw, bod oes gennych lai bŵer allan o'r bocs. Felly, pan fyddwch yn agor y tro cyntaf i fyny Fflasg, ac yn eich rhaglen Python, 'ch jyst deipio o Fflasg mewnforio *, neu beth bynnag, nad ydych yn union yn cael yr holl nodweddion efallai y byddwch eisiau. Ac felly mae'n rhaid i chi yn fwy penodol rhestru'r nodweddion rydych am. Felly dyna un anfantais, ond yr wyf yn yn credu bod ar gyfer adeiladu gwe bach apps fel mod i'n mynd i fod yn dangos chi, nid yw hynny'n wir yn broblem. A beth y peth olaf yn i fod i ddweud, sydd yn typo, yw bod llai safonedig confensiynau ar gyfer sut i ddefnyddio Fflasg, dim ond oherwydd nad oes cymaint o pobl sy'n ei ddefnyddio yn broffesiynol o'i gymharu â Django. Felly, os ydych yn edrych rhywbeth fel, "Sut ydw i'n gwneud x" yn Django, mae'n debyg y byddwch yn ei chael yn. Mae dylunio da batrymau gallwch eu defnyddio, ond gyda Fflasg, 'i' fath o yn mynd eich ffordd eich hun, dim ond oherwydd ei fod yn llyfrgell n bert bach. Felly, y rhai yw'r anfanteision, ond yr wyf yn meddwl ei fod yn dal i fod yn llyfrgell da i'w defnyddio. Felly gadewch i ni jyst neidio i'r dde i mewn Fflasg. Mae hyn yn bendant ddim yn mynd i fod yn tiwtorial cyflawn, ond mae'n rhoi syniad i chi o sut i strwythuro pethau, ac felly rydych yn teimlo'n gyfforddus yn mynd i ffwrdd ac yn edrych ar y dogfennau ac yn gwybod mwy. Felly, gadewch i mi agor mewn gwirionedd Enghraifft syml ar y dechrau, a dangos i chi beth sy'n edrych fel, ac yna rydym chi helpu dorri i lawr ychydig yn fwy. Felly, mae hyn yma, gadewch i mi ei gael rhedeg. Felly, yr wyf yn awr yn cael fy nghais rhedeg. Rydw i'n mynd i agor Safari, ac ei fod yn rhedeg ar fy gwesteiwr lleol. Felly, Im 'jyst yn mynd i wneud hyn yn fwy. Ond localhost: 5000 Ac felly, ar hyn o bryd, mae hyn i gyd yn ei wneud yw, pan fyddwch yn ymweld â'r wefan, mae'n printiau allan "Helo Fflasg," nad yw'n super ddefnyddiol, ond yr wyf yn meddwl ei fod yn cŵl bod yn y ffeil bach hyn yma, mae gennym rhedeg gweinydd gwe sy'n cael ei argraffu rhywbeth. Felly, gadewch i ni mewn gwirionedd yn edrych yn y cod ar gyfer ail, ac yn torri i lawr ychydig. A yw'r faint da i bawb yma? Felly, gobeithio, rydych yn braidd cyfforddus yn defnyddio Python. Rydw i'n tybio y gallwn edrych ar yr Python a darllen drwyddo. Os oes gennych unrhyw gwestiynau am unrhyw beth, Gallaf hefyd fynd dros hynny. Felly, y llinell gyntaf yw, o Fflasg, rydym yn mewnforio, Fflasg gyda chyfalaf "F" sydd yn fath o holl nodweddion allweddol sydd eu hangen arnoch. Pryd bynnag y byddwch yn ysgrifennu ffeil a defnyddio Fflasg, ydych yn mynd i eisiau mewnforio hynny, dim ond oherwydd bod gan yr holl brif bethau. Y peth nesaf rydym yn ei wneud, yw ein yn galw hyn Fflasg swyddogaeth, dim ond i greu gwrthrych app, ac rydych yn bob amser yn mynd i eisiau i wneud hynny. Ac yna, neidio i lawr i'r gwaelod yn gyflym, y rhan hon yma yw, 'If_name _ == "_ main_"', sef math o confensiwn Python. Felly, bydd hyn ond yn gweithredu os byddwch yn rhedeg y ffeil hon yn uniongyrchol gan ddefnyddio Python. Yna, rydym yn galw app.run, a fydd mewn gwirionedd yn cychwyn y app yn mynd. Felly, dyna'r prif strwythur sy'n bydd gennych mewn unrhyw gais Fflasg, yw y bydd yn rhaid i chi hyn app = Fflasg (_name_), ac yna app.run. Felly, mae'r ddau beth sydd gen i mewn yma, yn yr hyn yr ydym yn galw llwybrau. Felly, gadewch i ni siarad am llwybro ychydig yn fwy. Byddaf yn mynd yn ôl at y sleid. Felly, y mwyaf sylfaenol cysyniad yn Fflasg yn llwybro. Ac mae'n syniad nad ydych neilltuo swyddogaethau mewn Python i gyfeiriadau penodol ar eich tudalen we. Felly, pryd bynnag y byddwch eisiau i greu llwybr newydd, ydych yn defnyddio hwn @ app.route addurnwr swyddogaeth. Felly, os ydych yn gyfarwydd â addurnwyr swyddogaeth yn Python, 'i' y cysyniad hwn sy'n yn gadael i chi gymryd swyddogaeth ac yn ei amgylchynu gyda rhywbeth arall. Felly mewn gwirionedd, pa addurnwr hon yn ei wneud, yw ei fod yn cymryd y swyddogaeth islaw iddo, ac mae'n ychwanegu mwy o wybodaeth iddo, ond yr hyn Fflasg mewn gwirionedd Nid yw'n gwneud i hynny ddigwydd yn super hollbwysig, ond yr hyn sy'n bwysig, yw, cyn y daith, byddwch yn rhoi hyn @ app.route, ac yna cyfeiriad y llwybr, felly mae'r slaes hyn yr ydym Gwelodd pan rydym yn unig yn agor y dudalen we. Felly dyna y dudalen hafan. Dim ond y llwybr slaes. Ac yna mae gennych swyddogaeth hon. Enw'r y swyddogaeth Gall fod yn beth bynnag y dymunwch. Nid oes rhaid iddo o reidrwydd rhaid i wneud â'r llwybr. Ac yna, beth bynnag dychwelyd y swyddogaeth, yn dylai'r swyddogaeth ddychwelyd llinyn. A bod llinyn yn gallu yn cynnwys HTML neu unrhyw beth, a dyna mewn gwirionedd yn beth fydd yn ei gael dychwelyd at eich porwr gwe fel HTML, a bydd yn gwneud hynny. Felly, mae hyn yn yr un cod a oedd gan yr enghraifft yr wyf newydd rhedeg, felly pan fyddwn yn ymweld slaes, mae'n galw swyddogaeth Hello World, a oedd yn dim ond yn dychwelyd llinyn, Helo Fflasg, ac sy'n cael ei argraffu ar y sgrin. Felly mae yna enghraifft arall, sef, pan fyddwch yn ymweld / helo, mae'n printiau allan Helo Word, a oedd yn Dylai gwirionedd yn dweud, Helo Byd, ond gadewch i esgus bod yn fwriadol. Felly gadewch i ni dynnu bod i fyny go iawn yn gyflym. Felly, os byddwch yn mynd i localhost / helo, bydd yn awr yn argraffu rhywbeth arall. Felly dyna dim ond yn enghraifft cyflym o sut gallwch greu dau lwybr gwahanol. Felly, hyd yn hyn nid yw hyn yn ddefnyddiol super, Nid oes llawer gyfan gallwch ei wneud, fe allech chi jyst yn gwneud popeth a gyda cael gwahanol tudalennau HTML, a phan fyddwch yn ymweld â penodol tudalen 'i jyst yn llwytho'r dudalen. Felly, gadewch i ni weld rhai mwy bethau defnyddiol y gallwch eu gwneud. Felly, un peth y gallai fod gennych sylwi yn yr enghraifft yr wyf yn tynnu i fyny, yw fy mod wedi app.run (debug = Gwir). Ac felly, beth mae hyn yn dadl dadfygio yn ei wneud, yn bod pan fyddwch yn rhedeg eich gweinydd gwe, pan fyddwch chi yn eich cais, os byddwch yn newid ffeil, bydd yn reload y gweinydd yn awtomatig. Ac nid felly mewn gwirionedd yn rhaid i chi restart Python, sydd yn super ddefnyddiol. Gallaf ddangos hynny. Gadewch i mi dynnu i fyny fy cod gyda'r typo ynddo, ac yn esgus bod typo ei roi yno yn fwriadol ar gyfer dibenion addysgiadol. Felly gadewch i ni ychwanegu'r hyn yn ôl i mewn. Felly nawr mae'n ei ddweud Helo Byd. Byddaf yn ei arbed. Ac os ydym yn tynnu yn ôl i fyny y derfynell, wnewch chi helpu yn dweud ei fod yn ailddechrau, am ei fod yn canfod newid, ac felly nawr pan fyddwn yn ail-lwytho y dudalen hon, bydd yn argraffu'r y peth cywir. Felly debug yn super ddefnyddiol ar gyfer hynny. Hefyd, os oes gennych unrhyw math o damwain, felly gadewch i mi wneud y cais hwn damwain drwy gael iddo beidio dychwelyd llinyn. Felly, gadewch i ni yn unig wedi ei dychwelyd Dim am ryw reswm. Ac yna pan fyddaf yn ymweld â'r dudalen, bydd yn jyst damwain, ond nid yw'r gweinydd yn unig chwalu, mae'n mewn gwirionedd yn rhoi cefn super ddefnyddiol i chi olrhain o bopeth a aeth o'i le. A beth sy'n neis iawn, yw y ar unrhyw gam yn y hybrin cefn, gallech agor rhyngweithiol cragen yma, ac math o argraffu beth newidynnau ydych am gymryd golwg ar. Ac felly debugging yn wirioneddol defnyddiol ar gyfer figuring beth sy'n digwydd gyda'ch gweinydd, yn hytrach na dim ond yn gweld rhywbeth yn PHP fel 500 mewnol gwall gweinydd, sydd yn super 'n annefnyddiol. Un peth i fod yn ymwybodol o, yn os byddwch yn rhoi eich app ar-lein felly mae'n amlwg i'r cyhoedd, yr ydych byth eisiau gadael modd debug ymlaen, oherwydd gall pobl mewn gwirionedd ddefnyddio'r consol fy mod Dangosodd i chi weithredu cod mympwyol. Felly, maent yn gallu argraffu fel unrhyw Codau cudd sydd gennych mewn 'na, gallant edrych ar union sut mae eich gwefan yn gweithio. Felly mae'n ddefnyddiol iawn ar gyfer profi, ond bob amser gwnewch yn siwr i fynd ag ef allan gerbron byddwch yn cyhoeddi unrhyw beth ar-lein. Felly, pan fyddwch yn defnyddio rhywbeth fel PHP, mae y syniad hwn eich bod yn gallu pasio gwybodaeth rhwng tudalennau gwe drwy roi'r wybodaeth mewn gwirionedd yn yr URL, sy'n gais GET, ond yn Fflasg, gallwch mewn gwirionedd gwneud rhywbeth fath o fel 'na, drwy gael llwybr sydd wedi newidyn fel rhan ohono. Felly, os ydych yn edrych ar hyn enghraifft ar y sgrin yma, mae gennym lwybr sy'n ('/ Helo /'), ac felly, os byddwch yn ymweld / Hello / rhywbeth, bod rhywbeth yn mynd i gael llenwi mewn gwirionedd i mewn i'r newidyn enw. Ac yn sylwi bod y swyddogaeth sy'n dod gyda'r llwybr hwnnw yn gorfod cymryd yn y paramedr enw, fel y bydd yn mewn gwirionedd cael eu pasio i mewn i'r swyddogaeth. Ac yna, unwaith y byddwch chi tu mewn swyddogaeth honno, gallwch drin y hoffi newidyn Python arferol, ac felly, yna, bydd yn argraffu Helo, ac mae'n Bydd llenwi'r enw gan ddefnyddio rhywfaint o fformatio llinyn. Felly, i ychwanegu rhannau amrywiol i lwybro, eich bod yn defnyddio'r bachyn ongl marcio. Ac o ddewis, gallwch ddefnyddio hyn a elwir yn trawsnewidydd. Ac felly, os byddwch yn rhoi hyn anodi gyda'r colon, gallwch nodi ei fod yn yn int, neu fflôt, neu lwybr, a bydd yn trosi hynny yn awtomatig. Gallwch hefyd wneud yr addasiad o fewn y swyddogaeth Python, dim ond drwy ddefnyddio cast, ond weithiau os yr ydych am sicrhau bod ei fod yn int, gallwch roi hynny rheol trosi i mewn 'na. Felly gadewch i ni dynnu i fyny yn enghraifft o rai rheolau amrywiol. Felly dyma, mae hyn yr un sylfaenol Strwythur gyda'r rhag mewnforio Fflasg Fflasg, mae'r app = Fflasg (_name_), ac yna ei fod yn rhedeg ar y diwedd. Mae gennym ddau gwahanol hyn llwybrau amrywiol yma. Ac mae'r un cyntaf, yn yr un yr wyf yn dangos yn y sleid, sef bod 'i jyst yn cymryd mewn enw llinyn a bydd yn argraffu Helo, Enw. Ac yna, yr ail un yn defnyddio'r trosiad. Felly, bydd hyn yn trosi yn awtomatig i int, ac yna dwbl y int, ac print that allan. Ac, nid ydym yn gwneud unrhyw fath trosi oddi mewn iddo oherwydd Fflasg yn gofalu am hynny. Felly gadewch i ni gael rhedeg hwn. Pan fydd gennych Fflasg rhedeg cais, gallwch Rheoli-C allan ohono i atal y rhedeg gweinydd. Ac yna byddaf yn rhedeg y newidynnau. Felly gadewch i ni fynd i localhost / helo / Ezra a gobeithio, bydd hyn yn dweud helo i mi. Felly mae'n cymryd yn fy enw i, yn y newidyn llwybr, ac fe lanwodd yn fan hyn. Felly byddaf hefyd yn dangos cyflym Enghraifft o'r dyblu. Felly, os byddwch yn mynd i / dwbl / 3, bydd yn argraffu'r 6. Felly, mae hyn yn cymryd gofal am trosi i ni. Felly, gallwch hefyd ei wneud gyda arnofio, a rhywbeth arbennig, os oes angen i nodi rhywbeth fel llwybr, sy'n gadael i fod yn derbyn slaes, ond ni ddylai hynny fel arfer fod yn broblem. Hyd yn hyn yr ydym ni, yn dal i gael newydd gael ei dychwelyd llinynnau, ac nid yw yn ddiddorol iawn. Gallem mewn gwirionedd yn dychwelyd llinyn HTML llythrennol. Felly, yn y cod gallwn fewnosod rhywbeth fel y b-tag i'w wneud yn eofn, ond mae'r rhan fwyaf yr amser y byddwch yn peidiwch â mewn gwirionedd eisiau i fod yn ysgrifennu cod HTML yn eich cod Python. Mae'n mynd yn wir yn flêr, ac nid yw'n amser da. Fflasg yn ein galluogi i wahanu'r HTML i mewn i hyn a elwir y Templed, ac felly os ydych yn meddwl o ran y model MVC eich bod yn gyfarwydd â nhw, gobeithio, o weithio gyda CS50 Cyllid ychydig bach, gallwch chi feddwl am y ffeiliau Python fel rhai mwy o'r Rheolwr, lle y maent yn rhyngweithio gyda beth bynnag model data a allai fod gennych. Ac yna maent yn cael eu galw allan i Views a rhoi gwybodaeth i hynny View i lenwi'r wybodaeth yn HTML sydd ei angen arni. A beth rydym yn galw Barn y rhai yn Templedi yn y dosbarth. Felly Fflasg yn defnyddio Python arall modiwl y bydd yn awtomatig gosod pan fyddwch yn Pip gosod O'r enw Fflasg Jinja, a oedd yn yn gadael i chi ychwanegu'r rhain anodiadau i'r HTML eich bod yn gweld ar y sgrin, sy'n gadael eich rhoi mewn pethau fel conditionals, ac dolenni i mewn i'r HTML. Felly mae'n edrych ychydig fel sut yr ydych yn Gallai defnyddio PHP o fewn ffeil HTML, ond mae hyn yn unig pan fydd y Fflasg gweinydd yn gweini y ffeil HTML, bydd yn rhedeg y peiriant templating ac dosrannu drwy hyn a llenwi pethau i mewn. Felly Fflasg swyddogaeth render_template y gallwch weld ar y gwaelod yma. Ac felly pan fyddwch yn ymweld â'r dudalen hon, mae'n Byddai gwneud hyn Templed hello.html, ac yna llenwch y dudalen HTML. Felly gadewch i ni jyst hidla real, mae hyn gyflym, a gweld sut mae'n edrych, ac yna byddaf yn mynd drwy ychydig bach yn fwy manwl. Felly, mae eich Templedi yn mynd i fynd mewn ffolder Templates. Bydd yn edrych yn awtomatig o fewn y Templedi ffolder ar gyfer y Templed. Felly gadewch i ni agor y fyny. Felly, byddaf yn rhedeg yr enghraifft templating. Felly, os af i / helo / Ezra, mae wedi hyn erchyll, tag babell atgas i mi ei roi i mewn. Iawn 'n glws, ddeinamig iawn. Dwi'n ffan mawr. Ond beth sy'n digwydd os Fi jyst yn mynd i, / helo? Felly 'i jyst yn dweud Helo Byd. Doeddwn i ddim yn ei throsglwyddo enw, a ei lenwi i mewn yn awtomatig. Felly, gadewch i ni weld sut y mae'n gwneud hynny, a sut gallwn gael gwared ar y babell efallai. Felly dyma, mae hyn yn fath o enghraifft ddiddorol o, os ydych yn gyfarwydd â sut switsh datganiadau gweithio mewn iaith. Dweud hyn yn fath o fel, y math yna o gwymp drwy, lle rydych mewn gwirionedd ynghlwm dau llwybrau gwahanol i'r un swyddogaeth. Felly rydym yn atodi'r / helo llwybr a y / helo / llwybr enw i Helo, ac rydym yn nodi using-- Python yn gadael i chi pennu diofyn arguments-- swyddogaeth felly os nad oes enw, felly os ydym yn mynd i ddim ond / helo, bydd yn hidlo'r awtomatig i enwi yn hafal i Dim. Felly, yna, rydym yn golygu bod y Templed gydag enw = enw, felly bydd yn pasio yn enw'r paramedr gyfartal i hyn paramedr swyddogaeth enw, i mewn i'r Templed. Mae hynny yn dal yn esbonio sut mae benderfynu a ddylid argraffu Helo Byd, neu argraffwch fy enw. Felly gadewch i ni mewn gwirionedd yn edrych i mewn i'r Templed ei hun, a gweld lle sy'n dod o. Felly, o fewn y Templed hwn, rydym yn mewn gwirionedd yn cael rhywfaint o resymeg amodol, y byddai rhai pobl dadlau, yr ydych mewn gwirionedd Ni ddylai cael llawer o amodol rhesymeg o fewn eich Templed ei hun. Dylai fod yn fwy o fewn y Rheolwr, ond ar gyfer yr enghraifft hon ei fod yn rhywbeth eithaf bach. Felly dyma, rydym yn gwirio, os henw, felly Nid os enw yn hafal i Dim, os yw enw mewn gwirionedd basiwyd yn, yna byddwn yn dweud Helo, Enw gyda'r header a'r babell, hyn i gyd yn HTML arferol, fel arall, byddwn yn argraffu Helo, World yn unig fel arfer. Felly cwpl o bethau i hysbysiad yma am y ffordd yr ydych fformatio'r templating, yw bod, pob un o'r rhain Datganiadau amodol, fath o fel sut rydym yn PHP pan yr hoffech ei fewnosod rhywfaint o PHP, byddwch yn defnyddio'r llai-na gwestiwn marc, mae'n fath o cyfatebol yma gyda'r {%. Felly dyma, rydym wedi ein cod amodol. Ac yna, pan fyddwch mewn gwirionedd eisiau yn llythrennol yn gwerthuso rhywbeth, ac argraffu allan i'r sgrin, byddwch yn defnyddiwch y braces dwbl. Felly dyma y braces dwbl, ac yna rydym yn nodi enw, hynny o fewn hynny, bydd yn gwerthuso at yr enw newidyn, a oedd yn ei basio i mewn o'r rendr swyddogaeth templed, yn hytrach na dim ond argraffu allan, os ydym yn cael gwared ar y rhain, byddai'n jyst argraffwch y gair "enw." Felly, mae hynny'n rhywbeth i wylio allan am. Felly beth arall i rhybudd yw bod, pan fyddwn yn am ddefnyddio'r swyddogaeth render_template, mae gennym mewn gwirionedd i fewnforio mae'n benodol o Fflasg. Ac mae hyn yn enghraifft o mae'r gyfer modiwlau o Fflasg, nad oes rhaid i chi i fewnforio pethau nad oes angen i chi. Alli jyst ddod yn y swyddogaethau yr ydych mewn gwirionedd oes angen, sydd weithiau'n 'n glws, fel nad ydych yn ei wneud rhaid i chi gael yr holl swyddogaethau hyn eistedd o gwmpas nad ydych yn ei ddefnyddio, ond hefyd, os byddwch yn anghofio eich bod Mae angen i fewnforio render_template, mae'n debyg y byddwch yn cael rhybudd a fydd yn rhoi gwybod i chi am hynny. Felly, mae hynny'n templating. Felly, rydym wedi dangos iddynt sut i gwneud tudalennau gwe syml, ac ychwanegwch ychydig mwy rhesymeg i hynny, o ran y llwybro amrywiol. Mae'n gadael i chi wneud pethau gwahanol yn seiliedig ar pa URL byddwch yn mynd i, ac hefyd bryd hynny, rhowch y HTML ychydig yn fwy o synnwyr mewn ran sut yr ydych am i rendro pethau. Nid oes rhaid i chi roi'r holl eich HTML yn eich Python, ond am 'n bert lawer pob cais ar y we, ydych yn mynd i eisiau rhyw fath o fodel data sy'n gysylltiedig ag ef. Ac felly yn draddodiadol, byddai hyn yn rhywbeth fel cronfa ddata SQL. A allwch chi jyst yn rhyngweithio uniongyrchol gyda SQL. Python wedi, yr wyf yn meddwl ei fod yn enw. SQLite 3. Alli jyst fewnforio SQLite 3 a gweithredu ymholiadau SQL yn uniongyrchol, ond nid wyf yn gwybod amdanoch chi, ond i ddim wir yn ei hoffi, dim ond, ysgrifennu allan ymholiadau SQL. Mae'n tueddu i ca 'n sylweddol hir a chymhleth. Ac felly, rhywbeth y Rwy'n hoffi defnyddio yn yr hyn sydd a elwir yn ORM, sydd yn gwrthrych-perthynol mapio. A'r pwynt o mapio gwrthrych-perthynol, yw bod dau wahanol ffyrdd y gallwch chi feddwl am gronfeydd data. Felly yr enghraifft sy'n Yr Athro Malan fel arfer defnyddio yn y dosbarth, yn y tabl Excel, lle mae gennych rhesi hyn ac y colofnau hyn, ac mae hynny'n ddefnyddiol iawn ar gyfer sut mae'n cael ei gynrychioli yn SQL a sut yr ydych yn rhyngweithio ag ef, ond ffordd arall ei fod yn mewn gwirionedd ddefnyddiol i feddwl am y peth weithiau, yw o ran dosbarthiadau a gwrthrychau. Felly, yn lle meddwl pob tabl fel rhai rhes hon sydd â rhai gwybodaeth, gallwch mewn gwirionedd meddwl am y peth fel rhai pob tabl yn ddosbarth, ac yna bob enghraifft o'r Mae gan ddosbarth penodol o eiddo. Felly, yn yr enghraifft hon, mae'r achosion o y dosbarth yn y rhesi yn y tabl, ac yna byddai pob eiddo fod yn golofn yn y tabl. Felly, mae'r ORM fy mod yn hoffi i ddefnyddio ei alw'n peewee. Mae'n wirioneddol fach, math o fel Fflasg. Yr wyf yn meddwl eu bod yn mynd yn dda gyda'i gilydd, ond mae yna lawer o ORMS eraill y gallwch eu defnyddio. Mae un yn fwy poblogaidd yn a elwir yn SQLAlchemy, ac ni allaf gofio pam yr wyf yn wreiddiol Dewisodd peewee dros SQLAlchemy, neu byddwn yn dweud wrthych pam yr wyf yn meddwl ei fod yn yr un gorau, ond rydym yn jyst yn mynd i ddefnyddio hyn un gan fy mod yn gwybod sut i'w ddefnyddio. Felly, un cwestiwn yw, pam dylech chi drafferthu defnyddio ORM, hytrach na dim ond yn uniongyrchol ysgrifennu ymholiadau SQL? Ac yr wyf yn meddwl bod yr achos gorau, yw nad ydych yn ei wneud mewn gwirionedd rhaid i ysgrifennu ymholiadau SQL. Mae'n llawer haws, fel y byddaf yn dangos i chi, i gwneud pethau fel dewis, mewnosod, dileu, yn enwedig creu tablau. Mae'n llawer haws i ysgrifennu strwythur dosbarth, nag yw i strwythuro Creu Datganiad Tabl, ond mae un peth i fod yn ymwybodol o, yw bod Bydd y ORM yn gwneud ei orau i chyfrif i maes beth y mwyaf Byddai SQL query effeithlon fod, ond weithiau mae'n mynd yn anghywir. Ac yn enwedig os ydych chi'n gweithio gyda chronfa ddata mawr, gallwch sylwi bod ymholiad y dylid eu rhedeg yn gyflym, mewn gwirionedd yn cymryd mwy o amser. Ac os ydych yn edrych o dan y cwfl ar sut mae'r ORM yn dehongli'r hynny i mewn i SQL, gallai fod yn gwneud rhywbeth 'n sylweddol chwerthinllyd, dim ond oherwydd ei fod yn fath o ystumio eich bwriadau anghywir. Ac, mae yna adegau pan fu Rwyf wedi cael i droi'r fantol yn ei, a dim ond gweithredu fy ymholiadau SQL hun, dim ond oherwydd ei fod yn dosrannu mewn ffordd ryfedd. Felly, mae rhywfaint o uwchben, dim ond yn y ffordd ei fod yn llunio eich datganiadau lawr i SQL. Felly, gadewch i ni edrych super gyflym ar enghraifft syml o fodel data y gallech eu defnyddio. Felly, mae hyn yn cod Python, ac felly mae'r peth cyntaf rydych am ei wneud yn dod o mewnforio peewee *. Felly, yn wahanol Fflasg, lle mae gennych holl fodiwlau unigol hyn, ac rydych am i fewnforio Fflasg, a ysgrifennu Templed, a rhai eraill y byddwn yn gweld yn nes ymlaen, o peewee, gallwch fewnforio popeth, am ei fod yn llyfrgell eithaf bach. Felly, y peth cyntaf rydych am ei wneud, yw mewn gwirionedd greu'r gwrthrych cronfa ddata. Felly, mae gennych db = SqliteDatabase, ac yna enw eich cronfa ddata. A bydd hyn mewn gwirionedd yn creu gwrthrych cronfa ddata eich bod yn gallu rhyngweithio â, gyda peewee. Ac yna, mae gennym y gwir model yr ydym am ei chreu. Felly mae'r tabl ydym am ei chreu. Felly, o fewn peewee, pob dosbarth wedi ei bwrdd ei hun o fewn eich cronfa ddata. Felly, pob un o'r dosbarthiadau etifeddu oddi wrth y model sylfaenol, a'r model M cyfalaf yn rhywbeth sydd ddiffinio yn peewee. Felly, eich holl fodelau dylai etifeddu gan fod eu uwchddosbarth uchaf, dylent etifeddu oddi wrth y model, ond yr hyn sy'n wirioneddol cŵl, yw y gallwch chi mewn gwirionedd yn cael eich modelau etifeddu oddi wrth ei gilydd. Ac mae llawer o'r amser, eich Nid yw modelau data yn ei wneud o reidrwydd gwneud hierarchaeth etifeddiaeth 'n glws, ond adegau pan maent yn ei wneud, mae'n neis iawn, oherwydd eich bod yn cael y model cynhenid ​​oddi wrth ei gilydd. Felly, rydym yn y diffinnir y dosbarth hwn 'Myfyriwr,' sy'n etifeddu model, ac mae wedi tri eiddo. Mae ganddo adnabod, sef a PrimaryKeyField, a oedd yn yn rhywbeth sy'n ei ddarparu yn ôl peewee, enw yn CharField, a gradd yn IntegerField. Felly, mae hyn gall neu na all fod yn sut CS50 gwirionedd siopau i gyd graddau y myfyrwyr. Nid yw'n, ond dyma sut y byddwn yn ei wneud. Ac yna mae wedi, o fewn y dosbarth hwn, ac mae hyn yn rhywbeth y gallwch ei wneud gyda Python, gallwch gael dosbarthiadau nythu. Ac mae hyn yn rhywbeth sy'n ofynnol gan peewee. Felly, mae hyn yn Meta dosbarth, mae gennych i bennu bod y gronfa ddata yn hafal i'r gwrthrych ein bod yn creu uchod. Ac mae hyn yn dweud beth y ffeil yn y tabl hwn mewn gwirionedd yn mynd i gael ei gynnwys yn. Felly, mae hyn yn rhywbeth sydd gennych i'w wneud o fewn eich holl fodelau. Mae'n rhaid i chi nodi o fewn y dosbarth hwn Meta bod cronfa ddata yn hafal i db. Felly, yr hyn yr wyf fel arfer yn ei wneud, os oes gennyf criw o wahanol fodelau, yw bod gen i un ganolfan model, fy mod fel arfer ffoniwch "model sylfaenol" sydd â'r dosbarth Meta, ac mae'n gosod y gronfa ddata cyfartal i db. Ac yna fy holl fodelau dilynol Bydd etifeddu gan y dosbarth sylfaen. Ac yna does dim rhaid i mi boeni am osod y dosbarth Meta. Felly, pan fydd hyn mewn gwirionedd yn cael a luniwyd i lawr i mewn i ddatganiad SQL, mae'n edrych fel y peth cas i lawr yma, "Creu tabl cyfanrif adnabod myfyriwr, " Beth bynnag. Ac, yr wyf yn meddwl ei fod yn fyrrach, SQL hwn ymholiad iawn yma, ond os edrychwch ar y dosbarth hwn yma gallwch weld yn union beth sy'n digwydd. Gallwch weld pa fath o gaeau mae yna, beth maen nhw'n cael eu galw, ac felly, yr wyf yn meddwl bod edrych ar y cod Python yn llawer mwy darllenadwy na ceisio ysgrifennu hwn SQL query. Felly, er mwyn gwirionedd defnyddio'r gronfa ddata, mae'n rhaid i ni gysylltu ag ef o fewn Python. Felly, yr wyf fel arfer yn ysgrifennu swyddogaeth o'r enw initialize_db sy'n gwneud dau beth. Mae'n cymryd yn y gronfa ddata db gwrthrych ac mae'n cysylltu iddo, a dim ond yn agor hyd adran i'r gronfa ddata. Os ydych ond yn rhedeg er Gwefan ar eich peiriant lleol, nid yw'n llawer super mawr i boeni am gysylltu a datgysylltu, ond os ydych yn rhedeg ar wefan, rydych yn eisiau gwneud yn siŵr bod, pryd bynnag y bydd defnyddiwr cysylltu iddo, pan fyddant yn cau allan y wefan, maent yn datgysylltu er mwyn i chi Nid oes rhaid i griw o bobl sy'n gysylltiedig at eich cronfa ddata i gyd ar unwaith. Ac yna, pan fyddwch yn cysylltu â'r gronfa ddata, rydych am ei alw db.create_tables, a rhestru'r modelau ar gyfer yr hyn rydych am i greu tablau. Felly dyma, Fi jyst eisiau creu ar gyfer myfyriwr hwn. Ac yna, yr hyn sy'n bwysig, yw pennu diogel = Gwir rhan fwyaf o'r amser. Felly, beth mae hyn yn y datganiad Bydd ei wneud, yw ei fod yn creu tablau ar gyfer y model myfyrwyr, ond dim ond os nad y tabl hwnnw wedi ei greu yn barod. Dyna beth mae'r bennir yn ddiogel. Felly, ni fydd yn trosysgrifo eich bwrdd sy'n bodoli eisoes, ni fydd yn creu newydd bwrdd os nad oes un yno. Felly, fe allech chi jyst greu mae'r tablau unwaith gan ddefnyddio SQL. Ac yna cael y eisteddiad gronfa ddata yno, ac yna cysylltu bob tro, ond mae'n arfer braf yn unig i rhoi yn create_tables hwn alwad, er mwyn sicrhau, os ydych chi erioed dileu eich cronfa ddata pan fyddwch yn rhedeg eich gwe app eto, bydd yn ail-greu. Felly, dim ond gwneud yn siwr bod yn ddiogel wedi ei bennu i fod yn Gwir, neu y byddwch yn dod o hyd eich data yn unig cael taro bob tro. Ac yna, gallwch ffonio initialize_db i sefydlu cysylltiad, ac yn creu tablau os oes angen. Felly, y peth mwyaf cyffredin y byddwch am ei wneud, neu un o'r pethau mwyaf cyffredin, yw mewn gwirionedd yn mewnosod pethau i mewn i'ch cronfa ddata. Ac felly, yn hytrach na chael i ysgrifennu mewnosodiad I Datganiad gyda phob un gwerthoedd a nodwyd, gallwch ffonio mewn gwirionedd swyddogaeth ar y dosbarth y myfyrwyr. Felly, pan fyddwch yn creu dosbarth sy'n etifeddu o fodel, mae ganddi hyn yn creu dull. Felly, rydych yn gwneud name.create dosbarth, ac rydych yn pennu'r paramedrau eich bod am i basio mewn. Felly, os wyf am ychwanegu rhai myfyrwyr at ein enghraifft llyfr gradd CS50, 'N annhymerus' roi yn David, sydd â gradd dda iawn, mae ganddo 95. A minnau, nid pwy sy'n gwneud cystal yn CS50, mae gen i 50. Ac felly, y peth braf am beth mae hyn yn swyddogaeth yn creu ei wneud, yw ei fod yn dychwelyd y lle, neu'r rhes, ei fod yn creu o fewn y bwrdd, ac felly, yna i chi storio hynny mewn amrywiol, ac yn gweithio ag ef yn nes ymlaen. Gallwch newid o gwmpas, a oedd yn Byddaf yn dangos enghraifft o. Sylwch fod Doeddwn i ddim rhaid i bennu'r ID, oherwydd ers ei fod yn y PrimaryKeyField, bydd yn awtomatig cynyddiad os nad ydych yn nodi hynny. Ac, mewn gwirionedd, mae'n debyg Ni ddylai bennu ei, oherwydd eich bod efallai yn ddamweiniol trosysgrifo'r ID rhywun arall. Ac ydych am wneud yn siŵr ei fod yn unigryw. Felly, mewn gwirionedd, y mwyaf beth cyffredin rydych am ei wneud, yn ôl pob tebyg yn cael ei dewis allan o'r gronfa ddata ar ôl i chi yn cael llawer o wybodaeth mewn 'na. Ac felly, os ydych chi am gael popeth, felly yr hyn sy'n cyfateb y seren dethol o datganiad myfyrwyr, mae'n fyddai dim ond yn student.select. A fydd yn rhoi i chi yn ôl amrywiaeth gyda phob un y myfyriwr gwrthrychau ynddo eich bod yn ailadrodd drosodd ydych ei eisiau. Gallwch gael pethau allan ohono. Ac yn y rhan fwyaf o'r amser, byddwch yn peidiwch â eisiau gwneud dewis, chi mewn gwirionedd yn awyddus i nodi rhywbeth. Ac felly, gallwch cadwyn ynghyd galwadau swyddogaeth hyn, fel sut y byddech cadwyn ynghyd y datganiadau yn SQL. Felly, gallwch chi ei wneud student.select (). Lle yn yr enghraifft hon. Ac yna, gallwch pennu'r amodau, dim ond gan ddefnyddio Python arferol Booleans i wirio pethau. Felly, yn yr achos hwn, byddwch am cyfyngu ar yr hyn yr ydych yn dewis i, lle mae student.grade yn hafal i 50, ac student.name yn hafal i Ezra, fel y bydd dim ond yn cael fi allan ohono. Ac yn sylwi, un 'n sylweddol peth cynnil yma yw hynny, os ydych am bennu mae a / a neu neu / neu, yn Python, byddech fel arfer yn eu defnyddio, Rwy'n meddwl bod y gair "and" mewn gwirionedd, ond yma byddwch yn defnyddio'r ampersand sengl, sydd yn weithredwr bitwise fel arfer, ond yn yr achos arbennig, dim ond y ffordd peewee nac ydi, eich bod yn defnyddio'r un ampersand i nodi "a." Mae hynny'n rhywbeth y Yr wyf yn cael cymysgu llawer, ond nid yw'n dod i fyny bod llawer yn ymarferol. Ac yna, unwaith y byddwch yn cael yr holl y myfyrwyr allan o'r gronfa ddata, unwaith y byddwch wedi gwneud eich bod yn dewis a bod eich gwisgo neu beth bynnag, gallwch ddefnyddio dolen foreach, yn union fel normal yn Python, gydag unrhyw fath o iterator neu gydag unrhyw fath o amrywiaeth. Felly, gallwch chi ei wneud, ar gyfer s yn student.select (). whe ail (Student.grade <75), ac yn y blaen bydd hyn ailadrodd dros bob myfyriwr yn y tabl y mae ei radd yn llai na 75, a oedd yn yn yr achos hwn, yn dal i fod dim ond fi. Ac yna gallech wneud rhywbeth o fewn hynny dolen, fel anfon e-bost ataf ac yn dweud wrthyf i mewn gwirionedd troi yn fy Setiau Problemau. Felly, beth arall y gallwch yn ei wneud, yw ei bod yn hawdd iawn i ddiweddaru rhesi o fewn y tabl. Felly, cofiwch yn ôl yma, eich pan fyddaf yn mewnosod, Cymerais y gwerth a oedd yn ddychwelir gan student.create, ac yr wyf yn neilltuo i enw o'r enw Ezra. Ac felly yn awr, gallwch newid y gwerthoedd o fewn yr achos hwnnw, yn union fel y byddech yn arferol y dosbarth yn Python. Felly, gallwch osod ezra.grade = 95 ac a fydd yn diweddaru'r copi lleol, ond os ydych mewn gwirionedd yn eisiau ymrwymo y newid i'r gronfa ddata, mae'n rhaid i chi alw ezra.save, er mwyn i chi a elwir yn y dull .save ar y lle. Ac felly yn awr, yr wyf wedi newid yn llwyddiannus fy graddfa hun o fewn y gronfa ddata. Felly, yna gadewch i ni ddweud fy mod yn cael eu dal newid fy ngradd yn y gronfa ddata. Yn ôl pob tebyg yr Athro Malan yn mynd i eisiau i mi dileu oddi wrth y dosbarth, ac felly gallwch ffonio'r .delete enghraifft dull yn unig ar y peth. Felly, os ydych eisiau mynd yn ôl i mewn dolen hyn yma, ac mewn gwirionedd, yn lle hynny o anfon negeseuon e-bost bob o'r myfyrwyr y mae eu gradd yn llai na 75, yr oeddech yn dymuno i'w dileu, o fewn y ddolen hon gallech ffoniwch enghraifft s.delete. A'r peth olaf un rydych am ei wneud, pryd bynnag y byddwch yn sefydlu cysylltiad, ac rydych yn ei wneud gyda'ch gwaith, rydych am ei alw db.close, lle mae db yw y gronfa ddata gwrthwynebu a oedd gennym o'r blaen. A'ch bod am wneud yn siŵr bod popeth yn cael gau allan o. Cool. Felly nawr, mae gennyf gais enghraifft. Rydw i wedi fath o cyn-gwneud popeth yn unig fel na fydd unrhyw codio yn fyw camgymeriadau, ond gallwn gerdded drwy'r arni a gweld sut y byddech yn ei roi Fflasg a peewee gyda'i gilydd, a gwneud app syml. Wyf yn ei alw rant CS50, ac mae'n math o llwyfan blog syml. Felly, yn gyntaf, 'n annhymerus' ei redeg a dangos sut mae'n edrych, ac yna gallwn edrych yn fwy i mewn i'r cod. Iawn, felly gadewch i ni jyst yn rhedeg hyn. Cool, 'n annhymerus' yn gwneud hyn yn ychydig yn llai. Dyw hi ddim yn bert iawn, dim ond oherwydd Doeddwn i ddim yn gwneud llawer o CSS, ond yr hyn mae'n ei wneud yw, mae wedi y gronfa ddata hon o swyddi blog, ac mae'n mynd drwy bob un nhw, a bydd yn eu dangos ar y dudalen yn nhrefn y mwyaf diweddar. Ac felly dyma rai swyddi fy mod wedi cadw yn y gronfa ddata. Felly os ydym am greu newydd post, gallwn fynd i Ychwanegwch Post Newydd, a gallwn fynd i mewn i'r teitl y post, felly rhywbeth fel, seminar CS50. Wow, wir yn mwynhau'r seminar. Cool. Yna byddwch yn pwyso post, ac y bydd yn ailgyfeirio i chi yn ôl at y dudalen gartref, ac yna byddwch yn gweld bod neges ddiweddaraf ei ychwanegu. Ac rydym yn dal i gael yr holl rai yno. Felly nawr, gadewch i ni gamu drwy bob un o'r cod a gweld sut y mae hyn yn cael ei weithredu. Felly, yr wyf yn meddwl y peth cyntaf a gadewch i ni yn edrych ar, mewn gwirionedd y modelau. Mae llawer o'r amser, pan fydd ydych yn cynllunio rhywbeth, y byddwch am ystyried yn gyntaf am sut ydych yn mynd i gynrychioli eich data, ac yna cynllunio pethau o gwmpas hynny, fel bod popeth yn gwneud synnwyr. A dyna sut yr wyf mewn gwirionedd yn gwneud hynny pan oeddwn yn ei wneud hyn, Eisteddais i lawr a meddwl, beth ddylwn i ei eisiau mewn swydd. Felly, yma, mae gennym yr un strwythur yr oeddwn yn sôn yn gynharach, lle rydym yn ei wneud db = Sqldatabase ('posts.db'). Mewn gwirionedd, mae'n debyg na ddim eisiau i cod caled mewn cronfeydd data eich enw i. Mae'n debyg y dylai hynny fod yn paramedr sy'n cael ei storio yn rhywle, efallai mewn ffeil config, ond mewn enghraifft fach fel hyn, ei fod yn iawn i cod caled sydd yn. Felly nawr, mae gennym y dosbarth hwn Post, sy'n etifeddu oddi wrth y model sylfaenol. Ac mae wedi, unwaith eto, mae'r ID = PrimaryKeyField. Mewn gwirionedd, os nad ydych yn nodi, os Fi 'n weithredol yn cael gwared o hyn, Yna peewee y byddwn yn gofalu am yn awtomatig yn creu y maes hwnnw ID, ac bydd yn awtomatig ei gwneud yn PrimaryKey, a oedd yn Yr wyf yn meddwl yn neis iawn, oherwydd fel arfer, mae hynny'n rhywbeth yr ydych am ei gael, ond yr wyf yn hoffi ei roi yn benodol, yn union fel yr wyf yn cofio ei fod mewn 'na. Ond os nad ydych yn nodi hynny, a fydd yno yn awtomatig. Felly, yna, mae gen i ddyddiad sy'n yn DateTimeField, a phob gwahanol feysydd hyn, os ydych yn edrych ar y ddogfennaeth peewee, bydd yn rhoi rhestr o'r gwahanol i chi mathau o gaeau y gallwch eu defnyddio. Ar gyfer y rhan fwyaf, mae'n debyg i hyn y byddech yn ei weld yn SQL. Felly mae yna CharField, a VarCharFields, TextFields, sydd ar gyfer hir iawn testunau, fel swydd blog o bosibl, DateTimeFields, DoubleFields, FloatFields, pob peth fel 'na. A allwch chi basio mewn dadleuon eraill iddo, ac nid oeddwn yn nodi fan hyn. Dweud, er enghraifft, rydych nid oedd eisiau caniatáu dwy swydd i gael yr un teitl, Gallai eich bod yn nodi rhywbeth fel unigryw = Gwir, a dim ond paramedr ychwanegol i y cae hwnnw pan fydd yn llunio ei lawr i mewn i'r SQL, bydd yn pennu bod yn rhaid iddo fod yn unigryw. Gallwch hefyd benodi rhywbeth fel Nid null a'r holl bethau eraill ydych yn ei wneud fel arfer mewn SQL. Felly, mae hwn yn eithaf syml model sydd â'r dyddiad. Hysbysiad yma, o fewn y DateTimeField, Rwy'n nodir yr hyn y mae'r rhagosodiad yw. Rwy'n bennir iddo fod datetime.datetime.now, oherwydd y ffordd y mae hyn yn cael ei werthuso, mewn gwirionedd mae'n gwerthuso y datetime.now pan mae'n mynd yn mewnosod yn y gronfa ddata. Credaf, byddwn i'n cael i ddyblu wirio hyn, ond os ydych yn gwneud rhywbeth fel hyn, yna byddai mewn gwirionedd yn gwerthuso hynny unwaith, ac yna y datetime Byddai bob amser yr un fath. Felly, dim ond os ydych yn gwneud rhywbeth gyda datetimes, gwiriad dwbl ei fod yn gwerthuso pryd mewn gwirionedd yn cael ei mewnosod, neu fel arall efallai y byddwch yn ddryslyd. Mae'r teitl yn unig yw CharField, a oedd yno yn fwy ddadleuon y gallwch chi basio wrth nodi union pa mor hir rydych am iddo fod, ond yma, nid oedd wir bwys. A Text yn mynd i fod testun y swydd cyfan, ac mae hynny'n mynd i fod yn TextField dim ond oherwydd eich bod am i'w alluogi i fod yn llinyn eithaf hir. Yna, mae gennym Meta hwn Is-ddosbarth sydd yn unig yn nodi ein bod am y gronfa ddata lle mae hyn yn agor mewn gwirionedd i fyny i mewn i fod y gwrthrych db sydd gennym yma. Ac peth olaf yr ydym wedi yma, yn unig yw swyddogaeth hon ein bod ni'n mynd i defnyddio gan ein prif app i ymgychwyn y gronfa ddata i gysylltu , ac yna i greu'r tabl Post. Yn awr, gadewch i ni edrych ar y prif app ei hun. Felly, mae hyn yn un yn dipyn o ychydig yn hirach na'r rhai ein bod ni wedi ei weld o'r blaen, ond gobeithio ddim yn rhy ddrwg. Felly, gadewch i mi ymestyn hyn allan. Iawn. Felly, yn sylwi a phen yr wyf yn mewnforio criw cyfan o bethau eraill o Fflasg nad ydym wedi gweld 'n sylweddol o'r blaen. A gobeithio, gallwn fynd drwy'r pob un o'r rhain o un i un a siarad ychydig yn fwy am nhw, didoli yn ôl esiampl. Felly, mae gennym y Fflasg, a'r render_template, yr ydym wedi ei weld o'r blaen, cais hwn gwrthrych, a fydd yn dod i fyny pan fyddwn yn edrych ar sut y ffurf yr oeddwn yn ei ddangos mewn gwirionedd yn gweithio. Ailgyfeirio, sy'n gadael i chi ailgyfeirio yn ôl o'r Create New Post yn ôl i'r dudalen gartref gwreiddiol, ac yna URL, sy'n rhywbeth sy'n caniatáu i chi chyfrif i maes ble ar y Gwefan dudalen benodol y mae. Felly, yna, mae'r nesaf beth wyf yn ei wneud, yw wyf mewnforio yr holl wybodaeth oddi wrth y Modelau ffeiliau a oeddem yn dim ond edrych ar. Ac, ie. Felly, rhywbeth arall newydd a ddaw i fyny pan fyddwch yn delio â, yn enwedig cronfeydd data, yw y gallwch nodi swyddogaeth sy'n cael ei alw cyn bob cais, a swyddogaeth sy'n cael Gelwir ôl pob cais, gan ddefnyddio'r hyn cais swyddogaeth addurnwr app.before. Ac felly y bydd hyn yn cael ei weithredu lle bynnag y bo swyddogaeth yw hyn. Nid oes rhaid i hyn fod Gelwir cyn cais, ond fel arfer mae hynny'n rhywbeth synhwyrol ei alw. Gallwch nodi pa bynnag swyddogaeth rydych am ei gael o'r enw yno, felly yr wyf yn penodedig initialize_db hon swyddogaeth a gawsom yn ôl yn y Modelau ffeiliau, felly cyn pob cais, byddwch yn eisiau cysylltu â'r gronfa ddata. Mae dau wahanol ffordd y gallwch wneud hyn. Gallwch wneudapp., Fi yn credu ei fod yn after_request. A'r gwahaniaeth rhwng after_request a teardown_request, yw y bydd after_request ond yn digwydd os yw'r cais mewn gwirionedd yn ddilys. Ac felly, dim ond os yw'r cais yn llwyddiannus, os aeth dim o'i le, ond teardown_request digwydd yn achos llwyddiannus cais, neu yn achos camgymeriad. Felly, fel arfer, rydych am i ddefnyddio teardown_request, oni bai eich bod am ei wneud rhywbeth, yn enwedig yn wahanol yn achos camgymeriad. Ond dim ond ar gyfer cau'r gronfa ddata, a yw'n llwyddo neu os bydd yn methu, rydym yn ei wneud ydych am ddatgysylltu o'r gronfa ddata. Felly, fe'i gelwir, db.close ar y gwrthrych db. Sylwch fod y teardown_request yn cymryd yn eithriad. Felly, gallwch wirio os oedd mewn gwirionedd gwall pan gafodd ei gau i lawr, ond yma, gobeithio, yno Nid yw llawer gyfan o gamgymeriadau, felly rydym yn unig yn fath o anwybyddu hynny. Iawn, ac nid y gweddill ei bod yn rhy ddrwg. Felly, pan fyddwn yn mynd i'r dudalen gartref, rydym rendro hwn Templed home.html a fydd yn agor i fyny. Mae'r tocyn yn ei swydd yn hafal i, a beth mae hyn yn cael ei, cofiwch gennym y swydd hon model, felly rydym yn dewis yr holl swyddi, ac yna beth arall y gallwch ei wneud, gallwch nodi y cymal LLE, gallwch bennu archebwch erbyn, ac felly rydym yn cymryd pob un o'r swyddi sy'n cael eu dewis, ac yna rydym yn eu harchebu gan y post.date.descending. A fydd yn pennu, pan fydd maent mewn gwirionedd yn dod allan, yr un mwyaf diweddar yn un cyntaf. Ac yna, rydym yn pasio i mewn i hynny y templed home.html, felly gadewch i ni mewn gwirionedd yn agor i fyny hynny Templed 'n sylweddol yn gyflym, ac edrych ar sut y mae hynny'n gweithio. Ac nid yw hyn yn HTML wych, ond gobeithio, gallwn ganolbwyntio ar y Python. Felly mae dolen i'r Add New Post, ac felly mae hyn yn pennu'r llwybr o fewn y Fflasg yr ydym ddiffinio, sydd yn iawn yma. Dyma'r llwybr swydd newydd, ac rydym yn nodi bod hyd yma. Ac fel bod yn gyswllt fydd wedyn yn mynd at y llwybr hwnnw o fewn y gweinydd Fflasg. Y peth mwyaf diddorol yw hon ar gyfer dolen yma. Felly, rydym yn nodi bod hyn yn ôl-paramedr sy'n Pasiwyd i mewn i'r swyddogaeth render_template, ar gyfer pob swydd yn y swydd gwrthrych sy'n cael ei drosglwyddo i mewn. Rydym eisiau argraffu teitl y swydd, yn H1, ac yna isod, rydym eisiau argraffu testun post o fewn paragraff. Ac yma, y ​​gallwn mewn gwirionedd yn galw swyddogaeth Python, er mwyn i ni alw strftime, ST-RF-amser, a gallwch basio yn y fformat llinyn eich bod am argraffu'r data yn. Felly, mae'n eithaf 'n glws y gallwch mewn gwirionedd yn galw swyddogaeth Python hwn o'r tu mewn yma. Nid oes rhaid i chi wneud y fformatio ar yr ochr rheolwr, oherwydd mewn gwirionedd, fformatio y dyddiad yn rhywbeth y ydych am i ddelio fewn y View. A phob un o'r rhain cant Nid yw pethau yn super bwysig. Os ydych yn edrych ar y dogfennau ar gyfer y swyddogaeth strftime yn Python, mae'n pennu'r rhain i gyd pethau, ond bod yn sut, pryd oeddem yn chwilio ar dudalen gartref yma, mae'n fformatau hyn gyda 'n glws hyd yn hyn, ac mae'n pennu AM neu PM, ond fel arfer, os ydym Nid oedd gan hyn yma, mae'n debyg y byddwch yn cael rhywfaint o garbage dyddiad nad oedd yn edrych yn dda iawn. Ac yna rydym yn pennu'r post.text, ac y gallwn wedi rhoi un neu ddau o llinell yn torri yma, dim ond i roi rhai bylchau rhwng pob swydd. Felly, yr wyf yn meddwl y pwysicaf beth yn yr enghraifft hon, yw y gallwch ddefnyddio hwn ar gyfer dolen. Ac mae hyn yn cyfateb i pethau y gallwch eu gwneud yn PHP. Gallwch ailadrodd drwy, popeth yn cael ei basio yn, ac felly, yn hytrach na gorfod ei wneud gopi / past, copi / past holl HTML, os oes gen ti i ysgrifennu unwaith, ac yna gallwch ailadrodd dros yr holl o'r swyddi. Ac mae hyn yn rhywbeth gyffredin eich bod am i'w wneud, pan fydd gennych lawer o ddata, yw bod am bopeth yn eich data, rydych am ei wneud yn beth tebyg. Ac yna, dim ond cofiwch, pan fyddwch yn eisiau argraffu rhywbeth yn benodol yn y HTML, byddwch yn defnyddio y braces dwbl yma, ond wedyn pan fyddwch eisiau nodi ychydig o wybodaeth am gyflwr, neu am i ddolen, yr ydych defnyddiwch y braced y cant. Felly, mynd yn ôl i'r Python cod, fel bod yn esbonio beth sy'n digwydd yn y prif llwybr, pan fyddwn yn mynd yno, 'i jyst yn dangos yr holl swyddi, ond wedyn y cwestiwn yw, sut yr ydym mewn gwirionedd yn cael swyddi i mewn i'r gronfa ddata, a oedd yn yn ychydig yn fwy diddorol. Felly, pan fyddwch yn clicio ar y Newydd Post cyswllt, a welodd yr ydym yma, mae'n eich ail-gyfeiriadau i'r ffurflen hon. A dim ond galwad syml i'r swyddogaeth render_template, sydd wedyn pasio yn y swydd newydd ar ffurf HTML. Felly, gadewch i ni edrych ar hynny. Felly, mae hyn yn un yn eithaf syml. Mae ganddo ffurflen HTML syml, a oedd yn bydd yn edrych ychydig bach cyfarwydd, yn seiliedig ar y ffurflenni yn CS50 Cyllid. Ac felly, rydym yn nodi yma, y ​​camau gweithredu. Ac yma, os ydych yn gweithio gyda PHP, fel arfer, mae'n fyddai rhywbeth fel, create.PHP, ond yma rydym mewn gwirionedd yn pennu llwybr o fewn y gweinydd Fflasg. Ac felly, yn cyfateb llwybr hwn at y llwybr creu bod gennym yma, a oedd yn byddwn yn mynd i mewn i mewn eiliad. Ac felly, rydym yn nodi y mae'n ddull post, oherwydd ein bod am anfon ffurflen data hwn, ac fel arfer pan fyddwch yn anfon data o ffurflen, efallai y byddwch am ddefnyddio swydd cais, yn union fel nad ydych yn darfod i fyny gyda hyn fawr, URL anhylaw. Ond gallech hefyd ddefnyddio cais GET, ac yn ei throsglwyddo gyda llwybrau amrywiol, ond ar gyfer ffurflenni, mae'n braf i swydd cais yma. Ac felly, yna, yn union fel chi Byddai wneud gyda HTML a PHP, gallwch benodi mewnbynnau testun yma, a gallwch nodi enw ohonynt, a dyna yr enw a fydd yn cael eu pasio i mewn i'r cais gwrthrych fewn Fflasg. Ac yna rydym wedi yn Cyflwyno botwm sy'n dweud Post. Ac yma, Post yw enw'r y botwm, am ei fod yn swydd blog, ond yma, post yw'r dull cais. Felly, y rhai yr un gair ond nad ydynt yn gysylltiedig mewn gwirionedd. Yeah Gan fynd yn ôl at y cod Python, pan fyddwn yn galw'r creu dull, sylwi yma y gallwch mewn gwirionedd yn nodi o fewn y llwybr dulliau cais eich bod am dderbyn, ac felly dyma, yr wyf yn nodi fy mod Dim ond eisiau derbyn dull Post. Felly, os wyf mewn gwirionedd yn ceisio ymweld â'r dudalen yn uniongyrchol, sy'n cael ei ddefnyddio cais GET, bydd yn dweud wrthyf "Dull Ni chaniateir." Ac felly, mae gennych tudalennau, math o fel y dudalen hon yn creu, ac rwy'n yn unig 'n sylweddol gan ddefnyddio fel ffordd i y ffurflen i gael ei gyflwyno, gallwch nodi nad ydych yn ei wneud am i bobl allu mynd yno uniongyrchol drwy gais GET, neu os nad oeddech am, am ryw reswm, cais Post, fe allech chi jyst yn nodi GET yma, ond yn yr enghraifft hon, rydym yn unig am i'r cais Post i fynd allan. Felly, pan fydd yn cael ei alw'n create_post, pan byddwn yn ymweld hynny drwy gyfrwng y cais Post, pryd bynnag y byddwch yn mynd i'r manylyn llwybr, mae cais hwn gwrthrych, ac roedd rhaid i ni fewnforio ceisiadau ar y brig, ond mae cais hwn gwrthrych sy'n cael ei drosglwyddo i mewn, a gallwch gael mynediad at y data ffurflen, a fydd yn awtomatig yn cael eu llenwi pan fyddwch yn anfon cais gan ffurflen. Ac yna, yr hyn yr wyf yn meddwl yn wirioneddol cŵl, yn cael ei bod y ffurflen gwrthrych i gael ei basio yn, yn unig yw eiriadur Python sy'n yn cynnwys, os ydych access-- felly dyma, gadewch mi dynnu i fyny y HTML nesaf ato, dim ond fel y gallwch gael y fel cyfeiriad, ie, felly enwau a nodwn yma ar gyfer y gwahanol feysydd, felly teitl a'r testun, rydym yn Yna, dim ond yn defnyddio rhai dros yma fel mynegeion i mewn i'r data ffurflen. Felly dyna super gyfleus. Felly, yna rydym yn galw post.create, a oedd yn Bydd yn creu ac yn mewnosod awtomatig swydd hon gwrthrych newydd i mewn i'r gronfa ddata. Ac yr wyf yn credu bod hyn yn creu swyddogaeth dyma enghraifft 'n sylweddol oera o sut Fflasg pwerus yn ac yn gweithio gyda hyn, oherwydd os ydych yn gwneud rhywbeth yn PHP, efallai y bydd rhaid i chi yn gwneud llawer o dilysu, byddai'n rhaid i yna rydych sefydlu cysylltiad cronfa ddata, byddai'n rhaid i yna rydych cyflawni'r SQL query, ond yma rydym yn unig rhaid i hyn 'n glws post.create, a allwn yna dim ond cael y wybodaeth allan y cais gwrthrych, ac yna ei drosglwyddo i mewn i newydd bostio ein bod yn creu. Ac yna, mae'r olaf un beth yr ydym am ei wneud, yw ailgyfeirio'r defnyddwyr yn ôl i'r cartref. Ac felly rydym yn defnyddio hwn Fflasg ailgyfeirio swyddogaeth. A rhywbeth nad ydym wedi gweld o'r blaen, roedd swyddogaeth URL hwn. Felly yr URL ar gyfer y swyddogaeth yn gadael byddwch yn mynd heibio yn mewn gwirionedd yr enw swyddogaeth yn eich cod Python, yn hytrach na'r llwybr penodol ei fod yn. Er mwyn imi gael yr un mor hawdd hailgyfeirio defnyddiwr i dorri, a fyddai'n hanfon yn ôl adref, ond gan ddefnyddio'r URL ar gyfer swyddogaeth yn braf, oherwydd os byddwch yn newid y Lleoliad ble mae pethau, felly gadewch i ni ddweud fy mod yn newid y cartref i fod ar / cartref yn lle hynny, byddai hyn yn dal i fod wedyn yn dychwelyd / cartref, oherwydd mewn gwirionedd yn mynd ac yn edrych i fyny enw'r swyddogaeth, ac mae'n bydd yn rhoi i chi yn ôl yr URL ar gyfer hynny. Felly, rhyw fath o ar y rhagdybiaeth eich bod yn yn fwy tebygol o newid lle mae pethau yn, na enwau'r swyddogaethau. Gallwch ddefnyddio hyn mewn gwirionedd URL neis ar gyfer swyddogaeth. Ac un peth i fod yn ymwybodol o hynny ychydig yn anodd, yw eich bod yn meddwl eich gallai unig ffoniwch ailgyfeirio ar y URL ar gyfer, ond mewn gwirionedd pob un o'r llwybrau yn cael i ddychwelyd rhyw fath o destun a HTML, felly mewn gwirionedd yn rhaid i chi dychwelyd yr ailgyfeirio galwadau. Fel arall, byddwch yn cael rhywbeth annilys am beidio â dychwelyd llinyn, gan fod pob un o'r rhain yn rhaid i ddychwelyd y HTML rydych mewn gwirionedd yn awyddus i rendro. Ac felly, pan fyddwch yn ffonio y ailgyfeirio, mae'n eich ail-gyfeiriadau at y dudalen, ond mewn gwirionedd mae'n dychwelyd y HTML mae angen i chi weithredu hynny ailgyfeirio. Ewch yn ôl i'r dudalen gartref. Felly mae gennym y ddwy farn wahanol. Mae gennym y farn cartref. Neu, mae'n debyg y dylwn i ddweud templedi. Mae gennym y ddau templedi, templed cartref sy'n yn dangos pob un o'n swyddi, a Yna, mae gennym y peth ad, a phan fyddwch yn clicio ar y post, mae'n mynd i lwybr newydd o fewn y Fflasg, ond nid yw hynny o reidrwydd yn gwneud llwybr cael templed cyfatebol. Nid oes rhaid i chi weld unrhyw beth, ond gallwch dal i cael y gwaith hwn yn mynd ymlaen tu ôl i'r llenni. Ac yna byddwch yn cael eich ailgyfeirio yn ôl i'r dudalen gartref. Ac yn sicr, mae'n hawdd i weithio mewn rhai CSS brafiach i mewn i'r templed ac yn gwneud hyn yn edrych yn llawer brafiach, ond mae pob un o'r prif resymeg sydd yna yn y Python. Unrhyw gwestiynau am yr enghraifft honno? Rwy'n gwybod bod llawer o pethau gwahanol yn digwydd yno, llawer o bethau nad ydym wedi gweld o'r blaen, ond fel unrhyw beth. Yeah. GYNULLEIDFA 1: Oes rhaid i chi wneud unrhyw beth arbennig i prysgwydd data sy'n yn dod i mewn oddi wrth y ffurflen? Sylwais ydych newydd ei ddweud "creu," EZRA ZIGMOND: Yeah, felly dyna mewn gwirionedd, mae hynny'n bwynt da iawn. Felly, y cwestiwn oedd, a ydych Mae angen i wirio a gwneud yn siŵr bod y data yn ddilys, ac yn gwneud unrhyw fath o sgwrio i wneud yn siŵr ei fod yn ddilys, oherwydd fel y gwelwch yma, Dydw i ddim yn gwneud hynny. Felly, gadewch i ni weld beth sy'n digwydd os byddaf yn postio rhywbeth wag. Felly, bydd yn mewn gwirionedd yn unig yn gwneud swydd wag a llenwi'r datetime. Felly, mewn gwirionedd, mae'n debyg y byddech eisiau gwneud rhywbeth fel, efallai nodwch os teitl yn hafal i llinyn gwag, yna peidiwch gwneud hyn. Neu, dim ond ei wneud os bydd y teitl yn yn hafal i llinyn gwag. Felly nid yw'n mewn gwirionedd yn awtomatig yn gofalu am y sgrwbio i chi, felly mae angen i chi wneud hynny. Yeah, cwestiwn da. GYNULLEIDFA 2: A yw'n prysgwydd i'w chwistrellu dilyniant? Wyt ti'n gwybod? EZRA ZIGMOND: Gobeithio, peewee yn gwneud hynny. Yr wyf yn credu y byddai'n sicr yn 'n bert llyfrgell ddrwg os nad oedd yn gwneud hynny. Nid wyf yn gwybod yn union. Byddai'n rhaid i mi edrych ar y holi ei fod yn ei gynhyrchu. Credaf, os wyf yn teipio mewn blog post y math yna o edrych fel ymosodiad pigiad SQL, rhywbeth fel hyn, os yw hyn yn debyg i faes cyfrinair neu rywbeth, efallai y byddwch yn gwneud rhywbeth fel hyn. Rwy'n credu y bydd hynny'n dal cael eu postio yn llythrennol, ond credaf fod peewee yw'n gwneud rhyw fath o sgwrio y data cyn iddo mewn gwirionedd executes hynny. GYNULLEIDFA 1: Bod cae testun yn cynllunio i gymryd testun plaen, dde? EZRA ZIGMOND: Yeah, y mae. Yeah. Felly, credaf fod pob un o'r, felly mae hwn yn ymddygiad cywir, a fydd yn gwneud hynny, ond credaf fod peewee gobeithio, yn gwneud rhyw fath o amddiffyniad ar eu pen. Ac os ydych yn dymuno gwirio ddwywaith hynny, yn ffyrdd pan fyddwch yn cynhyrchu ymholiad. fel nad oes rhaid i chi chyflawni yn uniongyrchol. Byddai'n rhaid i mi gymryd edrych ar ddogfennau, ond alli 'n weithredol weld y SQL ei fod yn cynhyrchu, ac yn edrych ar hynny, ac yn gwneud yn siŵr ei fod yn dianc pethau. Rheswm arall pam y gallech chi am edrych ar y SQL bod peewee yn outputting, yw os pethau yn ymddangos i fod yn mynd yn wirioneddol yn araf, gallwch fwrw golwg a gweld beth 'i' wneud mewn gwirionedd, am ei fod weithiau hawdd i ychwanegu ddamweiniol i mewn, y ffordd rydych yn ei ysgrifennu, gallwch ddamweiniol gael ei dewiswch y gronfa ddata gyfan yn gyntaf, ac yna gwneud rhywfaint o weithrediad fath ar hynny, pan ydych yn wir i fod i ddewis is-set. Ac felly, os nad yw pethau'n hollol mynd yn iawn, mae'n dda i gymryd golwg ar gais sydd mewn gwirionedd wedi cael ei gynhyrchu. Yeah. GYNULLEIDFA 2: Pan fyddwch yn dechrau y tro cyntaf, eich rhoi yn y porthladd fel 5000. EZRA ZIGMOND: Yeah. GYNULLEIDFA 2: A yw'r ball gyda peewee, ynteu a yw'n rhywbeth y gallwch ei newid? EZRA ZIGMOND: Ie, felly mae'r porthladd yn ddiofyn gyda Fflasg. Os ydych yn rhedeg heb gan nodi unrhyw beth, bydd yn gwneud hynny yn awtomatig. Credaf, byddwn i'n cael i ddyblu wirio hyn, ond gallwch nodi hynny yn y app.run, Yr wyf yn meddwl y gallwch chi wneud rhywbeth fel, porthladd = 8080. Gadewch i ni roi y cynnig arni go gyflym. Yeah, fel y gallwch jyst nodi port = 8080, a bydd yn rhedeg yno, yn fy marn i, os ydych eisiau rhedeg ei ar y DRhA, nid wyf wedi ceisio hyn allan, ond yr wyf yn credu, os ydych rhedeg ar borthladd 8080, byddech yn ôl pob tebyg yn gallu i gael mynediad at y gweinydd, yn union fel roeddech ar gyfer y wefan. Yeah, ond mae'n hawdd i newid hynny os ydych yn gael unrhyw fath o fel porthladd-anfon ymlaen pethau y mae angen i chi ei wneud. Unrhyw gwestiynau eraill? Yeah? GYNULLEIDFA 1: Felly, gwelais yn eich modelau sydd, fel y soniasoch, mae'n rhaid i chi bennu'r gronfa ddata ar gyfer pob gwrthrych. Ydych chi'n digwydd gwybod, yn gwneud sy'n ei gwneud yn hawdd iawn os ydych yn cael llawer o gronfeydd data SQLite eich bod am ei ddefnyddio ar gyfer un app sengl ar y we, eich bod yn gallu jyst nodi criw gwahanol rai o yn eich model? EZRA ZIGMOND: Yeah, gadewch i mi yn agor bod hyd go gyflym. Felly, rydych yn ei ddweud, os ydych am gael criw o wahanol rhywbeth, efallai ei hoffi a'r myfyrwyr, ar gyfer rhai reswm, rhywbeth fel 'na? Yeah, felly yr wyf yn meddwl bod byddwch yn dal, pob model Byddai'n rhaid i dal i gael dim ond un gronfa ddata a briodolir iddo, ond os ydych eisiau cael gwahanol fodelau sy'n wedi gwahanol wrthrychau gronfa ddata a bennwyd iddo, gallech bendant yn gwneud hynny. Felly, os wyf yn creu newydd, rhywbeth fel hyn, ac yn awr mae hyn yn fyfyriwr sy'n yn edrych yn rhyfedd fel swydd blog, Gallwn i bennu bod y cronfa ddata yn hafal i db_2 yma. Felly, yr wyf yn credu mai dyna'r prif ffordd y gallwch chi wneud hynny. Cool. Unrhyw gwestiynau eraill? Felly, dim ond i orffen i fyny ychydig bit, dyma rai adnoddau, a bydd y sleidiau hyn yn cael eu postio ar-lein er mwyn i chi mewn gwirionedd yn cael i cysylltiadau hyn. Mae'r adnoddau gorau yn wirioneddol y dogfennau ar gyfer Fflasg a peewee eu hunain. Maent yn ysgrifennu yn dda iawn, yr wyf yn meddwl. Felly, mae'r wefan Fflasg yma, ac mae ganddynt tiwtorial CychwynChwim sy'n Bydd cerdded drwy tebyg pethau at yr hyn yr wyf yn cerdded trwy, ond os ydych am unrhyw fath o adolygiad o'r pethau yr wyf yn mynd drosodd, neu os ydych yn meddwl bod yr eglurais rhywbeth mewn ffordd ddryslyd, bydd ganddynt enghreifftiau tebyg yno. Peewee Mae dogfennaeth, a mae ganddynt tiwtorial CychwynChwim sy'n mynd dros y prif baramedrau y byddech am ei ddefnyddio. Felly, y pethau yr wyf yn siarad am â y diffygion unigryw, ac yn nodi, y gwahanol fathau o feysydd sy'n gallwch ddefnyddio, byddai'r rheiny i gyd yno. Hefyd, os oes gennych cwestiynau am peewee, ac rydych yn eu postio ar stackoverflow, y dyn a wnaeth peewee mewn gwirionedd mynd ymlaen ac yn ateb rhai weithiau. Os oes gennych gwestiwn, gobeithio, bydd yn gallu ei ateb, oherwydd ei fod yn ysgrifennodd yr holl beth. Rwy'n credu bod hynny'n popeth Roeddwn i eisiau i dalu. Diolch am ddod allan.