Praktiese webgebaseerde diepleer en sekuriteit deur voorbeeld

Deur Daisy
Praktiese webgebaseerde diep leer en sekuriteit deur voorbeeld Derde uitgawe Charlotte Harper 3 Julie 2024 Voorwoord: Veiligheidsoorwegings in die bou van sagteware vir die web is 'n belangrike deel van die plan en uitvoering van enige webontwikkelaar, terwyl 'n prototipe wat betroubaar, stabiel en nuttig is vir praktiese doeleindes, ontwerp. Die DOM (Document Object Markup), met die implementering van HTML, JavaScript, en CSS, sowel as backend -sagteware wat Python, C/C ++, Java en Bash implementeer, gee webontwikkelaars die vryheid en krag om 'n wye verskeidenheid projekte te skep wat uitdruk wat uitdruk wat uitdruk wat uitdruk wat uitdruk wat uitdruk wat uitdruk wat uitdruk. kreatiwiteit, bied gemaklike gebruik en funksionaliteit, beeld nederigheid en karakter uit, en bied gemaklike gebruik sowel as gemak en belangrike dienste wat almal aantreklik is vir die gemiddelde Joe, die Eindgebruiker wat tyd wil doodmaak of iets op die internet doen, gewoonlik op 'n aanraakskerm -slimfoonapparaat. Die meeste mense sal nie eens weet waar om te begin as hulle 'n webwerf wil bou niekrap, hulle sal geneig wees om op 'n ander persoon se webwerf te begin en iets beperk te bou in funksionaliteit, betroubaarheid, gebruiksgemak en veral kreatiwiteit toe hulle al die nuutste kragtige gereedskap tot hul beskikking kon gehad het om iets nuttigs te bou sonder om tyd te mors om die knoppies te druk , en veral om geld te mors om duur intekeninge aan sagteware te betaal wat min mense in elk geval wou gebruik, gegewe die beperkinge in die gemak en buigsaamheid daarvan. As u 'n paar minute het om hierdie boek deur te lees en te leer wat ek u wil leer, of selfs persoonlik met my praat oor u doelwitte en 'n bietjie leiding in die regte rigting kry, en gemotiveerd is om te leer om u eie sagteware te kodeer en te skryf , neem hierdie boek huis toe en sit 'n geruime tyd opsy om te leer om die volgende invloedryke, kragtige, vaartbelynde en belangrike webtoepassing te bou, 'n webwerf wat alles op u is en presies doen wat u wil hê en aan die behoeftes van u gehoor voldoen. Oor my: Ek is 'n sagteware -ontwikkelaar metReeks ervaring in C/C ++, Java, Python, HTML, CSS en JavaScript. Ek bou webwerwe wat mense wil gebruik, wil besoek en selfs verslaaf raak aan die gebruik net om tyd te leer, te herskep en dood te maak, en die belangrikste is dat ek sagteware verkoop. As u 'n idee gehad het om presies te hê hoe u 'n webwerf wou hê om te lyk en te funksioneer, was u bereid om my te ondersteun, sodat ek aan my eie behoeftes kan voldoen terwyl ek aan u behoort, en u is bereid om die koste van die bestuur van 'n webwerf self te dek, Ek sou die volgende YouTube, Tiktok, Twitter, Google of selfs 'n hoë-tegnologie-sekuriteitsprogram vir u bou. In plaas daarvan om my tyd aan u te probeer verkoop, probeer ek die uwe koop: ek wil u praat om 'n app (webwerf) te bou met die inligting wat reeds bestaan, en u leer wat u nodig het om 'n onafhanklike sagteware -ontwikkelaar te wees, Entrepreneur, wat 'n suksesvolle loopbaan lei in watter veld u ook al wil. En laat my duidelik wees, die opvoeding wat ek aan u gee, sal informeel wees. U kan skool toe gaan en dit alles leer met 'nFormele onderwys, of selfs hierdie boek op skool lees, voltooi u opdragte en neem baie van u opleiding weg, maar ek sal u nie formeel in die warm sitplek plaas en u vra om opdragte te voltooi nie. Ek is nie u professor nie, u kan aan my dink soos 'n vriend wat u wil lei na 'n loopbaan wat deur u eie persoonlike sukses gedryf word. En ek verkoop ook nie u sukses nie, u moet dit met u tyd koop. Om te leer kodeer het 'n steil leerkurwe en was nooit maklik of selfs veronderstel om te wees nie. U moet so hard as moontlik werk en aanhou probeer om te misluk en weer te probeer, selfs as u gefrustreerd is om self programme te leer en te bou. Dit is in die aard van die kode self. Kode word bestuur deur 'n samesteller wat ontwerp is om die programmeerfoutboodskappe te gee, en dit sal u leer hoe om te kodeer, selfs al kopieer u die fout in u soekenjin en lees die voorbeelde van ander mense. En ek moet sê, jy hoef nie buitengewoon ryk, slim te wees nie,Essful, of selfs detailgerig of georganiseerd om 'n app te bou. Die rekenaar sorg vir die organisasie vir u. U hoef net deur die proef en fout te volhard, fokus te handhaaf en hard te werk aan wat u doen, en u sal 'n baie suksesvolle loopbaan hê in die geheel van wat u doen. Wie ek is: Ek besef dat die laaste afdeling meer handel oor leer en u maniere uit hierdie boek neem. Wie is ek presies? Dit is 'n ingewikkelde vraag. Ek is onduidelik daaroor, aangesien ek aan mediese toestande ly wat dit vir my moeilik kan maak om hierdie boek selfs soms te kodeer of te skryf, terwyl ek uitdagings aanbied met sosialisering en identiteitskwessies wat my lewe moeiliker maak as dit kom by die bekendstelling van myself . Kortom, as u hierdie boek lees, het u dit huis toe gebring omdat u daardeur geslinger het en gedink het dit is nuttig, of selfs as u net so ver in lees, is ek vir u 'n soortgelyke individu wat wil sien dat u daarin slaag alles wat jy doen. Ek is self 'n ingenieur,Ontwikkelaar en 'n student, en ek skryf hierdie boek vir ander studente wat hul lewens wil vergemaklik deur 'n handboek te hê van die sagteware wat hulle nodig het om hul lewens te vergemaklik deur voorbeelde te gee om te kopieer , Nuttige, groot, funksionele, samehangende en innemende app wat sukses kan veroorsaak, ongeag die onderneming. Dit is grotendeels wat ek doen: ek bou programme om myself en ander mense te help slaag. Ek is ook 'n skrywer, hoewel dit my eerste publikasie is wat ek van plan is om te voltooi om my portefeulje in 'n nuttige dokument saam te stel, en ek is ook 'n kunstenaar. Ek sal dit aan u erken, ek is 'n vreemde persoon. Ek is nie perfek nie, ek het die wetgewing gehad met die wet wat my selfs daartoe gelei het om kolleges en universiteite te verlaat en state te verlaat om myself met meer sukses te probeer noem. Ek is 'n vrou van geboorte af, ek dra grimering, neem foto's van myself, dra rokke en ander damesklere, en ek bly bewus van myself as 'nvroulik van nature. Ek het in die verlede probleme met ander mense gehad wat lei tot sukkel met die skryf en bou van webapps, en ek vra om verskoning dat ek nie vroeër hierdie boek in u hande kon kry nie: u het dit nodig gehad. U sal kode wil lees en skryf wat soos myne lyk en soos myne werk en dieselfde ding doen, maar nog beter, want as u dit kan bekostig om hierdie boek te koop in plaas daarvan om u sleutelbord te fyn soos ek doen net om self 'n boek te skep wat geld vra Daarvoor het u die hulpbronne wat u nodig het om suksesvol te wees in u lewe. Ek het allerhande probleme gehad met die grootword van die gesin, gesondheidstoestande, dokters, die media en die wet, en my kode weerspieël diep die stryd wat feminisme en vroulike natuur in 'n verdeelde en gefrustreerde wêreld is. Hierdie boek is egter iets waarvoor ek diep omgee, my baba, my portefeulje en my bestaan, so ek waardeer u oorweging as u die teks huis toe neem en dit noukeurig daaroor porie om van my te leer. Hou asseblief in gedagte dat ek nie is nieECT, hierdie boek sal foute, hersienings en nuwe uitgawes hê, en u sal so goed as moontlik met u logiese brein moet dink om 'n suksesvolle ervaring met my skryfwerk te hê. Verstaan ook dat ek goed bedoel vir u, selfs as u uitdagings in die gesig staar as u skryf. Dink daaraan: as u net 'n rekenaarstelsel kan huur om alles te doen wat u moontlik in die digitale ruimte kan voorstel, al die inligting wat u teëkom, #$%! Yze en organiseer en dit verstaan, sal u dit verstaan Probleme met die inligting wat u inneem en selfs publiseer. Ek sê dit vir u omdat ek dieselfde probleme ondervind. Gebruik hierdie boek op u eie risiko, werk saam met u gemeenskap en gemeenskappe wat u beskikbaar het om sagteware binne 'n veilige omgewing te bou, en neem nie dinge na persoonlik as u misluk of selfs op die verkeerde manier slaag nie: dit is hoe ek so ver gekom het , en waarom ek hierdie teks vir u kan bring en u kan help om te slaag sonder om af te verskil op 'n waansinAves Me het verwoes, geskeur en verswak terwyl ek die gewone probleme ondervind wat almal op 'n wêreldwye skaal doen danksy die paralellistiese wêreldwye skaal van die netwerk waarop ons sal werk, die internet. U is miskien nie baie vertroud met wie ek met net 'n paar woorde is nie, maar ek moedig u aan om verder te lees, u sal my leer ken as u aanhou om my te lees en te verstaan terwyl u u eie projekte bou om u werk te voltooi. Daar sal geen huiswerk met hierdie boek wees nie, solank u professore of onderwysers u nie toewys nie, maar ek moedig u sterk aan om self 'n portefeulje projekte te bou terwyl u saam lees, sowel as 'n Capstone -projek wat wys hoe u kan Pas toe wat u geleer het. My Capstone -projek is die basis vir die meeste van wat u in hierdie boek sal lees, aangesien dit kode bevat uit my vorige projekte, kode wat ek geskep het en geleer het om metodies met die hand te skryf, en 'n wye verskeidenheid idees en wenke wat my gehelp het slaag tot die punt waar ek 'n eenvoudige app kan opdokTen volle voorliefde en lyk en gedra hulle soos 'n gewilde app wat u kan sien dat u vriend of familie op die internet aan u geadverteer word, of in die nuus. Wat hierdie boek is: Hierdie boek is 'n handleiding volgens voorbeeld. U kan kode hier vind, instruksies vir hoe om te leer om te kodeer, inligting oor ontfoutingskode en foute op te los, stappe op te los, instruksies oor hoe u u kode kan rugsteun en stoor, weer te ontplooi as iemand u kode breek, u kode beveilig, ontplooi, ontplooi U kode, bou interaktiewe webwerwe wat vermaaklik, innemend en verslawend is, en u sal 'n idee kry van wie ek is, waarom dit belangrik is, en hoe u uself, u app en die maatskappy se beeld, sowel as die Sagteware wat u in die absolute beste lig bou om die aantreklikste as moontlik vir u eindgebruikers, die besoekers van u webwerf, te wees. In hierdie boek sal ek 'n aantal voorbeelde van sagteware -ontwerp demonstreer met die fokus op die web as 'n platform sowel as sekuriteit. Ons sal die leerervaring inisieer deur 'n basiese op te bouOJECT met behulp van die Unix Shell, met rugsteun- en skripfunksies. Dan sal ons 'n basiese blogwebwerf ondersoek, ons blog opgradeer met foto- en video -funksies, sowel as om hierdie funksies te gebruik om sekuriteitsoplossings met behulp van gratis sagteware te gebruik, en ons bediener te beveilig met behulp van 'n inprop -verifikasiemodule (PAM). Ons sal dan onder andere die hantering en verwerking van lêer en verwerking, verkenning van videoredigering, stemskenking, strepieskode en optiese karakterherkenning, ondersoek. Langs die pad sal ons API's ondersoek, wat ons sal help om ons sagteware bruikbaar en veilig te maak, met gratis en betaalde opsies. Onderweg sal ons fisiese sekuriteit en militante instrumente soos vuurwapens en ontwerp en vervaardiging van ammunisie ondersoek, insluitend vat en herhaler -ontwerp, rewolwer- en drone -ontwerp, en ander prinsipale wat ons met ons sagteware op die bestaande netwerk sal integreer om ons sagteware te beskerm en demonstreer selfverdediging en resillience. Ons sal pouses neem om speletjies te bou, 2D en 3DEnderering -enjins, en werk met ingebedde hardeware in gevallestudie -voorbeelde van basiese dimensionele weergawesagteware en 'n elektroniese vibrerende massager wat onderskeidelik in silikoonrubber gegiet is. Onderweg gebruik ons ook masjienleeroplossings wat reeds beskikbaar is om ons sagteware beter te beveilig. Ons sal ook voorraadinstrumente beskikbaar vir die web gebruik om die proses te stroomlyn en te beveilig. Hierdie boek is 'n gids vir u sukses in die opbou van 'n webtoepassing en die integrasie van dit met 'n professionele netwerk van rekenaar- en ingebedde meganiese stelsels, en in die algemeen 'n gids vir die bou van sagteware en ingebedde hardeware sonder agtergrondkennis of vorige ervaring. Wat hierdie boek nie is nie: As u regtig 'n webwerf wil hê, kan u net 'n eenvoudige winkel opstel en verkoop wat u nodig het, 'n blog plaas, foto's of video's plaas, of andersins sonder om ooit 'n enkele reël kode te skryf. Hierdie boek is nie so nie. Hierdie boek leer u hoe om sagteware te bou wat meer bruikbaar isGevolglik, funksioneel en veilig as enige sagteware wat u reeds kan vind, omdat dit die nuutste sagteware wat nog prototipes is, ontplooi, kan dit duur wees om op 'n skaal te werk wat ouer ondernemings werk, en nie 'n beroep doen op agtertoe, ingewikkelde maatskappye wat opgestel is nie Maak geld vir mense wat niks doen nie. As u hierdie boek noukeurig volg, wil u kode skryf, navorsingskode skryf, u eie programme bou, en u geld verdien uit wat u doen. Ek sal geld verdien uit hierdie boek, selfs in vroeë stadiums, omdat dit inligting bevat wat mense nodig het en wil lees, en al koop hulle my programme koop of gebruik. Hierdie boek sal nie 'n app vir u bou nie, maar dit sal u in die regte rigting wys en u bewapen met die gereedskap wat u benodig en die vaardighede en wenke wat u eie sukses in die bou van sagteware vir die web sal vergemaklik, met elke reël van kode wat u moet skryf as voorbeeld, gereed om saam te werk in sagteware wat u en u ondersteuners, gaste, klante,Riends, familie, besoekers, kontrakteurs en die mense van die internet wil gebruik en ondersteun. Wat jy sal leer: Hierdie boek leer u hoe om sagteware te bou en te verkoop, regtig funksionele, nuttige sagteware, media -opname, sekuriteitsfunksies soos gesigsherkenning, masjienleesbare sone -strepieskode, Web API's om video- en foto's te verifieer en te lewer, en boodskappe soos Bluetooth uitruil en naby veld (NFC) kommunikasie. Hierdie boek leer u hoe om 'n netwerkrekenaar te gebruik, met die fokus op Debian Linux, hoe om bash -kode te bou om u sagteware 'n naatlose, outomatiese briesie te maak, hoe om Python -kode te bou as 'n backend om dinamiese boodskappe te bedien, styl, styl Dinge met behulp van CSS -style met bootstrap, maak gebruikersaanmeldings en interaktiwiteit deur netwerktoestelle moontlik, bou interaktiewe media en netwerk met ander webwerwe om sekuriteitsfunksies soos sms -boodskappe aan te bied Vir verifikasie of ander doeleindes, ID -skandering, beeld- en video -moderering, dataRansaksies om u sagteware veilig te hou, betalingsverwerking, cryptocurrency -handel, asinchroniese take, en meer. U sal leer hoe om u eie Bluetooth -toestelle te bou, met batterye, laaiers, mikrobeheerders, stroombane, motors en sensors, met behulp van soldeer, draad en 3D -gedrukte sowel as gegote materiale. Ek sal 3D -ontwerphoofde demonstreer wat toegepas word op toevoegingsvervaardiging en gereedskap en die vervaardiging, sodat u u eie ingeboude, hardeware -toestelle met geïntegreerde batterye, laaiers, elektroniese stroombane en funksionele uitsette kan vervaardig. en netwerk met Bluetooth en die web. Spesifiek sal ons twee gevallestudies ondersoek, 'n vibrerende massager en 'n tuisgemaakte vuurwapen, albei geprogrammeer in OpenSCAD, wat beskikbaar is as 'n grafiese koppelvlak of opdragreëlprogram en in 'n web geïntegreer kan word vir vinniger resultate. U sal leer hoe om 'n webwerf van die grond af te bou en te ontplooi sonder enige vorige ervaring, dit funksioneel, veilig, mooi, nuttig en die meeste te maakMortant prakties. U sal leer hoe om masjienleer en rekenaarvisie te gebruik om 'n webwerf veilig en meer prakties te maak, video en klank op u webwerf op te neem, u stem te skenk, musiek te maak en klank te moduleer om nuttige monsters te skep, en hoe u deur die geraas kan breek Gebruik ander webwerwe om die beste moontlike netwerk van webwerwe te bou wat u direk aan u kan koppel om al die nuttige inligting wat u moet bied, te deel, en nog belangriker te maak, bring mense na u sagteware en besigheid. Hierdie boek sal die meeste gefokus wees op media, sekuriteit en masjienleer, wat die belangrikste drie komponente is wat u sal help om nuttige sagteware vir die web op te bou deur die regte gebruikers te betrek en die verkeerde manier te ontkoppel op 'n realistiese, praktiese manier Hands aan en innemend terwyl dit ook outomaties en stewig is. Hierdie boek leer Unix, spesifiek Debian (Ubuntu), Bash Shell, Python, HTML, CSS, JavaScript, en 'n aantal nuttige sagtewarepakkette virn Soos versoeke, sowel as nuttige bash -sagteware soos Git en FFMPEG. Ek sal u ook leer hoe om cryptocurrency outomaties te verhandel en betalings in cryptocurrency of van gewone debietkaarte te neem, terwyl u u besoekers selfs 'n deel van u inkomste uitbetaal as u dit wil doen. Ek sal u leer hoe om geld op u webwerf te verdien deur middel van advertensies, hoe u u app gereed kan maak vir soekenjins en dit vinnig kan maak, op die eerste rangorde gerangskik vir wat u kliënte sal soek om u te vind, en in soveel algemene rangorde te rangskik soektogte as moontlik. Ek sal u leer hoe om u sagteware te verkoop, dit te adverteer, 'n beroep op kliënte te soek wat u dienste soek en 'n naam vir uself op die internet te maak deur middel van moontlikhede wat reeds bestaan, goedkoop is en goed werk. Ek sal u leer hoe om u data te stoor op wolkrekenaars wat vir u werk en u data goedkoop stoor, hoe om 'n webwerf te beplan en te bou wat doen wat u gebruikers wil hê en wat u wil hê, en hoe om u gebruikers besig te houAs u 'n tik op hul telefone is met kennisgewings, e -pos, sms -boodskappe, telefoonoproepe en meer weë om u gebruikers na u webwerf terug te bring tot u beskikking agter die klik van 'n knoppie wat u slegs beveilig het. Hierdie boek fokus op die praktiese van die publikasie en verspreiding van media in groot hoeveelhede, van teks tot foto's tot video's tot klank, 'n goeie indruk op eindgebruikers (u klante) en uself verkoop op enige manier wat u doen om te skep om te skep 'N Webwerf, 'n app wat slegs van u en u is, en u, u sagteware en u onderneming op die beste manier goed lyk. U sal ook 'n paar wenke en truuks van my leer, van koderingswenke, praktiese nietigheid soos grimering en fotografie, modellering en toneelspel, en meer, wat belangrik sal wees om uself en u onderneming in die beste moontlike lig uit te beeld met al die beskikbare instrumente met behulp van al die beskikbare instrumente aan u terwyl u soveel inhoud versprei as wat u nodig het oor 'n gesonde balans van platforms om u te bringe om te werk sonder meer moeite, werk of geld as wat nodig is. Hierdie boek word om 'n rede 'praktiese webgebaseerde diep leer en sekuriteit' genoem: dit handel oor leer om te kode die praktiese doeleindes soos uiteengesit in die teks. Die leerkomponent van hierdie teks omvat ook masjienleer, die kode wat ek u sal wys hoe om te werk vir die web wat rekenaarvisie, gesigsherkenning, beeld- en video -moderering, beeldverbetering, resolusieverbetering, beeldopskrif en ander take sal hanteer Voorspellingstatistieke afkomstig van beelde, soos die aard van die beeld as 'n outentieke, rekenaar-oordraagbare beeld, of 'n optiese kopie ('n foto van 'n afbeelding of 'n gedrukte foto). Masjienleer is baie belangrik as dit kom by websekuriteit en sagteware -sekuriteit, omdat dit take kan voorkom wat andersins onmoontlik was. U rekenaarTeken u aan met 'n wagwoordkode, maar dit kan veiliger wees om dit te gebruik as dit u met u gesig aanmeld. U kan 'n bediener -rekenaar hierdie kluis maak, 'n rekenaar wat u normaalweg 'n gebruikersnaam en ' Gebruik, fundamenteel veilig en kragtige sagteware, dit kan genoeg wees. Om u sagteware te nou aan iemand anders se sagteware te bind, soos 'n e -posdiens of 'n sms -boodskapdiens, is nie genoeg om u sagteware veilig te maak nie, of iemand se (enige webwerf wat u gebruik) nie. Enigiemand wat sagteware bou wat onberispelik veilig is, het 'n mate van gevoel van wat dit impliseer. Sagteware is inherent onseker omdat die toestelle en rekeninge wat ons gebruik om toegang daartoe te kry nie altyd tot ons beskikking is nie, hulle in die hande van iemand met 'n slegte voorneme vir die sagteware kan wees en daarom 'n risiko vir die sagteware self kan inhou. Dit is iets van die fokus van hierdie boek. 'N Netwerkrekenaar is standaardBeveilig met 'n lang sleuteltoken, genaamd en SSH of Secure Shell -sleutel, en is andersins die beste met 'n webbediener beveilig, omdat die webbediener die oop toegang en die stand van die kunsveiligheidsinstrumente op die bediener self bied. Die webbediener het toegang tot die gebruiker se webblaaier, wat waarskynlik die kragtigste deel van die gebruiker se toestel is, want dit is die plek waar die gebruiker toegang tot netwerk -sagteware het. Hierdie gereedskapstel kan teks lewer, die webblaaie wat u sien, en kan ook prente, klank en video opneem (soos 'n foto van 'n gesig of 'n toestand -ID), kan lees en skryf op Bluetooth -radio -toestelle, en kan lees en skryf na Near Field Transponder -etikette, goedkoop sleutelkaarte, fobs, plakkers, ringe en selfs chip -inplantings met unieke reeksnommers wat gelees en geskryf kan word met data wat gegenereer en bekragtig word deur 'n webbediener wat op die webwerf gekoppel is. Gebruik al die gereedskap tot u beskikking, met hierdie boek, sal u uself toerus met die kennis om 'n veilige webwerf te bou, en in die algemeen aURE -netwerk -rekenaarstelsel wat vir u werk, doen u bid en lyk en voel reg. Waar om te begin: U is welkom om verby die afdeling te slaan. Ek begin met hierdie boek met, of enige afdeling, na die presiese kode wat u benodig, veral as u ondervinding het met kodering voorheen of enige van die bogenoemde instrumente wat ek in hierdie boek in detail sal beskryf sowel as om gebruiksgevalle en praktiese voorbeelde daarvan te dokumenteer. As u nie ervaring in die skryf van kode het nie, beveel ek u aan om al hierdie boeke te lees, en beveel veral aan dat u die vorige afdelings lees, om seker te maak dat hierdie boek die beste by u is. As hierdie boek nie die beste by u is nie, oorweeg dit om dit aan 'n vriend of familielid te gee wat miskien belangstel om self oor webontwikkeling te leer, en dit selfs oorweeg om dit terug te leen en by hulle te leer om die leemtes in te vul waar ek u as 'n Onderwyser, of ander onderwysers het voor my gedoen. Begin waar u wil, elke deel van hierdie boek sal nuttig wees as u van plan is om 'n nuttige op te bouPP, en oorweeg dat die beste programme gebou is met die eindgebruiker in gedagte: ken u kliënt. Nou ken jy my, jy ken hierdie boek, en jy is gereed om te begin. Om mee te begin, gryp 'n rekenaar (selfs die goedkoopste skootrekenaar van 'n bokswinkel, Amazon of 'n ou tafelblad werk, en stel dit op 'n manier wat vir u werk. Hoe om hierdie boek te lees: Teks wat uitgelig is, dui aan dat die teks in 'n opdragprompt hoort, waar u die kode wat u uitgevoer het, sal skryf. Die opdragprompt is baie gefokus op die sleutelbord en benodig min tot geen klik nie, bespoedig u werkvloei en maak dit vir u makliker. Aan die gang: Kom ons duik in. Ons begin met die bou van kode op 'n plaaslike masjien en begin sonder om 'n webwerf wat aan die internet gekoppel is, te bou. Dit is veiliger om mee te begin, kos niks, en dit is maklik vir u. Afhangend van u bedryfstelsel, sal dit 'n bietjie anders wees om in 'n bash -dop te kom. Vir Mac OS beveel ek aan dat u op hierdie punt 'n virtuele masjien installeer, aangesien u die meeste verenigbaarheid sal kryvirtuele masjien. Verskeie verskaffers soos VirtualBox en Paralells kan 'n virtuele masjien vir u bestuur, hoewel dit ook moontlik is om Ubuntu direk op die masjien te installeer, as u verkies om 'n inheemse omgewing te gebruik wat aanbeveel word om 'n vinnige, vaartbelynde ervaring te skep. As u Linux of Windows gebruik, wat ek aanbeveel, moet dit maklik wees om 'n projek te skep. Maak u terminale oop, pas die grootte aan soos u inpas, en begin stap 2. As u Windows gebruik, volg Stap 1. Stap 1: - Slegs Windows -gebruikers Open Command Prompt as administrateur en tik in Windows in Windows WSL –install Stap 2: - Gaan hier voort, of slaan stap 1 oor tot hier as u nie Windows gebruik nie In 'n oop terminale (afhangende van u bedryfstelsel, genaamd Ubuntu in Windows, Terminal in Mac of Linux, of 'n soortgelyke naam), begin met die skep van 'n projek. Ons doen dit met die Mkdir -opdrag, wat 'n gids skep. Gebruik dieCD -opdrag om oor te skakel na die gids en en CD/pad/na/gids - Die pad is die gidse (lêers) wat voorafgaan aan u bestemmingsgids, u standaardpad is ~ of/huis/gebruikersnaam (waar gebruikersnaam u gebruikersnaam is). Om na die standaardgids te verander, tik CD of CD ~ in MKDIR Voorbeeld - Vervang 'voorbeeld' met die naam van die gids Nou het u 'n werkende gids vir u projek. Aangesien dit so belangrik is dat hierdie gids gestoor word as u na 'n ander masjien moet oorskakel of die kode wat u skryf, moet ontplooi, sodat dit gereed is vir die web, sal ons 'n skrif bou om u gids in die volgende paar stappe te rugsteun. Maar die bou van 'n skrif neem 'n bietjie kode in, en die kode moet outomaties wees om so bruikbaar as moontlik te wees. Laat ons dus 'n skrif bou om eers skrifte te bou. Laat ons begin deur die skrif te skep en uitvoerbaar te maak. Ons sal Sudo, Chmod en Touch hiervoor gebruik en die skrif noem
sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript
Nou het ons die skrif geskep, dit uitvoerbaar gemaak en is gereed om dit te wysig. Nano is 'n teksredakteur waarmee u teks kan redigeer sonder om te klik, wat baie makliker is as om 'n grafiese gebruikerskoppelvlak te gebruik. Gebruik nano en dan die pad na die lêer om 'n lêer met Nano te wysig. Om 'n draaiboek te maak wat 'n draaiboek maak, is dit redelik soortgelyk aan die maak van ons skrif in die eerste plek. Ons gebruik dieselfde kode as hierbo en vervang die naam van die skrif, 'ASCript' met 'n argumentparameter, $ 1. Hiermee kan ons die skrif noem deur eenvoudig Sudo Astcript Newscript in te tik, op watter punt ons enige nuwe skrif kan skep deur 'newcript' met die naam van u skrif te vervang. Die kode in Nano moet lyk soos:
sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1
En om Nano te sluit, kan ons die kontrolesleutel vashou en X druk, dan Y om aan te dui dat ons die lêer stoor en op die terugkeer kom. In plaas daarvan om hierdie drie opdragte in te tik om 'n skrif te redigeer, sal ons Sudo Astcript AstScript kan tik om die skrif weer te wysig. Dit werk! En enige nuwe skrif kan maklik uitgevoer word deur dit in die dop te noem. Laat ons nou ons werk stoor: kom ons skryf 'n rugsteunskrip om ons nuwe skrif te stoor en dit dan in ons projekgids te rugsteun, terwyl ons ook die rugsteunskrip rugsteun.
sudo ascript backup
Nou, in Nano:
sudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/
Waar/pad/na/gids die pad is na die projek wat u met MKDIR geskep het. Later sal ons leer hoe om herhaalde paaie soos hierdie te kopieer met 'n lus en 'n lys, wat minder kode is, maar laat ons dit nou eenvoudig hou en 'n paar reëls hê. Om hierdie skrip uit te voer en u kode te rugsteun, stoor die lêer in nano met control+x, y en return, en tik die onderstaande in u dop
backup
As u enigsins gevra word vir 'n wagwoord tydens die lees van hierdie boek en in die dop volg, voer u gebruikerswagwoord korrek in, u sal drie drieë hê voordat u die opdrag weer moet uitvoer. U kan die pyltjies op en af gebruik om opdragte weer te gee en dit te redigeer as u iets twee keer moet hardloop. Eenvoudig druk op en af af en toe om 'n opdrag te kies voordat u die opdrag met die regter-, linkerpyltjies en die sleutelbord sowel as die sleutelbord redigeer en dit met terugkeer loop.
Baie geluk! U het daarin geslaag om 'n ongelooflike rugsteunskrip te skep wat twee belangrike skulpskripte in u werkgids ondersteun. Ons kan later dinge rondbeweeg namate die projek groter word, maar dit werk nou. Laat ons verder gaan met die rugsteun in die wolk, ons sal GitHub hiervoor gebruik (alhoewel daar talle ander git -oplossings vir rugsteun is, is dit alles omtrent dieselfde.) Git is 'n verdelingskontrolesagteware waarmee u wysigings aan u kan rugsteun sagteware soos u dit na 'n bediener maak, terwylStel u ook in staat om volledige kopieë van u sagteware agter 'n wagwoord of sleutel af te laai. Dit is 'n belangrike rol in die stoor van u sagteware, veral as ons na die beveiligde Linux -gevalle migreer wat soms breek as 'n enkele reël kode misluk, wat u uitsluit terwyl u kode nie gerugsteun word as u nie die kans kry om dit te ondersteun nie outomaties, wat ons sal dek.
As u op hierdie punt nog nie 'n Ubuntu -virtuele masjien gebruik nie, beveel ek aan dat u 'n Ubuntu -virtuele masjien op hierdie punt gebruik, want dit sal u lewe vergemaklik wanneer u al die nodige pakkette installeer om 'n werkende webwerf te bou en diep leer bewerkings op u rekenaar. Ons sal die kode binne die nabye toekoms na 'n webbediener skuif, maar ons wil seker maak dat daar ten minste 'n paar lae sekuriteit agter ons webbediener is wat bestand is teen phishing, en 'n aantal Linux -pakkette gebruik om dit te kan doen hierdie. As u nog steeds Mac OS wil gebruik, is u welkom om na te soek en te installeerE nodige pakkette aanlyn, maar daar is miskien nie alternatiewe vir elke pakket wat hierdie boek of reeks dek nie.
Kom ons voeg 'n paar opdragte by om ons werk met die rugsteunskrip te pleeg deur die opdrag sudo -askrip te voer
# ...
git add –all
git commit -m “backup”
git push -u origin master
Weereens, beheer X om te stoor.
Nou moet ons eenmalige konfigurasie vir hierdie projek doen. Aangesien dit binnekort 'n GIT -projek sal wees, hoef ons nie elke opdrag te tik elke keer as ons van 'n Git -bewaarplek gebruik word nie, maar ons kry die weg as ons ons implementeringsskripte skryf. Laat ons eers seker maak dat ons in die regte gids is en die git -bewaarplek initialiseer en SSH -sleutels genereer.
cd /path/to/directory
git init
git branch -m master
ssh-keygen
Nadat ons SSH-Keygen ingetik het, moet die nuwe sleutel in die tuismap gestoor word onder 'n lêergids genaamd .SSH. Dit word ID_RSA.pub genoem. Kom ons vind hierdie sleutel en kopieer dit. Om dit te sien,
cd ~
cat .ssh/id_rsa.pub
Kopieer die teks wat deur die laaste opdrag teruggestuur word, en skep 'n rekening by u GIT -verskaffer (ideaal GitHub) voordat u die SSH -sleutel by u rekening voeg. Sodra u 'n rekening het, klik op die boonste regter -menu en voer instellings in voordat u u SSH -sleutel in SSH- en GPG -sleutels onder toegang in die menu voeg. Kies Voeg 'n SSH -sleutel by en voeg joune by deur dit in te plak en dit 'n titel te gee voordat u stoor en terugkeer na GitHub om 'n nuwe bewaarplek te skep. Dit is soortgelyk vir ander GIT -verskaffers, u moet hul dokumentasie lees. Gee u bewaarplek 'n beskrywende naam in die nuwe bewaarplekkonfigurasie en besluit of u dit wil publiseer, en maak seker dat u nog geen lêers vir insluiting opstel nie. Sodra die bewaarplek geskep is, kopieer die kloon met SSH URL en plak dit in die volgende opdrag.
git remote add git://… (your remote URL)
Nou kan u teruggaan na u bewaarplek met CD, u sal hiermee vertroud wees. Probeer nou u rugsteunskrif met rugsteun
Groot! Nou kan ons regtig kodering kry. Laat ons django installeer noudat ons 'n goeie begrip van Bash en Git het. Django laat ons outomaties ons sagteware rugsteun, Bash kan dit ook doen, maar Django moet 'n eenvoudiger veiliger implementering hê (dit kan makliker gedeaktiveer en makliker gekonfigureer word).
Om sagteware in Ubuntu te installeer, gebruik ons die Sudo Apt-Get-opdrag. Laat ons eers die sagteware wat ons reeds gehad het, opdateer en opgradeer. Dit kan gedoen word met Sudo Apt-Get Update en Sudo Apt-Get Upgrade -Y. Laat ons nou Python en ons virtuele omgewing, die tuiste van ons kode, installeer, met die volgende opdrag: Sudo apt-Get Install Python-is-Python3 Python3-VENV
Dit is al wat u nodig het om met Django aan die gang te kom in terme van sagteware -installasies in die Ubuntu -instansie. Vir Windows en Linux moet dit redelik eenvoudig wees, maar vir Mac wil u miskien 'n virtuele masjien installeer enLinux daarop met behulp van 'n gratis of betaalde virtuele omgewing soos VirtualBox of Paralells Desktop en herskep die bogenoemde stappe om 'n Ubuntu -omgewing op te stel. Ubuntu is in hierdie geval van kritieke belang omdat dit die sagteware is wat die webwerwe bestuur en dit in staat stel om webwerwe met al die bogenoemde sagteware aan te bied.
Kom ons grawe in die django.
Weer in ons gids, met
python -m venv venv # Skep die virtuele omgewing waar kode gestoor word
source venv/bin/activate # Aktiveer die virtuele omgewing
pip install Django
django-admin startproject mysite . # Waar MySite die projek is, begin ek in my huidige gids.
Django is net besig om ons aan die gang te kry, want Django bied die webbediener aan en doen alles wat ons nodig het om 'n basiese plaaslike webwerf aan die gang te kry. Noudat ons Django geïnstalleer het, laat ons die instellings 'n bietjie wysig om dit te laat werk soos ons nodig het. Laat ons eers 'n nuwe app skep
python manage.py startapp feed
U sal sien dat die eerste app Feed genoem word. Die app moet genoem word wat u wil, en ons sal nuwe programme skep, maar die naam van elke app moet konsekwent wees elke keer as die app in die kode verwys word. Om 'n nuwe app by te voeg, sal ons altyd die instellings.py wysig in die ander gids wat die app geskep het, genoem in StartProject, hierna App. Nano te gebruik,
nano app/settings.py
Vind geïnstalleerde_apps in die instellings en skei die [] in 3 reëls. Gebruik vier spasies op die leë middellyn, voeg 'voer' of die naam van u app by. Hierdie gedeelte van die instellings.py moet lyk soos:
INSTALLED_APPS = [
'feed',
]
Laat ons toets dat Django werk voordat ons vergeet. Met behulp van die opdrag python management.py runserver 0.0.0.0:8000, kan ons die bediener bestuur en dan in 'n webblaaier op die rekenaar navigeer met die kode na http: // localhost: 8000 en sien 'n voorbeeld van die webblad (dit werk!) Staak die bediener met beheer C, dieselfde as enige ander opdrag.
Laat ons nou 'n paar Python -kode skryf. Django het drie hoofkomponente, wat almal heeltemal volgens kode bestuur word. Die komponente word model, aansig en sjabloon genoem, en elkeen is onderskeidelik op 'n hoër en laer vlak voordat die webblad aan die gebruiker gelewer word.
Die model is die kode wat inligting in die databasis stoor vir herwinning, sorteer en weergawes.
Die siening besluit hoe die model weergegee, gemanipuleer en gewysig word, byna elke siening sal 'n model direk gebruik.
Die sjabloon is die HTML -kode met 'n paar ekstra klokkies en fluitjies wat sjabloontaal genoem word. Die sjabloon word weergegee deur die aansig waar dit gevul is met die python -kode enKonteks soos modelle en inligting (USUALL -snare en heelgetalle) van die siening.
Django het ook ander komponente, insluitend maar nie beperk nie tot:
Instellings, wat die app opstel soos ons bespreek het.
URL's, wat patrone is wat die gebruiker volg om toegang tot spesifieke dele van die webtoepassing te verkry.
Vorms, wat definieer hoe inligting wat aan die bediener gestuur word, hanteer en aan die databasis sowel as die gebruiker weergegee word. Dit is die basis om inligting aan die bedienerkant te verwerk, en kan enige soort inligting wat die rekenaarwinkels aanvaar, veral teksstringe, nommers en ware/vals Boolese (gewoonlik merkblokkies).
Sjablone, wat HTML -kode en sjabloontaal is en die gaping tussen Python en HTML oorbrug, wat beteken dat Python -inligting bedien kan word as HTML -kode wat iemand kan bekom en 'n webwerf met beperkte toegang kan beveilig, terwyl Python -kode toeganklik is vir die web en nuttig maak vir 'n verskeidenheid doeleindes op 'n afgeleë toestel wat dit nie doen nieeed om naby die bediener te wees.
Statiese lêers, wat gewoonlik JavaScript is en dit is biblioteke wat die bediener dien en met die sjabloon gekoppel is.
Media -lêers, wat die bediener bedien of ekstern aangebied word, of net aan die bediener geskryf is voordat hy verwerk word en na 'n ander bediener ('n emmer) geplaas word vir die aanbieding.
Middleware, wat stukke kode is wat op dieselfde tyd as elke siening uitgevoer word en wat as “ingesluit” in die aansig beskou word.
Konteksverwerkers, wat die konteks van elke siening verwerk en gebruik word om ekstra konteks by te voeg.
Toetse, wat bevestig dat die gebruiker of versoek sekere vereistes aan die aansig gee.
Verbruikers, wat bepaal hoe Websockets op kommunikasie hanteer en reageer.
Admin, wat gebruik word om modelle te registreer, sodat dit in detail binne die Django -admin -bladsy gemanipuleer kan word, waar die databasis via 'n grafiese koppelvlak toegedien kan word.
Seldery, wat asinchroniese take definieer dele van die django -kode kan beginNing voordat u onmiddellik voortgaan met die volgende taak of kode.
Django kan baie ander komponente hê, wat ons hier in detail sal bespreek. Daar is baie maniere om Django meer funksioneel te maak, by te voeg van websockets, wat vinnige, vaartbelynde kommunikasiekanale, seldery is, wat asinchroniese take uitvoer, en 'n menigte ander sagteware vir die uitbreiding van django, veral in die sieningsfunksies, waar die meeste is Die kode word uitgevoer. Kykfunksies is die sleutel omdat dit gewoonlik elke stuk kode verklaar wat spesifiek is vir 'n spesifieke URL -patroon, of 'n gedeelte van die bediener.
Laat ons eers kykfunksies ondersoek. Kykfunksies begin met invoer wat kode aandui wat in die aansig gebruik sal word, en word gedefinieer met behulp van gewone funksie -definisies of klasse. Die eenvoudigste aansigte word gedefinieer deur die funksie -definisie DEF, en gee 'n HTTPRESPONSE met 'n basiese sjabloon terug. Laat ons begin deur 'n basiese siening te definieer om die teks “Hello World” terug te gee. Onthou dat elke keer as u byvoegAs u 'n stelling soos DEF, indien u, ens, ens, u 4 ruimtes moet byvoeg vir elk van die voorafgaande definisies wat u op u funksie wil toepas. Ons sal binnekort begin wat elkeen hiervan beteken.
Bewerk die Feed/Views.py -lêer in die gids van ons webwerf met behulp van nano en voeg die volgende reëls aan die einde van die
from django.http import HttpResponse
def hello(request):
return HttpResponse('hello world')
Django se httpresponse reageer met 'n teksstring, aangedui met die opening en sluiting '. Elke keer as u inligting aan 'n funksie of klas deurgee, soos versoek of 'n string, moet u hakies (, opening en sluiting) gebruik.
Dit is nie al wat ons nodig het om ons siening te sien nie. Natuurlik het ons nie aan die bediener gesê waar die uitsig presies is nie; ons moet nog steeds 'n pad definieer waarmee die aansig moet lewer. Laat ons begin deur 'n basiese pad in app/urls.py te definieer, en ons sal later in padgroepe kom.
Voeg 'n reël na die invoerstate in App/URLS.py na die begin van die uitsig wat ons pas geskep het.
from feed import views as feed_views
Laat ons nou die uitsigpatroon definieer. Kykpatrone het drie komponente, die padkomponent, wat aan die bediener sê waar die aansig binne die bediener bestaan (die URL -pad wat die gebruiker in die navigasiebalk tik om die webblad in te gaan), die View -komponent waar die aansig gespesifiseer is, en A Vriendelike naam vir die uitsig, so dit is maklik om die patroon te haal as u met 'n sjabloon werk, veral sodat die naam daarvan verander kan word en indien nodig kan word om ruimte te maak vir 'n ander aansig of 'n meer logiese naam aan te neem. Dit is sinvol om dinge op hierdie manier te doen en buigsaam te wees, want u kodebasis sal 'n steeds veranderende omgewing wees wat buigsaamheid en improvisasie nodig het om waardevol en maklik te werk om mee te werk. Hier is hoe u siening sal lyk, u kan dit by die urlpatterns = [gedeelte van app/urls.py voeg. Die sieningspatroon word gedefinieer met die drie komponente hierbo beskryf, en 'n funksie genaamd Path. U URL -patrone is 'n lys, so maak seker dat u elke item altyd daarin beëindigmet 'n komma, want dit skei elkeen. Elke item moet ook op 'n nuwe lyn gaan, weer met vier ruimtes daarvoor, net soos die app in instellings.py. Ons definieer die eerste komponent van die aansig met 'n leë stringfunksie om 'n aansig te skep wat op die wortelgids van die webbediener werk. U urls.py moet nou lyk
from feed import views as feed_views
urlpatterns = [
path('', feed_views.hello, name='hello'),
]
Dit is die basis om 'n webwerf met Django te skep wat heeltemal staties is. Om 'n meer dinamiese webwerf te maak waar ons inligting kan begin, soos prente, video's, klank en meer, moet ons modelle gebruik wat ons volgende gaan ondersoek. Kom ons kyk nou na ons kode en voer die bediener uit. Om die kode vir foute na te gaan, hardloop:
python manage.py check
As daar foutboodskappe is, moet u die veranderinge wat u aan u app aangebring het, noukeurig hersien en kyk of daar iets is wat reggestel moet word, soos 'n vreemde of gebreke ruimte, 'n ekstra karakter, 'n ongeslote string, enige tikfout, enige per ongeluk geskrap karakter, of enigiets anders. As u die foutboodskap deurlees (as u een het), moet u die pad kan sien na 'n lêer wat u geskep of geredigeer het saam met 'n reëlnommer, dus kyk na die lêer en reël en kyk of u iets kan regstel wat daar is . As u die probleem opgelos het, voer die bogenoemde opdrag weer uit. As u sagteware gereed is om te hardloop en werk, sal u die uitset “Stelselkontrole geïdentifiseerde probleme” sien. Nou is jy gereed om te gaan. Begin die bediener met:
python manage.py runserver 0.0.0.0:8000
Maak nou 'n webblaaier oop en navigeer na http: // localhost: 8000. U moet sien dat die teks in u mening in die hakies en aanhalings van die HTTPResponse -funksie teruggestuur word. Dit is net 'n basiese voorbeeld, maar as u dit tot dusver bereik het, verstaan u die basiese beginsels van hoe Linux, Bash, Python en Django werk. Laat ons dieper in 'n paar databasismodellering delf en die krag van 'n Python -klas ondersoek in die stoor van inligting. Dan sal ons begin om HTML en CSS te gryp voordat ons ons webwerf volledig, buigsaam en veilig maak met JavaScript en masjienleer.
Klasse word in die modelle.py van u app gestoor. Gebruik nano, wysig app/modelle.py en voeg 'n nuwe klas by. 'N Klas word gedefinieer met die klasdefinisie en word deur 'n superklas geslaag waaruit dit erf, in hierdie geval modelle. Model. Die naam van die klas kom na die klasdefinisie, en na die klasdefinisie a: (kolon) word gebruik voordat die eienskappe en funksionele definisies wat aan die klas gekoppel is, hieronder aangedui word. Ons klasBenodig 'n ID wat ons kan gebruik om dit op te spoor en uniek te hou, en dit benodig ook 'n teksveld om inligting te stoor. Later kan ons 'n tydstempel, lêers, booleërs byvoeg (ware of vals definisies wat ons kode kan help om besluite te neem oor wat om met die model te doen, en kan gebruik word om dit te sorteer), 'n voorbeeld om die model aan 'n gebruiker aan te teken in die bediener, en meer. Kom ons pak die kode uit
from django.db import models # Die invoer wat gebruik word om ons klas en sy eienskappe te definieer
class Post(models.Model): # Die definisie van ons klas self
id = models.AutoField(primary_key=True) # Die ID van ons model, 'n outomaties gegenereerde sleutel waarmee ons die model kan bevraagteken, dit uniek kan hou en nuttig is as ons met die model moet omgaan sodra dit geskep is.
text = models.TextField(default='') # Die eienskap wat ons klaswinkel in hierdie geval, in hierdie geval, 'n teks, wat standaard is vir 'n leë string.
Sluit en stoor die lêer soos voorheen om klaar te maak.
Daar is baie ander velde en opsies wat ons sal ondersoek wanneer ons hierdie klas opdateer namate ons app ontwikkel, maar dit is die basiese benodigdhede om 'n app te skep om teks te plaas. Hierdie model sal egter nie alleen werk nie. Soos voorheen beskryf, benodig ons 'n pasgemaakte aansig en 'n pasgemaakte URL -patroon om hierdie model te laat werk, en ons sal ook 'n vorm saam met 'n sjabloon benodig. Kom ons ondersoek die vorm eers.
Om 'n vorm te definieer, wysig app/vorms.py met nano en voeg die volgende reëls by. Ons benodig twee invoere, ons vormklas, sowel as die model wat ons geskep het (Feed.models.Post), 'n klasdefinisie soortgelyk aan die model, en 'n veld saam met 'n subklas genaamd meta wat die model sal definieer. Die vorm is in wisselwerking met. Die vorm kan ook 'n inisialiseringsfunksie hê wat dit opstel op grond van inligting in die versoek, model of andersins, ons sal dit later ondersoek.
Modelvorms is so nuttig omdat dit 'n model kan skep of ook 'n model kan redigeer,Ons sal dit dus vir albei gebruik. Kom ons definieer een in vorms.py
from django import forms
from feed.models import Post
class PostForm(forms.ModelForm):
text = forms.CharField(widget=forms.Textarea)
class Meta:
model = Post
fields = ('text',)
Dit is die basiese beginsels van hoe 'n vorm en model lyk. Hierdie modelvorm kan gebruik word om 'n pos te installeer of te redigeer deur die teks wat dit bevat, te verander. Ons sal kyk na die integrasie van hierdie vorm in 'n uitsig. Laat ons eers die migrasies maak en die databasis migreer sodat ons kode met die model kan omgaan as dit loop. Om dit te doen, voer die volgende opdragte uit:
python manage.py makemigrations
python manage.py migrate
Dit sal 'n minuut neem om uit te voer, maar sodra dit dit doen, sal dit u toelaat om toegang tot die model in die aansigte, middelware of op enige ander plek in die sagteware te kry. Laat ons voortgaan deur 'n siening te maak waar ons ons model kan sien. Wysig Feed/Views.py en voeg die volgende kode by, soos aangedui. U hoef niks by te voeg na die # teken nie, die kode is kommentaar wat gebruik word om inligting oor die kode aan te dui. Ons sal begin met die invoer van ons model in die sienings en dit by te voeg tot 'n konteks waar ons dit in 'n sjabloon kan lewer as 'n lys om te vertoon. Vervolgens voeg ons 'n sjabloon by waar ons die vorm en die model met 'n knoppie kan lewer om 'n nuwe voorwerp te skep wat gebaseer is op die model en dit op die bediener kan plaas. Dit klink ingewikkeld, so laat ons dit net stap vir stap neem. Voordat ons klaar is met die aansig, laat ons 'n sjabloon skep wat die model net weergee en seker maak dat ons dit kan sien deur 'n nuwe pos in die dop te skep. Hier is hoe daardie siening moet lyk:
from feed.models import Post
from django.shortcuts import render, redirect
from django.urls import reverse
def feed(request):
posts = Post.objects.all() # Vra tot dusver al die plasings in die databasis
return render(request, 'feed/feed.html', {
'posts': posts,
})
Dit lyk alles redelik eenvoudig totdat ons onderaan kom. Weergegee, die waarde wat deur die funksie teruggestuur word in plaas van in 'n HTTP -antwoord soos die vorige voorbeeld, neem altyd 'n versoek as die eerste inset, aanvaar 'n konteks (in hierdie geval die poste in die databasis), wat nou in die sjabloon weergegee kan word , en gee die sjabloon wat in die funksie gedefinieër is, terug. Die sjabloon gaan 'n HTML -dokument wees met 'n bietjie taal genaamd Jinja2, wat Python -inligting in die HTML lewer.
Maak twee kaarte in voer om sjablone te begin skep.
mkdir feed/templates
mkdir feed/templates/feed
Bewerk vervolgens 'n sjabloon in die gids hierbo, voer/sjablone/voer, en voeg die kode by vir hierdie voorbeeld. Kom ons kyk na die sjabloon vir hierdie voorbeeld.
<!doctype HTML>
<html>
<body>
<legend>Feed</legend>
<hr>
{% for post in posts %}
<p>{{ post.text }}</p>
{% endfor %}
</body>
</html>
Dit is 'n baie eenvoudige sjabloon. Dit definieer die opening en sluiting van HTML -etikette, 'n dokumenttipe -etiket, 'n liggaamsmerk met 'n legende titel, 'n breekplaatjie wat 'n klein lyn oor die skerm voeg, en 'n vir lus wat elke pos in die lys van plasings as 'n paragraaf in die sjabloon. Dit is al wat nodig is om poste te lewer, maar daar is nog niemand in die databasis nie. Laat ons 'n paar met die dop skep. Ons kan die dop met bestuur.py bestuur
python manage.py shell
Laat ons nou ons posmodel invoer
from feed.models import Post
Vervolgens sal ons 'n eenvoudige pos met 'n tou skep en die dop verlaat. Die string kan enigiets wees, solank dit 'n geldige teks is.
Post.objects.create(text='hello world')
exit()
Laastens moet ons 'n URL -patroon by ons voer voeg. Aangesien ons voerprogram verskeie URL's sal gebruik en ons lêergroottes klein wil hou, laat ons 'n plaaslike URL.py skep in ons voerprogram wat so lyk:
from django.urls import path
from . import views
urlpatterns = [
path('', views.feed, name='feed'),
]
Ons sal ook die URLS.py in die basis -app moet redigeer, wat ons ook al besluit het om dit te noem, dit was die eerste gids wat ons geskep het. Wysig app/app.py en voeg die volgende by die URL -patrone
from django.urls import include # aan die bokant
urlpatterns = [
# ... Vorige kode hier
path('feed/', include(('feed.urls'), namespace='feed')),
]
As ons die bediener met Python Manage.py Runserver bestuur, sal ons die bladsy sien wat ons geskep het omdat ons die model, aansig en sjabloon sowel as URL -patroon het, saam met items in die databasis. Laat ons nou die vorm wat ons geskep het, implementeer en begin om ons eie poste te skep. Maar voordat ons te veel kode skryf, laat ons 'n rugsteun maak met behulp van die skrif wat ons vroeër geskryf het, rugsteun. Begin hierdie skrif in die dop, wag 'n paar oomblikke, en al die kode word gerugsteun na ons Git -bewaarplek.
backup
Die implementering van die vorm is relatief eenvoudig. Ons sal ons vorm invoer, 'n postversoekhanteerder by die aansig voeg en die pos in die databasis stoor voordat ons na dieselfde aansig herlei word. Ons kan die herlei -funksie wat ons reeds ingevoer het, gebruik, en 'n ander funksie genaamd omgekeerde om die URL vir die uitsigpatroon te kry. Ons sal dit bevraagteken met die string 'voer: voer', want die naamruimte van die ingeslote patroon is voer, en die uitsig word ook voer genoem.
from feed.forms import PostForm
def feed(request):
posts = Post.objects.all() # Vra tot dusver al die plasings in die databasis
if request.method == 'POST': # Hanteer die posversoek
form = PostForm(request.POST) # Skep 'n voorbeeld van die vorm en stoor die data daarop
if form.is_valid(): # Valideer die vorm
form.save() # Stoor die nuwe voorwerp
return redirect(reverse('feed:feed')) # Herlei na dieselfde URL met 'n GET -versoek
return render(request, 'feed/feed.html', {
'form': PostForm(), # Maak seker dat u die vorm in die konteks deurgee sodat ons dit kan lewer.
'posts': posts,
})
Nou moet ons die sjabloon opdateer om die nuwe vorm te verantwoord. Ons kan dit doen deur die
https://glamgirlx.com/af/practical-web-based-deep
https://glamgirlx.com/af/practical-web-based-deep -
Laat my 'n wenk in Bitcoin met behulp van hierdie adres: 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE
© Glam Girl X 2025