[Musika jotzen] EZRA Zigmond: Kaixo, denek. Irteten gaur esker. Mintegi hau Python da " Web Flask aplikazioak. " Beraz, noa den hitz egitera zergatik pixka bat Baliteke Flask erabili egin nahi duzu Python web aplikazioak, alderantziz, beste batzuk esparruak daude, bezala Django, zein da gehien ezagun. Azpititulua da "eta peewee, "eta horrek zerbait da Nola buruz hitz egin dugu to datubaseak elkarreragin. Benetan polita egiten du. Beraz, hona hemen rundown azkar bat besterik ez zer gehiago joan nahi dut. Beraz, lehenik eta behin, diapositiba bat besterik ez hori quickstart izango da, hau da, guztia nola lortu sortu zure ordenagailuan. Noa erakutsiz hau nire tokiko Mac makinan, Hori besterik ez delako da, non egin dut aurretik, gehienak eroso nago, baina hau ez da behin betiko CD50 IDE posible. Beraz, horren ondoren, nahi dut aurkeztu Flask zer da, eta konbentzitu duzu zergatik behar duzu erabili da lehenik eta behin. Ondoren, azkar bat eman dut zer duzu adibide ahal Flask, adibidez azkar bat egin zer peewee ere egin dezakezu, eta, ondoren, erakutsiko dizu I más a osoa adibidez aplikazio bildu dut dugun oinez bidez elkarrekin dezake. Eta, azkenik, in azken diapositiba, daukat duzula begiratu baliabide batzuk Informazio gehiagorako online at. Hau ez da osoa Flask nola erabili tutoretza. Eta utzi Espero dut galderak egiteko denbora pixka bat. Edonork lokalean ikustea, besterik bezala, oihu erdian Edozein zalantza izanez gero. Beraz, instalazio azkar gauza, batera jarraitu nahi baduzu, edo hau eskuratu nahi baduzu zure makina propioa sortu, Egon Python 2.7.10 erabiliz noa. Flask lan egiten dituzten Python 3, baina gustatzen Python 2 erabiliz, ez da delako Zenbait Python paketeak ez 3-ekin lan oraindik. Duzu PIP instalatuko bada, horrek Python pakete kudeatzaile bat da, Uste dut zure Python bada handiago edo 2.7.9 berdina, Dagoeneko instalatu behar duzu, da pakete hauek instalatzeko super erraza. Ez PIP instalatu dezakezu Flask, pip instalatu peewee, Ohi sudo besterik exekutatu behar duzu beraz baimenak lan. Eta, erabiliz gero a super Python bertsio zahar, Zure Python eguneratzeko gomendatzen dut, edo EasyInstall erabiliz PIP instalatzeko. Beraz, hurrengo galdera da, zer da Flask? Eta pentsatzen dut nik, lehen batean arrazoizkoa galdera nuen galdetu denbora luze bat da, zer web aplikazioa da? Hori delako hitz bat dudala uste asko bota inguruan dut ez dakit. Eta uste onena duten I Web aplikazio bat zer den adibidea, Benetan da CS50 Ogasun, non ez da benetan webgune bat besterik ez, baina zerbait duzula ezin Sort elkarreragin. Badira erabiltzaile-kontuak eta gauza ugari eta desberdinak. Beraz, non zehazki marraztu zer webgune bat da arteko lerroa, eta zer web aplikazioa da, moduko arbitrarioak, baina ideia asmatu dut, Web orri bat baino zerbait gehiago da eta aplikazio erabilgarria da. Beraz, Flask esparrua da Web aplikazioak Python erabiliz egiteko. Eta zorionez, amaierarako Hori, zuk konbentzitu egingo dut Egia esan, ezin duzu zerbait idatzi duten CS50 Ogasun bezalako Python, erabiliz zein I PHP baino askoz hobea, pertsonalki bezala. Beraz, Flask da, llaman a microframework, horren bidez, Esan nahi ote da simple, baina hedagarria. Beraz, besterik ez ditu behar duzuna, baina ezaugarri gehiago nahi izanez gero, erraza da ekartzea ere. Baina besterik ez delako bat microframework, ez du Esan nahi dela soilik proiektu txikiak. Lotura bat hemen dioen daukat Obama hori erabiliko Flask 2012. urtean bere kanpaina webgunean, eta horrek, zorionez, abal bat zerbait da. Baina gauza dela I benetan Flask buruz nahi dela, ez du benetan egin Edozein zuretzat erabakiak moduko. Just delako gaude Web apps buruz hitz egiten, Konparatu Ruby on daukat Rails eta Django, biak ere esparruak handiak dira, baina biek hipotesiak egiteko nola nahi duzun datu elkarreragin, nola zure aurkeztea nahi duzu aldiz, eta behin betiko ari dira duten alderdi onak. Adibidez, Ruby on Rails For erregistro-sistema aktibo horixe du, hau da, benetan polita izan horrela, datu elkarreragin, baina Ruby erabili nahi izanez gero Rails, zu moduko ziola lotuta. Baina Flask batekin, ez dut gisa zuk erakutsi peewee batera, edozein dela moduko erabili ahal izango duzu datu-basearen nahi duzu, eta bakarrik dezakezu tira horretan Flask sartu luzapen gisa. Beraz, horregatik dut benetan Flask bezala, da hori da ez da egin hipotesi zuretzat oinarritutako gauza on, ez duzu behar benetan. Beraz, zergatik Flask erabili duzu? Abantailak dira, ez besterik core benetan ezaugarriak ditu txertatua behar duzula. Beraz, ez duzu kezkatu gauza osoa sorta bat ulertzeko ez duzula benetan behar. Ez daukazu kezkatu dute Ezaugarri itzaliz buruz ez duzula benetan behar. Eta, esan dudan bezala, super da erraza gehitu gauza luzapenak ez duzula. Horietako batzuk, Flask ditu beren eguneroko euskarri izena. Beraz, ez Flask deitua dena admin, bertan admin hori islatzen panel hori Django ematen du, horietatik bat bisuala modu polita ematen dizu zure webgunean kudeatzeko. Baina, berriro ere, ez bazaude zerbait simple egiteko, seguruenik ez duzu admin handi bat behar panel, beraz, uste dut hori super polita. Eta desabantailak dira, hori energia gutxiago behar duzu out koadroan. Beraz, lehen aldiz irekitzen duzunean ireki Flask, eta zure Python programan, Flask hasita idatzi besterik ez duzu inportazio *, edo dena delakoa, ez zehazki guztia lortuko duzu ezaugarriak duzunean baliteke nahi. Eta beraz, gehiago esplizituki duzu Nahi dituzun ezaugarriak zerrendatu. Beraz, hori desabantaila bat da, baina ez dut uste duten web txikiak eraikitzeko I like aplikazioak noa den erakusteaz duzu, ez da hori benetan arazo bat. Eta zer azken gauza da Ustezko, esan zein typo bat da, da ez direla gutxiago normalizatua Flask nola erabili konbentzio, besterik ez daude, askotan bezala delako Hori profesionalki erabili da pertsona aldean Django izateko. Beraz, zerbait begiratu nahi baduzu, "Nola egin behar dut x" Django ere, baliteke zuk aurkitu da. Ez da, diseinu ona ereduak erabili ahal izango duzu, baina Flask batera, da Sort joan zure erara, Bat besterik ez delako liburutegi nahiko txikiak. Beraz, horiek dira desabantailak, baina uste dut da oraindik liburutegi ona da erabiltzeko. Hargatik salto besterik eskubidea Flask sartu. Hau ez da behin betiko joan tutoretza osoa izateko, baina zuk ideia bat emateko da Gauzak nola egituratu behar, eta, beraz, eroso sentitzen duzu off eta dokumentazioa begira eta egindako gehiago aurkitzeko. Beraz, utzi ireki me benetan bat Lehenengo adibide errazak, eta erakusteko zer dela itxura du, eta gero dugu hautsi du behera pixka bat gehiago. Beraz, hau hemen, utzi exekutatzen get me. Beraz, gaur egun ez daukat nire eskaera lasterketak. Ireki Safari noa, eta nik nire ordenagailu honetan martxan. Beraz, ez dut besterik handiagoak hau egiteko. Baina localhost: 5000 Eta orain, oraintxe, hori guztia ez da, betiere, webgune horretan sartzen zarenean, bistaratzen da "Kaixo Flask," eta hori ez da super erabilgarria, baina uste dut cool da hori fitxategi txiki honetan hemen, web zerbitzaria aktibatuta daukagu hori zerbait inprimatzeko. Beraz, dezagun benetan begiratu Bigarren a kodea at, eta pixka bat hautsi du behera. Tamainaren guztiontzat hemen ona da? Beraz, zorionez, Oraindik zertxobait eroso Python erabiliz. Naiz suposatuz at garela begiratu daiteke Python du eta horren bidez irakurtzeko. Bada buruzko zalantzarik izanez ezer, halaber, ezin dut hori baino gehiago joan. Beraz, lehen lerroan, Flask batetik, inportatu dugu, Flask kapitalarekin "F" horrek guztiak moduko da Ezaugarri gakoa behar duzula. Idazten ari zaren, betiere fitxategia eta Flask erabiliz, Hori inportatu nahi joan zaren, duten gauza nagusiak ditu, besterik ez delako. Hurrengo gauza egiten dugu, dugun deitu funtzioa Flask hau, besterik gabe, Aplikazio objektu bat sortzea da, eta zu Beti hori egin nahi du. Eta gero, behera saltoka joan beheko azkar, zati hori da hemen, 'If_name _ == "_ main_"' zein da Python konbentzio moduko. Beraz, hau izango da zuk bakarrik bada exekutatu fitxategi hau zuzenean Python erabiliz exekutatu. Ondoren, app.run deitzen diogu, egingo den benetan aplikazioa hasiko dugu. Beraz, hori da egitura nagusia dela Edozein Flask aplikazioan izango duzu, da izango hau egin behar duzu Aplikazio = Flask (_name_), eta, ondoren, app.run. Beraz, bi gauza egin izan dut Hemen ere, ibilbide deitzen dugun daude. Beraz, hitz egin dezagun bideraketa pixka bat gehiago. Diapositiba itzuli egingo naiz. Beraz sakonena du Flask kontzeptu bideraketa da. Eta ideia da zuk funtzioak esleitzeko Python helbide partikularrak emateko Zure web orrialdean. Beraz, nahi duzunean ibilbide berri bat sortu nahi da, @ app.route hau erabili duzu Funtzio dekoratzaileak. Beraz, Ohituta bada Funtzio Python dekoratzaileak, Kontzeptu hau dela lets funtzio bat hartu duzu eta inguratzen beste zerbait. Beraz, benetan, dekoratzaileak zer honek, da behean funtzioa hartzen dela, eta informazio gehiago gehitzen da da, baina zer Flask benetan egin du hori gertatuko ez da super Ezinbestekoa da, baina zer da garrantzitsua, dela ibilbidea aurretik, zuk @ app.route hau jarri, eta, ondoren, Ibilbidearen puntu helbidea, Beraz, barra da zer egiten dugun ikusirik besterik zabaldu diogu web orrialdean. Beraz, hori homepage da. Besterik slash ibilbidea da. Eta, ondoren, funtzio hau duzu. Funtzio baten izena Nahi duzuna izan daiteke. Ez du izan behar, nahitaez, ibilbidea egin dute. Eta gero, edozein dela funtzioaren itzulera, funtzioak kate bat itzuli behar du. Eta katea ahal eduki HTML edo ezer, eta hori da benetan zer lortuko zure nabigatzailean HTML gisa itzuli zen, eta hori errendatuko da. Beraz, hori bera da hori adibide izan zen ran besterik ez dut, beraz, bisitatu slash dugunean, Hello World funtzio bat, deitzen da eta bertan Kate bat, Hello Flask itzultzen, eta hori lortzen pantailan inprimatu. Beraz, ez da beste adibide bat da, hau da, zarenean / kaixo, bistaratzen da Kaixo Word, bertan Egia esan, esan behar da, Hello World, baina dezagun asmoa zela intentional. Hargatik benetako azkar tira hori sortu. Beraz localhost / kaixo bazoaz, orain izango da beste zerbait inprimatu. Beraz, hori nola adibide azkar bat besterik ez da Bi ibilbide ezberdinak sor dezakezu. Beraz, orain arte, hori ez da super erabilgarria, Han ez da asko egin ahal izango duzu, Besterik ezin duzu hori guztia batera HTML orrien ezberdinak izatea, eta bisitatzen duzun jakin bat Orri kargatzen besterik ez da. Hargatik batzuk gehiago ikus-en erabilgarria gauza egin dezakezu. Beraz, gauza bat duzula izan Adibidez dudala bota nabaritu eman, ez dut app.run zuen (debug = True). Eta beraz, zer honek debug argumentu egiten da, denean zure web zerbitzaria exekutatzen duzun hori, Oraindik zure aplikazioa duzu, fitxategi bat aldatuz gero, izango da automatikoki Zerbitzu bat. Eta beraz, ez benetan izan nahi duzu berrabiarazi Python, hau da, super erabilgarria. Nik erakutsi ahal izango. Tira me my kodea bertan typo batera, eta asmoa typo han jarri zen nahita hezigarria helburuetarako. Hargatik gehitu atzera honetan. Beraz, orain esaten du Hello World. Gorde egingo dut. Eta tira dugu bada back up terminalean, ikusiko duzu esan hori berrabiatzea da, aldaketa bat detektatu delako, eta beraz, orain denean kargatu berriro orri hau dugu, Gauza zuzena inprimatu egingo du. Aratze super erabilgarria da. Era berean, edozein zalantza izanez gero hutsegite bat sort, beraz, utzi aplikazioaren kraskadura hau egin ninduen izatea da, ez kate bat itzuli. Beraz, dezagun besterik ez da itzultzeko ere ez arrazoi batzuk. Eta orduan, ikusten dudanean honetan orrialdea, besterik gabe, huts egingo du, baina zerbitzariak ez du besterik gabe, huts, hura benetan atzera super erabilgarria ematen dizu Denetik arrastorik gaizki joan. Eta zer da, benetan polita, hori Atzera arrastorik honetan urratsa edozein unetan, ireki izan duzu interaktibo bat Shell hemen, eta Ordena inprimatu zer aldagai begirada bat hartu nahi duzun. Eta beraz, arazketa da benetan kalkulatzen baliagarriak zer gertatzen da zure zerbitzari, baino besterik ikusten PHP zerbait 500 barne-a bezalako zerbitzaria error, hau da, super alferrikakoa. Gauza bat kontuan izan behar da, Hori da zure aplikazioa jarri baduzu online beraz, jendaurrean ikusgai da, zuk inoiz debug modua utzi nahi, Jende benetan delako kontsola dut hori erabiltzeko erakutsi kodea exekutatu duzu. Beraz, edozein bezala inprimatu ahal izango dute kode sekretuak han duzu, dute zehazki begiratu dezakezu zure webgunean nola lan egiten da. Beraz, benetan erabilgarria da probak egiteko, baina beti ziurtatu atera aurretik ezer argitaratzen online. Beraz, zerbait erabiltzen ari zarela PHP bezala, ez dute ideia hori da hori gainditu ahal izango duzu Web orrialde arteko informazio Informazio benetan jarriz URL, eta hori lortzeko, eskaera bat da ere, baina Flask ere, benetan dezakezu Sort horrelako zerbait egin, duela ibilbide bat edukitzea aldagai bat da barnean. Beraz, bada honetan Adibidez hemen pantailan, hori da, ibilbide bat egin behar dugu ('/ Kaixo /'), eta beraz, bisitatzen baduzu / Kaixo / zerbait, zerbait da benetan lortu betetako joan name aldagai sartu. Eta konturatu funtzioa duten ibilbidea dator parametro hartu ditu izendatzeko, benetan izango da, beraz, emateko funtzioa pasa. Eta gero, behin Oraindik funtzio horren barruan, atsegin hori tratatzeko dezakezu normal Python aldagai bat, eta, beraz, ondoren, izango da inprimatu Kaixo, eta hura egingo izenean bete erabiliz kate formatua. Beraz, zati aldakorra gehitzeko routing batera, xebroi markatzea erabiltzen dituzu. Eta, aukeran, erabili ahal izango dituzu zer ari converter bat deitzen. Eta, beraz, hau jartzen badituzu puntuek dituzten oharpen, zehaztu dezakezu, hori da Int bat, edo mugikor bat, edo bidea, eta automatikoki bihurtzeko. Halaber, bihurtze egin ahal izango duzu Python funtzioaren barruan, besterik Aktoreen bat erabiliz, baina batzuetan bada int bat dela ziurtatu nahi duzu, hori jarri ahal izango duzu bihurtze han ere erabakiko du. Hargatik, tira adibide bat arau aldagai batzuk. Beraz, hemen, hau bera oinarrizko ditu Flask import from the egitura Flask, aplikazio = Flask (_name_), eta ondoren, bukaeran da martxan. Bi horiek baino gehiago ditugu aldakorreko ibilbide hemen. Eta lehena, da Bat egin dudala erakutsi diapositiba, hain zuzen, hori ere kate baten izena hartzen duen besterik eta inprimatu egingo Kaixo, izena. Eta gero, bigarrenean bihurtze erabiltzen du bat. Beraz, hau automatikoki bihurtzen da int bat, eta, ondoren bikoiztu int du, eta inprimatu dela. Eta, ez dugu inolako egin bere baitan bihurtze Flask arduratuko baita delako. Hargatik lasterketak honetan. When Flask bat duzu Aplikazio lasterka, Kontrolatzeko-C dezakete bertan daudelarik zerbitzari exekutatzen gelditzeko. Eta gero, aldagai ihes egingo dut. Hargatik joan localhost / kaixo / ezra joan eta zorionez, hau kaixo esan dit. Beraz, hartu nire izenean da, aldagai batean ibilbidea, eta bete du hemen ere. Beraz, era berean, azkar bat erakutsi dut bikoiztea adibide. Beraz bazoaz to / bikoitza / 3, egingo 6 inprimatu. Beraz, hau hartu arretaren guretzat bihurtzeko. Beraz, ere egin dezakezu berarekin karroza, eta zerbait berezia, antzeko zerbait zehaztu behar baduzu bide bat, hori barrak onartu aukera ematen dizu, baina horrek ez luke arazo bat izan ohi da. Orain arte ez dugu, oraindik ere, besterik ez dira itzuli kateak, eta hori ez da oso interesgarria. Egia esan, ezin dugu itzultzeko literal HTML katea. Beraz, kode zerbait sartu ahal izango dugu antzekoak b-etiketa da lodia egiteko, baina denbora gehien duzu Egia esan, ez al HTML kodea idaztea izango da Zure Python kodea ere. Benetan narratsa daukala, eta ez da une egokia da. Flask ahalbidetzen bereizteko gurekin etorri Zer ari Template deritzo sartu HTML, eta pentsatzen ari zaren, hala bada MVC eredua dagokionez Oraindik ez duzula ezagutzen, zorionez, ez lan egitea CS50 Ogasun pixka bat, Python fitxategien pentsa dezakezu Controller, non gehiago izateaz gain edozer elkarreraginean daude Datu eredu izan ditzakezu. Eta gero egindako deia luzatu diete Views eta informazio View horretara pasatzen den informazioa bete HTML hasi behar duten. Eta horiek Views deitzen dugun klasean Templates dira. Beraz Flask Python beste erabiltzen du modulua automatikoki geratuko da instalatu denean Pip instalatu duzun Flask Jinja, izeneko lets horiek gehitzen duzunean HTML oharpenak ikusten duzu pantailan, aukera ematen dizu baldintzazkoak bezalako gauzak jartzea! eta HTML sartu begiztak. Beraz, nola duzun bezala pixka bat ikusten da PHP erabili daitezke HTML fitxategi batean, baina hori besterik ez denean matrazea zerbitzari balioko du gora HTML fitxategiak orduan, templating motor hau exekutatu izango da eta honen bidez analizatu eta gauzak bete. Beraz Flask render_template funtzioa du behealdean duzula ikusiko hemen. Eta beraz, orri honetara, hura hello.html Txantiloi hau lekarkiokeena, eta, ondoren, HTML orri hau bete. Hargatik errealean hau exekutatu nahiko luke azkar, eta ikusi zer itxura, eta gero baten bidez joan naiz xehetasun gehiago pixka. Beraz, zure Txantiloiak joan txantiloietara karpeta batean joan. Automatikoki barruan begiratu Txantiloiak Txantiloi horretarako karpetan. Hargatik ireki honetan eman. Beraz, templating adibidez exekutatu dut. Beraz, joan nintzen / kaixo / ezra nahi izanez gero, izugarria dauka, obnoxious karpa etiketa hori jarri dut. Oso polita da, oso dinamikoa. Fan handi bat naiz. Baina zer gertatzen da Besterik ez dut, / kaixo nahi? Beraz, besterik ez dio Hello World. Ez nuen pasatzen da izen bat, eta bete ere automatikoki. Beraz, ikus dezagun nola egin zuen, eta nola karpa hori kendu ahal izango dugu, agian. Beraz, hemen, hau da Ordena adibide interesgarri bat, Zara nola switch ezagutzen bada adierazpenak hizkuntza batean lan egiteko. Esan hau da Ordena bezala, bidez erorketa baten moduko hori, non benetan bi erantsita duzu funtzio bera ibilbide ezberdinak. Beraz, / kaixo ibilbidea erantsi ditugu eta du / kaixo / name Kaixo ibilbidea, eta zehaztu dugu using-- Python aukera ematen dizu Zehaztu funtzio lehenetsia argumenturik beraz, bada ez izen ez da hain joan gara, besterik / kaixo, automatikoki iragazi egingo da izenari ere ez da berdina. Beraz, ondoren, errendatu gara Name = Izen bereko txantiloia, beraz, izango da izen parametroan pasa ezazu izen funtzioak parametro honen berdina, Txantiloi sartu. Hori oraindik ez du argitu nola da Hello World inprimatu ala ez erabakitzeko, edo nire izena inprimatu. Beraz, dezagun benetan begiratu Txantiloi bertan sartu, ikusi eta non hori datozen. Beraz, Txantiloi honen barruan, dugu benetan baldintzapeko logika batzuk izan, pertsona batzuk litzateke argudiatzeko, benetan Ez luke baldintzapeko asko izan logika zure Template bere baitan. Barruan gehiago izan behar da Controller, baina adibide honetan Zerbait nahiko txikia da. Hortaz, hona hemen, egiaztatu dugu, izen bada, beraz, name bada ez da bat ere ez da berdina, izen bat da, benetan bada gainditu, eta gero egingo dugu Kaixo esateko, izen eta goiburua eta karpa, HTML normal hori guztia, bestela, ez dugu inprimatu Kaixo, World besterik normalean. Beraz, pare bat gauza hemen nabarituko templating du Ideien buruz, dela, horiek guztiak baldintzapeko adierazpenak, Sort nahi nola PHP dugu PHP batzuk txertatu nahi duzun, Galdera baino gutxiago-erabili duzu marka, ordenatzeko analogoa da hemen nirekin {%. Beraz, hemen, gure baldintzapeko kodea ditugu. Eta gero, zuk benetan nahi literalki zerbait ebaluatzeko, eta inprimatu it out pantailara, zuk the giltza bikoitza erabili. Hortaz, hona hemen giltza bikoitz, eta zehaztu dugu izena, beraz, horren barruan, ebaluatu egingo da aldagai izena, zein onartu zen urtean hasita template funtzioa errendatu, eta ez bakarrik inprimatzeko baino out, dugu got horiek kentzeko bada, litzateke besterik hitza inprima "name". Beraz, zerbait ikusi ahal izateko da. Beraz, beste gauza bat oharra da, guk erabili nahi render_template funtzioa, Egia esan, ez dugu nahi inportatu egiten Flask from esplizituki. Eta horren adibidea da Flask of modularitatea du, Ez duzula izan inportatu ez duzu hori gauza. Besterik ez dezakezu ekarri funtzio benetan Zer behar da, hau da, batzuetan polita, beraz, ez duzu Funtzio horiek guztiak izan behar inguruan eserita ez zarela erabiltzen ari, baina, aldi berean, ahaztu duzu zuk hori bada render_template inportatu behar, baliteke zuk abisua jasotzen Hori al dakizu hori buruz utziko. Beraz, hori templating da. Beraz, agerian dugu nola den web orrietan sinpleak egiteko, eta logika apur bat gehiago gehitzeko da, aldagai routing dagokionez. Oinarritutako gauza desberdinak egiten duzun aukera dago zer URL joan nahi, eta, gainera, gero, eman zentzu HTML pixka bat gehiago zenbat gauza bihurtzeko hartu nahi duzu dagokionez. Ez daukazu guztiak jarri Zure HTML zure Python ere, baina nahiko askoz for Web aplikazio guztietan, Nolabaiteko nahi ari zaren joan Datu-ereduaren berarekin lotutako. Eta beraz, tradizioz, hau litzateke SQL datu bat antzeko zerbait izan. Eta besterik elkarreragin dezakezu SQL zuzenean. Python ditu, uste dut deitzen. SQLite 3. Zuk besterik inporta ditzake SQLite 3 eta SQL kontsultak zuzenean exekutatu, baina ez dut zuri buruzko jakin, baina ez dut nahi, besterik ez, idatziz SQL kontsultak. Benetan jende asko izaten luze eta konplexua. Eta, beraz, zerbait Erabili nahi dudana da zer da ORM bat, hau da, bezala ezagutzen objektu-erlazionalak mapping. Eta bat-puntua objektu-erlazionalak mapping, da, ez direla bi ezberdinak Modu duzu datu pentsatu daiteke. Beraz, adibide Malan Irakaslea ohi klasean erabiltzen ditu, Excel taula, non da Errenkada horiek eta zutabe horiek duzu, eta hori da benetan baliagarriak nola SQL saltzen diguten eta nola elkarreragin berarekin, baina Egia esan, hori da beste modu erabilgarria pentsatu batzuetan, Klaseak eta objektuak dagokionez. Beraz pentsatzeko ordez taula bakoitzaren edukitzea Lerro honetan duela zenbait Informazio, benetan dezakezu pentsatu ahal izateaz gain mahai bakoitzean mota bat, eta gero instantzia guztietan Klase propietate batzuk ditu. Beraz, adibide honetan, instantzia klasearen taulako errenkada dira, eta, ondoren, Jabetza bakoitzak litzateke mahai zutabe bat izan. Beraz, ORM etorri zait gustatzen erabili da peewee deitzen. Da benetan txiki, ordenatzeko Flask bezala. Ondo joan direla elkarrekin uste dut, baina badira beste ORMs asko hori erabili ahal izango duzu. One more popular bat da SQLAlchemy bezala ezagutzen, eta ezin dut gogoratzen zergatik I jatorriz SQLAlchemy baino peewee aukeratu zuen, edo zuk zergatik dut esango nuke Uste onena bat da, baina ari gara hau erabili joan bat nola erabiltzen den ezagutzen dudalako. Beraz, galdera da, zergatik behar ORM bat erabiltzen du traba, Horren ordez, besterik gabe, zuzenean SQL kontsultak idazten? Eta, kasu onena dela uste dut, da ez duzula benetan SQL kontsultak idatzi behar. Askoz ere errazagoa da, erakutsi dut gisa, to Aukeraketa bezalako gauzak egin, txertatze ezabatzeko, batez ere, taulak sortzea. Askoz errazagoa Klase egitura bat idatzi, da egitura baino bat sortu Mahai-adierazpena, baina gauza bat jakitun izan da, hau da ORM du saiatuko da Irudikatu zer gehien SQL kontsulta eraginkorragoa izango litzateke, baina, batzuetan, oker daukala. Eta Oraindik batez ere database handi batekin lanean, Kontsulta bat nabarituko ahal izango duzu Hori izango da azkar exekutatzen behar, benetan luzatzen ari da. Eta kanpaia azpian begiratzen baduzu nola at ORM da hori interpretatzeko SQL sartu, beharreko zerbait egiten zitekeen benetan barregarria, besterik delako Sort Zure asmo oker Gestured. Eta, han aldiz non egon Izan dut jaramonik ez egiteko, eta besterik exekutatu nire kabuz SQL kontsultak, besterik modu bitxi bat da analizatzean izan zelako. Beraz, ez da batzuk Buruak, besterik gabe, modu batean biltzen dela zure SQL sartu behera adierazpenak. Beraz, goazen azkar begiratu super at datu-eredu baten adibide sinple bat baliteke erabiltzen dituzu. Beraz, hau da Python kodea, eta beraz, Egin nahi duzun lehenengo gauza da peewee inportazio *. Beraz, Flask ez bezala, bertan duzu banakako modulu horiek guztiak, eta Flask inportatu nahi, eta Txantiloi bat, eta beste batzuek idatzi geroago ikusiko dugun, peewee batetik, Besterik ezin duzu dena inporta, liburutegi nahiko txiki bat delako. Beraz, egin nahi duzun lehenengo gauza da, benetan datu-base objektu hau sortzeko. Beraz, behar duzu db = SqliteDatabase, eta, ondoren, zure datu-basearen izena da. Eta, hori benetan datu-base objektu bat sortzeko elkarreragin dezake, peewee batera. Eta gero, benetako daukagu eredu hori sortu nahi dugu. Beraz, mahai sortu nahi dugu. Beraz, peewee barruan, klase bakoitzak Bere mahai Egin zure datu-basearen barruan. Beraz, klase guztiek base eredua oinordetzan, eta kapital M eredua da hori peewee definitutako zerbait. Beraz, zure ereduen guztiak egin beharko lukete Beren superclass altuena gisa oinordetzan, batetik oinordetzan behar dute eredua, baina zer da benetan cool, da zuk benetan izan daiteke zure modeloak elkarrengandik oinordetzan. Eta denbora asko, zure datuen ereduak ez du nahitaez herentzia hierarkia polit bat egiteko, baina Nondik dute non egin, benetan polita da, eredua izan delako elkarrengandik berezko. Beraz, klase honetan definitu dugu 'Ikasle,' eredu bat KDEko, eta hiru ezaugarriak ditu. ID bat du, hau da, PrimaryKeyField bat, eta horrek hori baldin eta zerbait da peewee arabera, izen CharField bat da, eta nota bat IntegerField da. Beraz, hau daiteke edo ez izan nola CS50 benetan gordetzen guztiak Ikasleen kalifikazio. Ez da, baina, hau da, nola egin nahi nuke. Eta gero badu, barruan Klase honetan, eta honi zerbait egin dezakezu Python, habiaratutako klaseak izan dezakezu. Eta hau zerbait da hori beharrezkoa peewee arabera. Beraz, klase Idatzi honetan, egin behar duzu datu-basea dela zehaztu behar objektuaren berdina Goian sortu genuen hori. Eta hau dio fitxategia zer mahai hau da benetan behar jasotako joan. Beraz, hori duzu zerbait da to barruan zure ereduen guztiak egin. Besterik ez duzu zehaztu Idatzi klase honen barruan horretara db berdina da. Beraz, zer egin ohi dut, baldin eredu ezberdinak sorta bat, da base bat behar dudala eredua, ohi dut deitu besterik ez "oinarrizko eredua" Hori meta klase ditu, eta PP berdina database ezartzen du. Eta gero nire ondorengo ereduen guztiak egingo base klase hori oinordetzan. Eta gero, ez dut kezkatu meta class ezartzeko. Beraz, hau benetan lortzen denean konpilatu behera SQL adierazpen bat sartu, itxura gaizto gauza hau atsegin du behera Hemen, "Sortu taula ikaslearen osokoa, "Edozein dela. Eta, laburragoa dela uste dut, SQL kontsulta hau hementxe, baina begiratzen baduzu class honetan hemen ikusi ahal izango duzu zehazki zer ari den gertatzen. Zer esparru mota ikusi ahal izango duzu badira, zer ari dira deitzen dira, eta beraz, uste dut Python kode hau begira askoz gehiago baino irakurgarri SQL kontsulta hau idazten saiatzen. Beraz, ahal izateko benetan datu-basea erabili, Python barruan bertara konektatzeko behar dugu. Beraz, izeneko funtzio bat idatzi ohi dut bi gauza egiten duten initialize_db. Hartzen basean da Objektu db da eta konektatuko da bertara, eta horrek bakarrik irekiko da datu-basera atala ireki. Besterik arren exekutatzen ari bazara Webgune makina lokalean, Ez da akordio super handi bat kezkatu konektatu eta deskonektatzeko buruz, exekutatzen ari bazara baina it webgune batean, zuk Ziur dela eta, erabiltzaile bat egin nahi konektatuko da bertara, noiz itxi dute Webgunean, deskonektatzeko, bihar-you ez konektatutako jende mordo bat Zure datu-basea guztiak aldi berean. Eta gero, duzunean datu-basera konektatu, db.create_tables deitu nahi duzu, eta eredu zerrendatu nahi duzuna egiteko taulak sortzen. Beraz, hemen, besterik ez dut nahi sortu da ikaslea horretarako. Eta gero, zer da garrantzitsua, da Zehaztu seguru = True denbora gehien. Beraz, zer adierazpen hau eginen, dela mahaiak sortzen Ikasle eredua, baina bakarrik mahai hori ez badu Dagoeneko sortu dira. Hori da seguru zehazten. Beraz, ezin izango da Gainidatzi zure dagoen mahaia, Berri bat baino ez da sortuko du mahai bada ez ez bata ez da. Beraz, ezin besterik sortzen duzunean taulak behin SQL erabiliz. Eta gero, datu-basea jesartzea ez, eta, ondoren, aldi bakoitzean konektatu, baina normalean to polita da create_tables deialdi honetan jarri, beraz, hori inoiz ezabatzen baduzu, zure datu-basea zure web exekutatzen baduzu Aplikazio berriro, birsortzeko izango da. Beraz, ziurtatu segurua zehazten da egia izan, edo zure datuak besterik aurkituko duzu ohitu aldi bakoitzean clobbered. Eta gero, ezin deitu besterik ez duzu initialize_db ezartzea konexio bat, eta sortu Beharrezkoa izanez gero, mahaiak. Beraz, gauza ohikoena hori egin nahi izango duzu, edo hain gauza komun bat, da gauza benetan txertatu Zure datu-basean sartu. Eta orain, baino beharrik txertatze idazteko INTO guztiok batera adierazpena balioak zehaztu, daiteke benetan deitu Funtzio ikaslea klase gainean. Beraz, klase bat sortzeko erabiltzen duzun hori eredua KDEko, hau sortzeko metodoa du. Beraz, klase name.create egiten duzu, eta parametroak zehazten duzunean to gainditu nahi duzula. Beraz, ikasle batzuk gehitu nahi badut Gure CS50 kalifikazioa book adibidez, David dut jarri, nork du bat Oso ona kalifikazioa, 95 bat du. Eta neure burua, ez da egiten duten hain ongi CS50, ez daukat 50 a. Eta, beraz, buruz gauza polita sortu funtzioa zer honek, da agerraldian itzultzen dela, edo Ilara, sortu duen mahai epean, eta, beraz, gero batean gorde duzu aldakorra, eta horrekin batera lan geroago. Inguruan alda dezakezu, eta horrek Adibide bat erakutsi dut. Ohartu ez ez dut NAN zehaztu egin beharko, da geroztik delako PrimaryKeyField, automatikoki Kontatzailea da ez baduzu, zehaztu du. Eta, hain zuzen ere, seguruenik duzu behar ez zehaztu, ustekabean agian delako norbaiten NAN gainean idazteko. Eta egin nahi duzu Ziur berezia dela. Gehien Beraz, egia esan, Egin nahi duzun gauza komun, hau da, ziurrenik, hautatu egindako Una vez basea ez betetzeko Informazio asko izan badira ere. Eta, beraz, dena lortu nahi baduzu, beraz select izar baliokidea ikasleak adierazpen batetik, besterik ez litzateke izango student.select. Eta emango dizu back array bat Ikasle guztiek bertan objektuekin batetik bestera joateko, zuk nahi duzun. Gauzak eskuratu ahal izango duzu hori. Eta denbora gehiena, zuk Ez besterik hautatu egin nahi, benetan zerbait zehaztu nahi. Eta, beraz, kate ahal duzun elkarrekin funtzio deialdi horiek, kate nola egiten duzun bezala elkarrekin SQL adierazpenak. Beraz student.select egin dezakezu (). Bertan Adibide honetan. Eta gero, ahal duzun baldintzak zehaztu, besterik Python normal erabiliz Gauzak ikusteko Booleans. Beraz, kasu honetan, nahi duzun nahi duzuna hautatzen ari mugatzeko, non student.grade 50 berdina da, eta student.name Ezra berdina da, beraz, hori izango da besterik ez get me atera. Eta konturatu, inork benetan txantxetako kontua da hemen , zehaztu nahi baduzu eta / edo bat edo / edo, Python ere, normalean erabiltzen duzun, Hitza "eta" egia esan, uste dut, baina hemen ampersand single erabili duzu, hau da, normalean bitekin operadoreak, baina kasu berezi honetan, besterik modu peewee egiten du, bakar erabili duzu ampersand zehazteko "eta". Hori da, zerbait I, nahasi egingo up asko, baina ez da etorri sortu Hori askoz praktikan. Eta gero, behin guztia duzu Datu-basean daudelarik ikasleei, Behin egin duzu Oraindik hautatu eta zure higadura edo dena delakoa, foreach begizta bat erabili ahal izango duzu, besterik Python normal bezala, Edozein Iterator moduko batekin edo edozein array moduko batekin. Bana dezakezu, s student.select in (). d re (Student.grade <75), eta, beraz, hau izango da mahai batean ikasle bakoitzaren zehar batetik bestera zeinen kalifikazioa 75 baino txikiagoa da, eta horrek Kasu honetan, besterik ez da oraindik niretzat. Eta gero, zerbait egin izan duzu barruan begizta, bezala bidali email bat eta esan dit benetan Nire arazoa ezartzen piztu. Beraz, beste gauza bat egin ahal izango dituzu egin, oso erraza da mahai barruan ilaratan eguneratzeko. Beraz, gogoratu back hemen, Zure naizenean sartuta, Balioa izan zen hartu nuen student.create bidez itzuliko, eta horri esleitutako dut izen Ezra deitzen da. Eta beraz, orain, aldatu ahal izango duzu Esate barruan baloreak, bezala besterik ez duzu bat litzateke Python klase normal. Beraz ezar dezakezu ezra.grade = 95 eta Lekuko kopia eguneratu egingo du, baina baduzu benetan nahi Aldaketa hori konpromisoa taula bera erabiliz, ezra.save deitu behar duzu, beraz .save metodoa deitzen duzu Esate gainean. Eta, beraz, gaur egun, behar bezala aldatu dut neurea kalifikazioa datu-base barruan. Beraz, gero, demagun eskuratu dut harrapatu Nire kalifikazioa datu-base barruan aldatuz. Malan Irakaslea da ziurrenik joan me ezabatu klasea nahi den, eta beraz .delete dei dezakezu Esate metodoa besterik gauza on. Beraz, joan nahi izanez gero begizta hau atzera hemen, eta, egia esan, ordez posta guztiak bidaltzea Ikasleen zeinen kalifikazioa gutxiago da 75 baino, horiek ezabatu nahi duzula, begizta honen barruan Could s.delete adibidez deitzeko. Eta egin nahi duzun azken gauza, da, betiere konexio bat ezarri duzu, eta zure lana bukatutakoan, db.close deitu nahi duzu, non db datu-basea dela oposiziorako aurretik izan dugun. Eta ziurtatu nahi al duzu guztia atera itxita lortzen. Cool. Beraz, gaur egun, adibidez, aplikazio bat daukat. Nik Sort aurrez egindako guztia besterik beraz ez da inolako zuzeneko kodetze izan akatsak, baina ibil gaitezke bidez Flask nola jarri nahi baduzu, eta ikusi eta peewee elkarrekin, eta egiteko aplikazioa erraza da. Egiten dut CS50 rant deitu, eta hori da, blog plataforma erraz bat sort. Beraz, lehenik eta behin, exekutatu dut eta erakusteko zer itxura, eta orduan gehiago begiratu dezakegu kodea sartu. Ongi da, beraz, utzi exekutatu nahiko luke honek. Cool, hau egin dut Pixka bat txikiagoa. Ez da oso polita, besterik ez delako Ez nuen CSS asko egin, baina zer egiten da, ez du blog mezu-base honetan, eta doa guztietan barrena da horiek, eta horiek erakutsiko dira Berrienetariko ordenan orrian. Eta beraz, horiek dira mezu batzuk Datu-basean dudala salbatu zioten. Beraz, berri bat sortu nahi badugu post, Post berria gehitzeko, joan ahal izango dugu, eta titulua sar gaitezke post, beraz, antzeko zerbait CS50 mintegia. Wow, benetan mintegi gozatuz. Cool. Ondoren post sakatu duzu, eta hala egingo du redirect back home orria, eta orduan ikusiko duzu azken post gehitu zitzaion. Eta oraindik direnak ez ditugu. Beraz, orain, goazen urratsaren guztietan zehar kodea ikusi eta nola hau garatu gabe dago. Beraz, dezagun hori lehenengo gauza dela uste dut , benetan ereduen begirada bat hartu. Denbora asko, betiere zerbait diseinatzen ari zaren, nola buruzko lehen uste duzu nahi Zure datu ordezkatzen joan zaren, eta, ondoren, inguruan gauzak diseinatzen, beraz, dena zentzua. Eta hori da, benetan zenbat I egin naizenean hau egiten zen, Eseri nintzen eta pentsatu, Zer nahi post batean. Beraz, hemen, egitura bera dugu lehenago aipatzea ari nintzen, non egiten dugu db = Sqldatabase ('posts.db'). Egia esan, seguruenik ez duzu nahi Zure izenaren datu kodea gogorra da. Hori aski parametro bat izan behar du hori nonbait gordetzen, agian, konfig fitxategi batean, baina ere Hau bezalako adibide txiki bat, direla kodea gogorra ongi da. Beraz, gaur egun, Post class hau dugu, bertan base eredua KDEko. Eta, duela berriro aurreratu da ID = PrimaryKeyField. Egia esan, ez baduzu, zehaztu, I benetan got deusezten bada, Orduz peewee zaindu beharko dugu NAN eremu hori automatikoki sortzeko, eta automatikoki egingo da horregatik da PrimaryKey bat, eta horrek Nik uste dut, benetan polita, ohi delako, Hori izan nahi duzu zerbait, baizik eta, zehazki, gustatzen zait, Beraz, besterik ez dut gogoratzen dela hor. Baina ez baduzu, zehaztu duenez, han izango da automatikoki. Beraz, ondoren, data bat daukat eta horrek DateTimeField bat da, eta guztiak alor desberdinetan horiek, nahi izanez gero the peewee dokumentazioa begiratu, desberdinen zerrenda bat emango da erabili ditzakezun-eremu mota. Zati handiena, antzeko da zer SQL mantenduz ikusteko. Beraz, ez CharField bat da, VarCharFields, TextFields, bertan oso luzeak dira testuak, blog post bat bezala potentzialki, DateTimeFields, DoubleFields, FloatFields, Horrelako gauza guztiak. Eta beste argudioak pasatzeko dezakezu da, eta horrek ez nuen hemen zehaztu. Esan, adibidez, ez duzu nahi baimendu bi mezu izenburu bereko dute, zehaztu ahal duzu berezia antzeko zerbait = True, eta hori parametro gehigarri bat besterik ez da eremuan denean du biltzen behera egiten duten SQL sartu, zehaztu egingo da duela berezia izan da. Zuk ere horrelako zerbait zehaztu dezakezu ez nulua eta beste gauza guztiak SQL egin normalean. Beraz, hau da, nahiko erraza da Hori datarekin ditu eredu. Iragarki hemen, DateTimeField barruan, Lehenetsia zein den zehaztu dut. Izan dela zehaztu dut datetime.datetime.now, delako modu hori hau erabat ebaluatu, benetan ebaluatzen da datetime.now denean lortzen datu-basean sartuta. Hori, litzaidake izan dudala uste dut egiaztatu honetan bikoizteko, baina honen antzeko zerbait egin nahi izanez gero, ondoren, benetan litzateke ebaluatzeko behin, eta orduan du argia du beti berdina izan. Beraz, zuk zerbait egiten ari gertatuko ez balitz datetimes batera, egiaztatu ea Hori ebaluatzeko da benetan lortzen txertatuko, edo, bestela, nahastu liteke. Izenburuak, besterik da CharField, horrek ez Argumentu bat baino gehiago pasa dezakezu zehazki zehaztuz zenbat denbora duzun Nahi izatea, baina hemen, ez da benetan axola. Eta Idatzi izango da Post osoen testua eta hori izango da joan Testu-eremu nahi duzun baizik katea nahiko luze bat izatea ahal izateko. Ondoren Meta hau dugu azpiklase hori besterik zehazten duen datu-baseko egin nahi dugula non hau benetan irekitako sartu the db objektu hori hemen dugu izan. Eta azken gauza egin behar dugu Hemen, funtzio hau ez da ari garela joan Gure aplikazio nagusitik erabili datu-basera konektatzeko abiarazi da, eta, ondoren Post taula sortu. Orain, dezagun aplikazioa nagusia bertan. Beraz, hau da, nahiko bit direnak baino luzeagoak Hori ikusi dugu aurretik, baina, zorionez, ez da txarra. Beraz, utzi hau zabaltzeko egindako me. Ados. Beraz, konturatu eta goian dut inportatutako Beste gauza batzuen sorta oso bat Flask bertatik ez dugun benetan ikusi aurretik. Eta zorionez, bidez joan ahal izango dugu horietatik, banan-banan, bakoitzak eta hitz egin buruz zerbait gehiago Adibide moduan horiek, ordenatuta. Beraz, Flask daukagu, eta render_template du, bertan ikusi dugu aurretik, Eskaera objektuaren honetan, etorriko da begiratzen nola iristen gara hori benetan nintzen erakusten formularioa lan egiten du. Birzuzenketa, horrek aukera ematen dizu redirect Sortu Post Berritik itzuli Jatorrizko hasierara atzera, eta, ondoren, URL, eta horrek aukera ematen dizu zerbait da irudikatu non on Webgune Orrialde bat da. Beraz, ondoren, hurrengo Gauza dut egin, I inportazio da ereduak batetik informazio guztia Hori besterik ez dugu ikusten ari ziren fitxategiak. Eta, bai. Beraz, beste zerbait berria datorren denean ari zaren aurre eman, batez ere, datu, dela zehaztu dezakezu Lortzen aurretik izeneko funtzio bat eskaera guztietan, eta funtzio hori lortzen eskaera bakoitzaren ondoren deitzen zaio, hau erabilita Funtzio dekoratzaileak app.before eskaera. Eta, beraz, hau exekutatu egingo dira tokian funtzioa hau da. Honek ez du nahi izan eskaera aurretik deitu, baina normalean zerbait deitu sensible. Edozein dela funtzioa zehaztu dezakezu izeneko lortu nahi baduzu, beraz initialize_db honetan zehaztutako dut Funtzio hori itzuli behar izan genuen ereduak fitxategia, beraz, eskaera guztietan aurretik, zuk datu-basera konektatu nahi. Badira bi ezberdinak dira Modu honetan egin ahal izango duzu. app Egin dezakezu., I Sinesten after_request da. Eta arteko aldea after_request eta teardown_request, dela after_request bakarrik gertatuko da eskaera benetan da zuzena bada. Eta, beraz, bakarra balitz eskaera arrakastatsua izan da, ezer oker joan bada, baina teardown_request arrakasta baten kasuan ere gertatzen eskatuta, edo Akats baten kasuan ere. Beraz, normalean, nahi duzun teardown_request erabili, Egin nahi ez duzun bitartean zerbait, batez ere desberdina Akats baten kasuan ere. Baina besterik ez da datu-basea ixteko, arrakastasua da edo huts egiten badu ala ez, egiten dugu deskonektatzea nahi duzu basetik. Beraz izenekoa, db.close db objektuaren gainean. Iragarki teardown_request dela salbuespen bat ere hartzen du. Beraz egiaztatu dezakezu han izan zen benetan Akats baten denean itxi zen, baina hemen, zorionez, han Ez dira, akats asko, beraz ari gara besterik Ordena hori jaramonik egin gabe. Ongi da, eta gainerakoak ez da txarra. Beraz, joan hasierako orrialdera dugu, home.html Txantiloi hau errendatzen dugu hori, ireki egingo da. Mendatearen post dago eta zer honen berdina egiten da, gogoratu post hau dugu eredua, beraz, mezu guztiak aukeratu dugu, eta, gero, beste gauza bat egin ahal izango duzu, non klausula zehaztu dezakezu, bat adieraz dezakezu ordenaren arabera, eta, beraz, hartu dugun mezu guztiek lortu hautatu, eta, ondoren, ordenatu ditugu arabera post.date.descending. Eta hori zehaztu beharko denean, baina hauek atera, berriena bat oso lehen izango da. Eta gero, hori gainditu dugu sartu the home.html template, beraz, utzi benetan ireki Txantiloi benetan azkar, eta nola hori lanean begirada bat hartu. Eta hau ez da HTML handia, baina zorionez, Python, ezin dugu arreta. Beraz, ez du Add New lotura bat da Post, eta, beraz, hau ibilbidea zehazten Flask barruan dugun definitzeko, hau da, hemen. Hau post ibilbide berria da, eta hori zehazteko sortu hemen dugu. Eta beraz, lotura hori izango da, ondoren joan da Flask zerbitzari barruan ibilbidea egiteko. Gauza interesgarri gehiago da hau loop hemen da. Beraz, zehaztu dugun hori post parametroa bertan pasa zen render_template funtzioa, post hamarkadako post bakoitzean Lortzen gainditu objektu. Inprimatu nahi dugu post izenburua, H1 ere, eta, ondoren, behean, inprimatu nahi dugu post testua paragrafo baten barruan. Eta hemen, ezin dugu benetan Python funtzio bat deitu, beraz strftime deitu ahal izango dugu, ST-RF-time, eta formatu katea pasatzen ditzakezu Datu inprimatzeko ere atera nahi duzula. Beraz, ez da nahiko polita egin dezakezu benetan deitu Python funtzio honetan Hemen barrutik. Ez daukazu on formatua egin controller aldean, benetan delako, data formatua zerbait dela bistak barruan landu nahi duzun. Eta ehuneko horiek guztiak Gauzak ez super garrantzitsua da. Gora begiratuz dokumentazioa bada strftime Python funtzioa, zehazten da horiek guztiak Gauzak, baina, hori nola, bilatzen ari garenerako Hasierako orriaren hemen at, hau formatu polita da data, eta AM dela zehazten edo PM, baina normalean, ez dugu bada ez dute aukera hau hemen, baliteke zuk zabor batzuk lortzeko data horretan ez zuen itxura oso ona. Eta gero, zehaztu dugu post.text, eta I Could pare bat jarri dute Lerro saltoak hemen, besterik ez post bakoitzaren arteko espazio batzuk jarri. Beraz, garrantzitsuena dela uste dut Adibide honetan gauza, da hau erabili ditzakezun begizta. Eta hau da, erabat antzeko Gauzak PHP egin dezakezu. Batetik bestera joateko aukera duzu, dena gainditu lortzen ere, eta beraz, ordez izatearen egin kopiatu / itsatsi, kopiatu / itsatsi HTML guztian, nahikoa da behin idazteko, eta, ondoren, batetik bestera joateko dezakezu gehiagoko mezu guztiak. Eta hau zerbait da komun nahi duzula , egin behar denean, datu asko behar duzu, Zure datuetan dena dela, Antzeko gauza bat egin nahi duzula. Eta gero, jakin ezazue, duzunean dagoela zerbait esplizituki inprimatu nahi HTML, erabili duzu the giltza bikoitza hemen, baina orduan, zehaztu nahi dituzu Baldintza bati buruzko informazioa, edo buruz begizta for a, zuk ehuneko parentesi erabili. Beraz, atzera egingo Python izateko kodea, beraz, azaldu du zer ari nagusiak gertatzen Ibilbidea, hara joaten gara, besterik bistaratzen dena Mezu, baina gero, galdera hau da, nola ez benetan lortu dugu datu-basea, sartu mezu horrek pixka bat gehiago interesgarri. Beraz, noiz berria, bertan klik Post lotura, hemen ikusi genuen, you plazarik formulario hau. Eta hori soil bat besterik ez da render_template funtzioa, zein ondoren HTML inprimakia post berria pasatzen. Beraz, dezagun begirada bat. Beraz, hau nahiko erraza da. HTML inprimaki erraz bat, eta hori Pixka bat ezagutzen begiratu beharko, oinarritutako CS50 Ogasun inprimakietan. Eta, beraz, hemen zehaztu ditugu, ekintza. Eta hemen, lanean ari bada PHP batera, normalean, eguneroko antzeko zerbait izango litzateke, create.PHP, baina hemen Benetan zehaztu dugu ibilbide bat Flask zerbitzari barruan. Eta, beraz, ibilbide honetan dagokio sortu ibilbideari hemen dugu hori, eta horrek sartu dugu bigarren bat joan. Eta beraz, hori zehaztu dugu post-metodo bat da, Bidali nahi dugulako Formulario Datu horiekin, eta normalean datuak inprimaki bat bidaltzen ari bazara, Baliteke post eskaera bat erabili nahi baduzu, Zuk ez besterik, beraz, azkenean big, unwieldy URL honekin. Baina eskaera bat ere erabili ahal izango duzu, eta gainditu ere routing aldakorreko, baina inprimakiak, polita da post eskaera bat hemen. Eta, beraz, ondoren, besterik gabe, nahi duzun HTML eta PHP egiten den, Testu sarrera horiek zehaztu dezakezu, eta horietako izena zehaztu ahal izango duzu, eta hori gainditu ahal izango da izena da Eskaera objektuaren Flask barruan sartu. Eta gero, bat aurkeztu dugu botoia Post esaten duen. Eta hemen, Post izena da botoia, blog post bat delako, baina hemen, post eskaera metodoa da. Beraz, hitza bera dira baina benetan zerikusirik. Yeah Atzera eginez Python kodean, denean deitzen dugun sortzeko metodoa, hemen nabarituko ahal duzu benetan ibilbidearen barruan zehaztu eskaera metodoak onartu nahi duzula, eta, beraz, hemen, I zehaztu dut bakarra Post metodo bat onartu nahi. Beraz, benetan saiatzen naiz orria bisitatzeko bada zuzenean, eta hori lortzeko, eskaera bat erabiltzen ari da, me esango dizu "metodoa ez da onartzen." Eta beraz, orrialdeak behar duzu, ordenatzeko bezalako Sortu orrialde honetan, bertan nago bakarrik benetan erabiltzeko modu bat bezala Aurkeztutako emateko formularioa, ez duzula zehatz dezakezu nahi jendea hara joaten ahal izateko zuzenean eskaera baten bidez, edo ez duzu nahi izanez gero, arrazoi batzuk, Post eskaera bat, Besterik ezin zehaztu duzu hemendik, baina adibide honetan, besterik ez dugu Nahi Post eskaera irteteko. Beraz, create_post deitzen da, betiere bisitatzen dugun Post eskaera bidez, joan duzunean jakin bati Ibilbidea, han eskaera objektu hau da, eta inportatu nahi izan genuen oso goian eskaerak, baina ez dago eskaera hau da Lortzen gainditu objektu, eta inprimaki datuak sartu ahal izango duzu, bertan automatikoki beteko dira betiere formulario batetik eskaera bat bidali behar dituzu. Eta gero, zer uste dut benetan cool, da Formulario objektu hori gainditu ahal izateko ere, besterik Python hiztegi bat dela dauka, beraz, hemen access-- baduzu, utzi Tira me HTML ondoan, besterik beraz, hori izan dezakezu erreferentzia bat, bai, beraz, izenak hemen zehaztu dugu alor desberdinetan, beraz, titulua eta testua, dugu ondoren erabili hemen gorakoentzako inprimaki datuak sartu indizeak bezala. Beraz, hori super erosoa da. Beraz, ondoren post.create deitzen diogu, eta horrek sortuko da, eta automatikoki sartzen post objektu berri honek datu-basean sartu. Eta uste dut hori sortzea funtzioa Hemen nola adibide benetan cool bat da indartsua Flask da eta honekin lanean, duzu zerbait egiten ari delako PHP ere, baliteke dute asko egin baliozkotzea, orduan izango litzateke datu-baseko konexio bat ezarri orduan izango litzateke SQL kontsulta exekutatu, baina hemen, besterik ez dugu polit hau post.create, eta gero, ahal dugu besterik informazioa lortzeko egindako eskaera-objektuaren, eta, ondoren, pasa ezazu berri batean iruzkin sortzen ari garela. Eta gero, oso azkenekoak gauza egin nahi dugu, da berbideraketa Erabiltzaile etxera itzuli. Eta, beraz, hau erabili dugu Flask redirect funtzioa. Eta zerbait ez genuen ikusi aurretik, URL hau funtzioa zen. Beraz, funtzio URL ematen dizu benetan izena pasatzen duzu Zure Python kodea ere funtzio baten, baizik eta ibilbide jakin baino dela ere. Beraz bezain erraz izan dut berbideratuko erabiltzaileari egindako barra, bertan atzera etxera bidali zuen, baina URL erabiliz funtzioa da polita, aldatu bada delako kokapena Gauzak non, beraz, esan dezagun, aldatu dut aurrera etxera / Etxean izan beharrean, hau litzateke oraindik orduan itzuliko / home, benetan delako doa eta begiratuko funtzioaren izena du, eta haren URL atzera duzun hori emango. Beraz, ordenatzeko on the assumption duzu zarela gehiago litekeena non gauzak aldatzeko dira, funtzioen izenak baino. Hau benetan erabili ahal izango duzu Funtzio polita URL. Eta gauza bat kontuan izan behar da Hori da pixka bat zaila, da uste duzun besterik ezin duzu deitu URL on redirect, baina, egia esan, ibilbide guztia dute Testua eta HTML nolabaiteko itzuliko da, Beraz, benetan behar redirect deia itzultzeko. Bestela, zerbait jasoko duzu baliogabeak ez kate bat itzuli buruz, horiek guztiak itzuliko delako HTML benetan errendatu nahi duzun. Eta horrela, redirect deitu, you plazarik da orrira, baina benetan HTML itzultzen du redirect exekutatu behar duzu. Joan hasierako orrialdera itzuli. Beraz, bi ikuspegi desberdin horiek ditugu. Home ikuspegian daukagu. Edo, templates esan behar dut uste dut. Bi templates hauek ditugu, home txantiloian bertan gure mezu guztiak erakusten ditu, eta gero ad gauza hau izan genuen, Noiz eta post klik eginez gero, ez doa ibilbide berri bat Flask barruan, baina ibilbide horrek ez du nahitaez dagokion txantiloi bat dute. Ez duzu ikusi ezer, baina oraindik dezakezu dute lan hau joan eszenak atzean. Eta orduan ezagutu berbideratuko duzu Hasierako orrialdera itzuli. Eta, zalantzarik gabe, erraza da lan egiteko txantiloian sartu CSS batzuk ikusgarriago batean eta egiteko hau begiratzen, ikusgarriago, baina logika nagusiaren guztiak dago Python gainean. Adibide horri buruzko edozein galdera? Ez dakit asko gauza desberdinak Hara joan, gauza asko ez genuen ikusi aurretik, baina ezer bezalakoa. Bai. Ikusleak 1: Ez da ezer egin behar duzu bereziak datu hori sasiak Sasoi aldetik buruturiko? Nabaritu dut esan besterik ez duzu "sortzeko," EZRA Zigmond: Bai, beraz, hori da benetan, puntu bat benetan ona da. Beraz, galdera zen, ez duzu egiaztatu eta ziurtatu behar duten datuak baliozkoa da, eta Edozein scrubbing moduko egin Ziur baliozko dela egiteko, Hemen ikusi dezakezu bezala delako, Ez dut hori egiten. Beraz, ikus dezagun zer gertatzen Zerbait hutsik iruzkin badut. Beraz, egia esan, izango da besterik egin a post hutsik eta DateTime bete. Beraz, egia esan, ziurrenik zenuke zerbait egin nahi baduzu, agian zehaztu izenburua berdina bada kate hutsa, orduan ez du egin. Edo, besterik ez da egin izenburua da bada Ez kate hutsa berdina. Beraz, ez du benetan automatikoki zaindu scrubbing horren Zuretzat, beraz, oraindik ez da egin behar duzu. Bai, galdera ona. Ikusleak 2: sasiak Du Segizio injekzio? Ba al dakizu? EZRA Zigmond: Zorionez, peewee du hori. Uste dut zalantzarik gabe, izango litzateke polita bat liburutegia txarra bada, ez da hori egin. Ez dut zehazki ezagutzen. Den begiratu beharko nuke galdekatzeko bezala sortzen duten. Uste dut, hori idatzi dut bat ere bada blog post Sort duten begiratu SQL injekzio eraso bezala, honen antzeko zerbait, hau bada pasahitza eremua edo zerbait bat bezalakoa da, honen antzeko zerbait egin dezakezu. Nik uste dut izango dela oraindik lortu literalki argitaratua, baina peewee hori egiten dela uste dut Datuen scrubbing nolabaiteko egia esan, exekutatzen. aurretik Ikusleak 1: testu eremua da testu arrunta hartzeko diseinatu da, ezta? EZRA Zigmond: Bai, hala da. Bai. Beraz, uste guztien dudala, beraz, hau da, jokabide zuzena, hori egin beharko, baina peewee dela uste dut zorionez, ez du egiten babes moduko bat bere amaieran. Eta nahi izanez gero egiaztatu ea han- denean kontsultaren bat sortzen da modu daude. beraz, ez duzu behar zuzenean exekutatu. Bat hartu nahi nuke dokumentazio begiratu, baina, egia esan, ikusi ahal izango duzu SQL hori sortzen da, eta begirada bat, eta egin ziur ez dela gauza ihes egitea. Beste arrazoi bat zergatik you might SQL begiratu nahi peewee hori, irteera da bada da Gauzak dirudi joan benetan astiro, Begirada bat hartu ahal izango duzu, eta ikusi zer da benetan, egiten batzuetan delako erraza da nahi gabe gehitu ere, horrela idatzi duzunean, Nahi gabe izan daiteke datu-basea hautatu osoan lehen, eta gero egin moduko eragiketa batzuk Horretan, duzunean benetan ekarri azpimultzoa. Eta, beraz, gauzak ez badira arrazoi osoa joan, ona da eskaera begirada bat hartu hori benetan ohitu sortzen. Bai. Ikusleak 2: lehen hasi zarenean, portuan jarri 5000 bezala. EZRA Zigmond: Bai. Ikusleak 2: peewee batera lehenetsia da, edo da zerbait aldatu ahal izango duzu? EZRA Zigmond: Bai, hain portu Flask batera lehenetsia da. Exekutatu baduzu gabe ezer zehaztuz, da automatikoki egingo du hori. Uste dut, litzaidake ez daukat egiaztatu honetan bikoizteko, baina hori zehaztu dezakezu app.run batean, Uste dut horrelako zerbait egin ahal izango duzu, = 8080 portuan. Dezagun eman en duten a benetako azkar saiatu. Yeah, beraz, besterik zehaztu dezakezu portu = 8080, eta exekutatu izango da bertan, Horrek dut uste, exekutatu nahi izanez gero IDE gainean, ez dut saiatu honetan egindako, baina uste dut hori egiten baduzu 8080 atakan ran, ziurrenik dituzu, izan ahal zerbitzarira sartzeko aukera, besterik nahi webgunearen zinen. Bai, erraza da, baina aldatu duzula bada Edozein bezalako portu-forwarding moduko dute Egin behar duzun gauza. Beste edozein galdera? Bai? Ikusleak 1: Beraz, ikusi dut zure hori, zuk aipatu bezala ereduak, zehaztu egin beharko duzu objektu bakoitzeko datu-basean. Ez jakin gertatuko duzu, ez du Hori egiteko benetan erraza baduzu SQLite datu asko dituzula Interneten web bakar aplikazioa erabili nahi, besterik ez duzu mordo bat zehaztu ahal izango duten zure eredu desberdinak direnak? EZRA Zigmond: Bai, let me Zabaldutako benetako azkar. Beraz, esaten, zu izan nahi baduzu zerbait desberdin mordo bat, agian, Gustatzen eta ikasleei, batzuentzat Arrazoia, horrelako zerbait? Bai, beraz, uste dut Oraindik ere baduzu, eredu bakoitzaren oraindik ere besterik ez nuke base bat, esleituta, baina izan bazenu eredu ezberdinak direla dute datu-base objektu desberdinak esleitzen da, behin betiko izan ez duzula. Beraz, sortu berri bat badut, honen antzeko zerbait, eta orain hau ikaslea da hori Itxura era bitxian blog post bat bezala, Dudala zehaztu ahal izan du database berdinak hemen db_2 da. Beraz, uste dut hori egin Bide nagusia hori egin ahal izango duzu. Cool. Beste edozein galdera? Beraz, besterik Amaitzeko apur bat bit, hemen baliabide batzuk dira, eta diapositibak horiek online argitaratu egingo da beraz, benetan dezakezu esteka horiek lortzeko. Baliabide onenak direla benetan Flask entzako dokumentazioa eta peewee beraiek. Benetan ondo idatzita ari dira, uste dut. Beraz, Flask webgunearen hemen da, eta quickstart tutoretza dutela egingo antzeko zehar oinez bidez zer ibili nintzen gauza, baina kritikarik moduko nahi baduzu Gauza hori baino gehiago joan nintzen, eta edo azaldu dudala pentsatu duzu Bide nahasia zerbait, Antzeko adibide izango dute bertan. Peewee dokumentazioa ditu, eta quickstart tutoretza dute duten parametro nagusiak baino gehiago doa erabili nahi zenuke. Beraz, gauzak buruz hitz egin dut the lehenetsiak berezia, eta zehaztuz, Eremu mota ezberdinen dagoela erabili ahal izango dituzu, horiek guztiak izango litzateke han. Era berean, baldin baduzu peewee buruzko galdera, eta horiek bidaltzeko duzu StackOverflow on, Mutilei peewee egin benetan nor aurrera doa, eta horiek erantzuten batzuetan. Galdera bat, zorionez badaukazu horri erantzun ahal izango du, gauza osoa idatzi zuen delako. Nik uste dut hori guztia Estali nahi nuen. Irteten esker.