Praktisch webgebaseerd diep leren en beveiliging als voorbeeld

Door Daisy
Praktisch webgebaseerd diep leren en beveiliging bij voorbeeld Derde editie Charlotte Harper 3 juli 2024 Voorwoord: Beveiligingsoverwegingen in het bouwen van software voor internet zijn een belangrijk onderdeel van het plan en de uitvoering van elke webontwikkelaar, terwijl een prototype engineering van een prototype dat betrouwbaar, stabiel en nuttig is voor praktische doeleinden. De DOM (documentobjectmarkering), met de implementatie van HTML, JavaScript en CSS, evenals backend -software die Python, C/C ++, Java en Bash implementeert, geven webontwikkelaars de vrijheid en macht om een breed scala aan projecten te creëren die een breed scala aan projecten creëren die een breed scala aan projecten creëren die een breed scala aan projecten creëren die uitdrukkelijk zijn Creativiteit, zorg gemak van gebruik en functionaliteit, portretteren nederigheid en karakter en bieden gebruiksgemak, evenals gemak en belangrijke diensten die allemaal aantrekkelijk zijn voor de gemiddelde Joe, de eindgebruiker die tijd wil doden of iets op internet wil doen, Meestal op een touchscreen -smartphone -apparaat. De meeste mensen zouden niet eens weten waar ze moeten beginnen wanneer ze een website willen bouwenScratch, ze zouden de neiging hebben om op de website van een ander te beginnen en iets te bouwen dat beperkt is in functionaliteit, betrouwbaarheid, gebruiksgemak en vooral creativiteit wanneer ze de nieuwste krachtige tools tot hun beschikking hadden kunnen hebben om iets nuttigs te bouwen zonder tijd te verspillen met drukknoppen. , en vooral het verspillen van geld betalen voor dure abonnementen op software die weinig mensen toch wilden gebruiken, gezien de beperkingen van het gebruik en flexibiliteit. Als je een paar minuten hebt om dit boek te lezen en te leren wat ik je wil leren, of zelfs met mij persoonlijk over je doelen wil praten en wat begeleiding in de goede richting krijgt, en gemotiveerd zijn om te leren coderen en te schrijven van je eigen software , neem dit boek mee naar huis en zet wat tijd opzij om te leren de volgende invloedrijke, krachtige, gestroomlijnde en belangrijke webapplicatie te bouwen, een website die allemaal op u staat en precies doet wat u wilt en voldoet aan de behoeften van uw publiek. Over mij: Ik ben een softwareontwikkelaar metBereik van ervaring in C/C ++, Java, Python, HTML, CSS en JavaScript. Ik bouw websites die mensen willen gebruiken, willen bezoeken en zelfs verslaafd raken aan het gebruik alleen om tijd te leren, te herscheppen en te doden, en vooral, ik verkoop software. Als je een idee had om precies hoe je wilde dat een website eruit zou zien en functioneerde, was je bereid me te ondersteunen zodat ik aan mijn eigen behoeften kan voldoen terwijl ik de jouwe ontmoet, en je bent bereid om de kosten van het runnen van een website zelf te dekken, Ik zou je de volgende YouTube, Tiktok, Twitter, Google of zelfs een hightech-beveiligings-app bouwen die je toegang hebt. In plaats van te proberen je mijn tijd te verkopen, probeer ik de jouwe te kopen: ik wil je er zelf over hebben om een app (website) te bouwen met de informatie die al bestaat, en je te leren wat je nodig hebt om een onafhankelijke softwareontwikkelaar te zijn, Ondernemer, die een succesvolle carrière leidt op het gebied dat je wenst. En laat me duidelijk zijn, de opleiding die ik je geef, zal informeel zijn. Je zou naar school kunnen gaan en dit allemaal leren met eenFormeel onderwijs, of lees dit boek zelfs op school, voltooi je opdrachten en neem veel weg van je opleiding, maar ik zal je niet formeel in de hot -stoel zetten en je vragen om opdrachten te voltooien. Ik ben niet je professor, je kunt aan mij denken als een vriend die je wil begeleiden naar een carrière gedreven door je eigen persoonlijke succes. En ik verkoop je succes ook niet, je moet het met je tijd kopen. Leren te coderen heeft een steile leercurve en was nooit gemakkelijk, of zou zelfs moeten zijn. Je moet zo hard werken als je kunt en blijven proberen te falen en opnieuw te proberen, zelfs als je gefrustreerd bent om zelf apps te leren en te bouwen. Dat is in de aard van de code zelf. Code wordt uitgevoerd door een compiler die is ontworpen om de programmeerfoutmeldingen te geven, en deze zullen u leren hoe u moet coderen, zelfs als u de fout eenvoudigweg in uw zoekmachine kopieert en de voorbeelden van andere mensen leest. En ik moet zeggen, je hoeft niet extreem rijk, slim te zijn,essentief, of zelfs gedetailleerd georiënteerd of georganiseerd om een app te bouwen. De computer zorgt voor die organisatie voor u. Je hoeft alleen maar door de vallen en opstaan te volharden, de focus te behouden en hard te werken aan wat je doet, en je zult een zeer succesvolle carrière hebben in het geheel van wat je doet. Wie ik ben: Ik realiseer me dat het laatste deel meer ging over leren en je neemt een manier uit dit boek. Wie ben ik precies? Dat is een ingewikkelde vraag. Ik ben daar zelf onduidelijk over, omdat ik last heb van medische aandoeningen die het voor mij moeilijk kunnen maken om dit boek soms te coderen of te schrijven, terwijl ik uitdagingen voor socialisatie- en identiteitsproblemen presenteert die mijn leven moeilijker maken als het gaat om het introduceren van mezelf . Kortom, als je dit boek leest, heb je het naar huis gebracht omdat je er doorheen bent gegooid en dacht dat het nuttig was, of zelfs als je net zo ver in leest, ben ik een gelijkgestemde persoon die je wil zien slagen Alles wat je doet. Ik ben zelf een ingenieur,ontwikkelaar, en een student, en ik schrijf dit boek voor andere studenten die hun leven gemakkelijker willen maken door een handboek te hebben van de software die ze nodig hebben om hun leven gemakkelijker te maken door voorbeelden te geven die in elkaar passen als een grote puzzel in een werk , nuttige, grote, functionele, samenhangende en boeiende app die succes kan stimuleren, ongeacht de bedrijfslijnen. Grotendeels, dit is wat ik doe: ik bouw apps om mezelf en andere mensen te helpen slagen. Ik ben ook een auteur, hoewel dit mijn eerste publicatie is die ik van plan ben te voltooien om mijn portfolio samen te stellen in een nuttig document, en ik ben ook een kunstenaar. Ik zal je dit toegeven, ik ben een soort vreemd persoon. Ik ben niet perfect, ik heb de wet gehad met de wet, zelfs ertoe leiden dat ik hogescholen en universiteiten verlaten en staten verlaten om te proberen een naam voor mezelf te maken met meer succes. Ik ben een vrouw van geboorte, ik draag make -up, maak foto's van mezelf, draag jurken en andere dameskleding, en ik blijf me bewust van mezelf als eenvrouw van nature. Ik heb in het verleden problemen gehad met andere mensen die hebben geleid tot worstelingen met het schrijven en bouwen van webapps, en ik bied mijn excuses aan dat ik dit boek niet eerder in handen heb kunnen krijgen: je had dit nodig. Je wilt code lezen en schrijven die op de mijne lijkt en werkt als de mijne en hetzelfde doet, maar nog beter, want als je het je kunt veroorloven om dit boek te kopen in plaats van je toetsenbord te pureren zoals ik gewoon een boek maakt om zelf een boek te maken. Daarvoor heb je de middelen die je nodig hebt om succesvol te zijn in je leven. Ik had allerlei problemen met het opgroeien van familie, gezondheidstoestand, artsen, de media en de wet, en mijn code weerspiegelt diep de strijd die feminisme en vrouwelijke natuur is in een verdeelde en gefrustreerde wereld. Dit boek is echter iets waar ik diep om geef, mijn baby, mijn portfolio en mijn levensonderhoud, dus ik waardeer je overweging wanneer je de tekst naar huis neemt en er zorgvuldig overheen porent om van mij te leren. Houd er rekening mee dat ik dat niet benEct, dit boek zal fouten, revisies en nieuwe edities hebben, en je moet zo goed mogelijk met je logische brein denken om een succesvolle ervaring met mijn schrijven te hebben. Begrijp ook dat ik goed voor je bedoel, zelfs als je voor uitdagingen wordt geconfronteerd tijdens het schrijven. Denk er zo over na: als u gewoon een computersysteem kunt huren om alles te doen wat u zich kunt voorstellen in de digitale ruimte, alle informatie opslaat die u tegenkomt, #$%! Yze en organiseer het, en komt u begrijpen Onvermijdelijk moeilijkheden ondervinden met de informatie die u inneemt en zelfs publiceert. Ik vertel je dit omdat ik dezelfde moeilijkheden tegenkom. Gebruik dit boek op eigen risico, werk samen met uw community en communities die voor u beschikbaar zijn om software te bouwen binnen een veilige omgeving, en neem dingen niet persoonlijk aan wanneer u faalt of zelfs op de verkeerde manier slaagt: zo ben ik zo ver gekomen , en waarom ik je deze tekst kan brengen en je kan helpen slagen zonder af te wekken op een pad van waanzinAves me verpest, gescheurd en gerafeld terwijl ik de gewone problemen tegenkom die iedereen op wereldwijde schaal doet dankzij de paralellistische wereldwijde schaal van het netwerk waaraan we zullen werken, het internet. Je bent misschien niet erg bekend met wie ik ben met slechts een paar woorden, maar ik moedig je aan om verder te lezen, je zult me leren kennen terwijl je me blijft lezen en begrijpen tijdens het bouwen van je eigen projecten om je werk te voltooien. Er zal geen huiswerk zijn met dit boek, zolang uw professoren of leraren u geen enkele toewijzen, maar ik moedig u ten zeerste aan om zelf een portfolio van projecten te bouwen terwijl u leest, evenals een Capstone -project dat aantoont hoe u het kunt Pas toe wat je hebt geleerd. Mijn Capstone -project is de basis voor het grootste deel van wat je in dit boek gaat lezen, omdat het code van mijn vorige projecten bevat, code die ik heb gemaakt en geleerd om methodisch met de hand te schrijven, en een breed scala aan ideeën en tips die me hebben geholpen slagen tot het punt waar ik een eenvoudige app kan opdraaienVolledig uitgelicht en uiterlijk en gedraagt zich als een populaire app die je je vriend of familie op internet kunt gebruiken, op internet, geadverteerd aan jou of in het nieuws. Wat dit boek is: Dit boek is een tutorial bij voorbeeld. U kunt hier code vinden, instructies om te leren coderen, informatie over foutopsporingcode en fouten, stappen voor het oplossen van problemen, instructies over hoe u een back-up kunt maken en opslaan van uw code, opnieuw inzetten als iemand uw code breekt, uw code beveiligt, uw code beveiligt, uw code beveiligt, uw code beveiligt, uw code beveiligt, uw code beveiligt, uw code beveiligt, uw code beveiligt, uw code beveiligt, uw code beveiligt, uw code beveiligt, de implementatie implementeert. Uw code, bouw interactieve websites die vermakelijk, boeiend en verslavend zijn, en u zult een idee krijgen van wie ik ben, waarom dit belangrijk is en hoe u uzelf, uw app en bedrijfsimago kunt portretteren, evenals de software die u bouwt In het absoluut beste licht om het meest aantrekkelijk mogelijk te zijn voor uw eindgebruikers, de bezoekers van uw website. In dit boek zal ik een aantal voorbeelden van softwareontwerp demonstreren met een focus op internet als platform en beveiliging. We zullen de leerervaring initiëren door een basis te bouwenOject met behulp van de UNIX -shell, met back -up- en scriptfuncties. Vervolgens zullen we een basisblogwebsite onderzoeken, onze blog upgraden met foto- en videofuncties en deze functies gebruiken om beveiligingsoplossingen te gebruiken met behulp van gratis software en onze server beveiligen met behulp van een pluggable authenticatiemodule (PAM). We zullen dan bestuderen en verwerken van bestanden, het verkennen van videobewerking, spraakdonatie, barcodescanning en optische karakterherkenning, naast andere concepten. Onderweg zullen we API's onderzoeken die ons zullen helpen onze software nuttiger en veiliger te maken, met gratis en betaalde opties. Onderweg zullen we fysieke beveiligings- en militante tools onderzoeken zoals vuurwapens en munitieontwerp en -productie, waaronder het ontwerp van vat en repeater, torentje en drone -ontwerp en andere opdrachtgevers die we zullen integreren met onze software op het bestaande netwerk om onze software te beschermen en demonstreer zelfverdediging en resilversie. We zullen onderweg pauzes nemen om games te bouwen, 2D en 3DEnkerende motoren, en werk met ingebedde hardware in case study -voorbeelden van basisdimensionale rendering -software en een elektronische vibrerende massager die respectievelijk in siliconen rubber wordt gegoten. Onderweg zullen we ook machine learning -oplossingen gebruiken die al beschikbaar zijn om onze software beter te beveiligen. We zullen ook gebruik maken van stocktools die beschikbaar zijn voor het web om het proces te stroomlijnen en te beveiligen. Dit boek is een handleiding voor uw succes bij het bouwen van een webtoepassing en het integreren ervan met een professioneel netwerk van computer en ingebedde mechanische systemen, en over het algemeen een gids voor het bouwen van software en ingebedde hardware zonder achtergrondkennis of eerdere ervaring. Wat dit boek niet is: Als je echt een website wilt hebben, kun je gewoon een eenvoudige winkel opzetten en verkopen wat je nodig hebt, een blog posten, foto's of video's posten, of anderszins zonder ooit een enkele regel code te schrijven. Dit boek is dat niet. Dit boek leert u hoe u software kunt bouwen die nuttiger, volledig isUitgelicht, functioneel en veilig dan alle software die u al kunt vinden, omdat het de nieuwste software implementeert die nog steeds prototypes is, kan duur zijn om te worden uitgevoerd op een schaal die oudere bedrijven opereren, en een beroep doen op achterwaartse, ingewikkelde bedrijven die zijn opgezet Verdien geld voor mensen die niet echt iets doen. Als u dit boek nauwlettend volgt, wilt u code, onderzoekscode schrijven, uw eigen apps bouwen en u zult geld verdienen met wat u doet. Ik zal geld verdienen uit dit boek, zelfs in vroege stadia, omdat het informatie bevat die mensen nodig hebben en willen lezen, en al kopen wanneer ze mijn apps kopen of gebruiken. Dit boek zal geen app voor u bouwen, maar het zal u in de goede richting wijzen en u bewapenen met de tools die u nodig hebt en de vaardigheden en tips die uw eigen succes in het bouwen van software voor internet zullen vergemakkelijken, met elke regel van Code die u als voorbeeld moet schrijven, klaar om samen te voegen in software die u en uw supporters, gasten, klanten,Riends, familie, bezoekers, aannemers en de mensen van internet willen gebruiken en ondersteunen. Wat je zult leren: Dit boek leert u hoe u software kunt bouwen en verkopen, echt functionele, nuttige software, media -opname, beveiligingsfuncties zoals gezichtsherkenning, machine -leesbare zone barcodescan, web -API's om video en foto's te verifiëren, op te nemen en te renderen en berichten uit te wisselen zoals Bluetooth zoals Bluetooth zoals Bluetooth en Near Field (NFC) communicatie. Dit boek leert u hoe u een netwerkcomputer kunt gebruiken, gericht op Debian Linux, hoe u bash -code kunt bouwen om het installeren en een back -up van uw software een naadloze, geautomatiseerde bries te maken, hoe u pythoncode kunt bouwen als een backend om dynamische berichten, stijl te serveren, stijl Dingen die mooi zijn met CSS -stijlen met bootstrap, maakt gebruikersaanmeldingen en interactiviteit mogelijk via netwerkapparaten, bouwen interactieve media en netwerk met andere websites om beveiligingsfuncties aan te bieden, zoals sms -berichten voor verificatie of andere doeleinden, ID -scannen, afbeelding en video -matiging, gegevensRansacties om uw software veilig te houden, betalingsverwerking, cryptocurrency -handel, asynchrone taken en meer. U leert hoe u uw eigen Bluetooth -apparaten kunt bouwen, met batterijen, opladers, microcontrollers, circuits, motoren en sensoren, met soldeer, draad en 3D -geprinte evenals gegoten materialen. Ik zal demonstreren van 3D -ontwerpprincipes die zijn toegepast op additieve productie en gereedschap en het maken van die, zodat u uw eigen ingebedde, hardware -apparaten kunt produceren met geïntegreerde batterijen, opladers, elektronische circuits en functionele uitgangen. En netwerk ze met Bluetooth en het web. In het bijzonder zullen we twee casestudy's onderzoeken, een vibrerende massager en een zelfgemaakte vuurwapen, beide geprogrammeerd in OpenSCAD, die beschikbaar is als een grafische interface of opdrachtregelhulpprogramma en kan worden geïntegreerd in een web voor snellere resultaten. U leert hoe u een website vanaf de grond kunt bouwen en implementeren zonder voorafgaande ervaring, maakt deze functioneel, veilig, mooi, nuttig en de meesteMortant praktisch. U leert hoe u machine learning en computer vision kunt gebruiken om een site veilig en praktischer te maken, video en audio van uw website op te nemen, uw stem te doneren, muziek te maken en audio te moduleren om nuttige voorbeelden te maken en het geluid door te breken door Gebruikmakend van andere websites om het best mogelijke netwerk van websites te bouwen die u rechtstreeks aan de uwe kunt koppelen om alle nuttige informatie die u te bieden heeft te delen, en nog belangrijker mensen naar uw software en bedrijf te brengen. Dit boek zal het zwaarst gericht zijn op media, beveiliging en machine learning, de belangrijkste drie componenten die u zullen helpen nuttige software voor het web te bouwen door de juiste gebruikers te betrekken en de verkeerde te verbreken op een manier die realistisch, praktisch is, Hands on en boeiend, terwijl ook automatisch en stevig. Dit boek leert Unix, met name Debian (Ubuntu), Bash Shell, Python, HTML, CSS, JavaScript en een aantal nuttige softwarepakketten voorn houden van verzoeken, evenals nuttige bash -software zoals git en ffmpeg. Ik zal je ook leren hoe je Cryptocurrency automatisch kunt verhandelen en betalingen moet doen in cryptocurrency of van reguliere betaalpassen, terwijl je zelfs je bezoekers een deel van je inkomsten betaalt als je ervoor kiest om dit te doen. Ik zal je leren hoe je ook geld kunt verdienen met je website via advertenties, hoe je je app kunt klaarmaken voor zoekmachines en het snel kunt maken, gerangschikt in de eerste rangorde voor wat je klanten zullen zoeken om je te vinden, en in zoveel gebruikelijke wijze zoekopdrachten mogelijk. Ik zal u leren hoe u uw software kunt verkopen, adverteren, klanten aanspreken die op zoek zijn naar uw services en een naam voor uzelf op internet maken via wegen die al bestaan, zijn goedkoop en werken goed. Ik zal u leren hoe u uw gegevens kunt opslaan op cloudcomputers die voor u werken en uw gegevens goedkoop opslaan, hoe u een website kunt plannen en bouwen die doet wat uw gebruikers willen en wat u wilt en hoe u uw gebruikers betrokken kunt houdenuw site een tik weg op hun telefoons met meldingen, e -mail, sms -berichten, telefoontjes en meer wegen om uw gebruikers terug te brengen naar uw website tot uw beschikking achter de klik op de knop die alleen aan u is gewaarborgd. Dit boek zal zich richten op de bruikbaarheid van het publiceren en distribueren van media in grote hoeveelheden, van tekst tot foto's tot video's tot audio, een goede indruk maken op eindgebruikers (uw klanten) en uzelf verkopen op een manier die u doet om te maken om te maken Een website, een app die alleen voor u en u representatief is en u, uw software en uw bedrijf er goed uit laten zien op de best mogelijke manier. Je leert ook een paar tips en trucs van mij, van coderingstips, praktische ijdelheid zoals make -up en fotografie, modellering en acteren, en meer, wat belangrijk zal zijn om jezelf en je bedrijf in het best mogelijke licht te portretteren met alle beschikbare tools aan u terwijl u zoveel inhoud verspreidt als u nodig hebt over een gezond evenwicht van platforms om uwE tot bloei zonder meer moeite, werk of geld dan nodig is. Dit boek wordt om een reden "praktisch webgebaseerd diep leren en beveiliging bij voorbeeld" genoemd: het gaat over leren coderen, specifiek voor internet, specifiek met een focus op beveiliging, vanuit een praktisch standpunt, met voorbeelden van werkcode die dient De praktische doeleinden die in de tekst worden beschreven. De leercomponent van deze tekst omvat ook machine learning, de code die ik u zal laten zien hoe u kunt uitvoeren voor het web dat omgaat met computervisie, gezichtsherkenning, afbeelding en video -moderatie, beeldverbetering, resolutieverbetering, afbeelding bijschrift en andere taken zoals Voorspellingsstatistieken afkomstig van afbeeldingen, zoals de aard van de afbeelding als een authentieke, door de computer overgedragen afbeelding of een optische kopie (een foto van een afbeelding of afgedrukte foto). Machine learning is erg belangrijk als het gaat om webbeveiliging en softwarebeveiliging, omdat het taken kan voorafgaan die anders onmogelijk waren. Uw computerLog u in met een toegangscode, maar het kan veiliger zijn om het te gebruiken als het u in uw gezicht registreert. U kunt een servercomputer zo veilig maken, een computer die u normaal gesproken om een gebruikersnaam en toegangscode vraagt en u inlogt, misschien met een bevestigingstoken voor elke nieuwe login of nieuw IP -adres, maar als u grootschalige, gemakkelijk te bouwen bent Gebruik, fundamenteel veilige en krachtige software, dit kan voldoende zijn. Uw software te nauw verbinden met de software van iemand anders, zoals een e -mailservice of sms -service, is niet voldoende om uw software veilig te maken of iemands (elke site die u gebruikt). Iedereen die software bouwt die onberispelijk veilig is, heeft enig idee van wat dit impliceert. Software is inherent onzeker omdat de apparaten en accounts die we gebruiken om deze te openen niet altijd tot onze beschikking zijn, ze kunnen in handen zijn van iedereen met slechte intentie voor de software en kunnen daarom een risico vormen voor de software zelf. Dit is iets van de focus van dit boek. Er is standaard een netwerkcomputerbeveiligd met een lang sleuteltoken, genaamd en SSH of Secure Shell -sleutel, en is anders het best beveiligd met een webserver, omdat de webserver de open toegang biedt en de status van de kunstbeveiligingshulpmiddelen op de server zelf. De webserver heeft toegang tot de webbrowser van de gebruiker, wat misschien wel het krachtigste deel van het apparaat van de gebruiker is, omdat het de plaats is waar de gebruiker toegang heeft tot netwerksoftware. Deze toolkit kan tekst weergeven, de webpagina's die u ziet en kan ook afbeeldingen, audio en video opnemen (zoals een foto van een gezicht of een status -ID), kan lezen en schrijven naar Bluetooth -radio -apparaten en kan lezen en schrijven naar nabij Field Transponder -tags, goedkope sleutelkaarten, FOB's, stickers, ringen en zelfs chipimplantaten met unieke serienummers die kunnen worden gelezen en geschreven met gegevens die zijn gegenereerd en gevalideerd door een webserver die aan de website is gekoppeld. Met behulp van alle tools tot uw beschikking, met dit boek zul je jezelf uitrusten met de kennis om een veilige website te bouwen, en over het algemeen eenURE Networked Computer System dat voor u werkt, uw biedingen doet en ziet er goed uit en voelt en voelt zich goed. Waar te beginnen: U bent van harte welkom om de sectie over te slaan waarmee ik dit boek begin, of een andere sectie, naar de exacte code die u nodig hebt, vooral als u ervaring hebt met codering voor of een van de bovengenoemde tools die ik in dit boek in detail zal beschrijven als evenals het documenteren van use cases en praktische voorbeelden daarvan. Als je geen ervaring hebt met het schrijven van code, raad ik je ten zeerste aan al dit boek te lezen, en raad je vooral aan de vorige secties te lezen, om ervoor te zorgen dat dit boek geschikt is voor jou. Als dit boek niet geschikt is voor u, overweeg dan om het aan een vriend of familielid te schenken die misschien geïnteresseerd is in het leren over webontwikkeling zelf, en overweeg zelfs om het terug te lenen en van hen te leren om de gaten in te vullen waar ik u als een Leraar, of andere leraren deden voor mij. Begin waar u wilt, elk deel van dit boek zal nuttig zijn als u van plan bent een nuttige te bouwenPP, en bedenk dat de beste apps zijn gebouwd met de eindgebruiker in gedachten: ken uw klant. Nu ken je me, je kent dit boek en je bent klaar om te beginnen. Om te beginnen, pak je een computer (zelfs de goedkoopste laptop van een box -winkel, Amazon of een oude desktop werkt en zet hem op een manier die voor jou werkt. Hoe dit boek te lezen: Tekst gemarkeerd, geeft aan dat de tekst in een opdrachtprompt hoort, waar u de code die u uitvoert, schrijft. De opdrachtprompt is zwaar op het toetsenbord gericht en vereist weinig om niet te klikken, uw workflow te versnellen en dingen gemakkelijker te maken. Aan de slag: Laten we erin duiken. We beginnen met het bouwen van code op een lokale machine en beginnen zonder een website te bouwen die is verbonden met internet. Dit is veiliger om mee te beginnen, kost niets en is gemakkelijk voor u. Afhankelijk van uw besturingssysteem zal het in een bash -shell gaan een beetje anders zijn. Voor Mac OS raad ik aan om op dit moment een virtuele machine te installeren, omdat u de meeste compatibiliteit krijgtvirtuele machine. Verschillende providers zoals VirtualBox en Paralells kunnen een virtuele machine voor u uitvoeren, hoewel het ook mogelijk is om Ubuntu rechtstreeks op de machine te installeren, als u liever een native omgeving gebruikt die wordt aanbevolen om een snelle, gestroomlijnde ervaring te creëren. Als u Linux of Windows gebruikt, die ik aanbeveel, moet het vrij eenvoudig zijn om een project te maken. Open uw terminal, pas de maatstaf aan zoals u wilt en begin met het volgen van stap 2. Als u Windows gebruikt, volg dan stap 1. Stap 1: - alleen Windows -gebruikers Open de opdrachtprompt in Windows als beheerder en type wsl –stall Stap 2: - Ga hier verder of sla stap 1 over als u Windows geen Windows gebruikt In een open terminal (afhankelijk van uw besturingssysteem, Ubuntu genaamd in Windows, Terminal in Mac of Linux, of een vergelijkbare naam), begint u met het maken van een project. We doen dit met het MKDIR -opdracht, dat een map creëert. Als u een map moet maken om uw project op te slaan, die wordt aanbevolen, gebruik dan deCD -opdracht om te veranderen in de map en en en CD/PATH/TO/DIRECTORY - Het pad is de mappen (bestanden) die voorafgaan aan uw bestemmingsmap, uw standaardpad is ~ of/home/gebruikersnaam (waarbij gebruikersnaam uw gebruikersnaam is). Typ CD of CD ~ om te wijzigen in de standaardmap ~ MKDIR Voorbeeld - Vervang "Voorbeeld" door de naam van de map Nu heb je een werkmap voor je project. Omdat het zo belangrijk is om deze map te laten opslaan voor het geval u moet overschakelen naar een andere machine of de code die u schrijft moet implementeren, zodat het klaar is voor het web, zullen we een script bouwen om uw directory in de volgende stappen te ondersteunen. Maar het bouwen van een script kost een beetje code en code moet worden geautomatiseerd om zo nuttig mogelijk te zijn. Laten we dus een script bouwen om eerst scripts te bouwen. Laten we beginnen met het maken van het script en het uitvoerbaar maken. We zullen hiervoor sudo, chmod en touch gebruiken en het script aanroepen
sudo touch /usr/bin/ascript
sudo chmod a+x /usr/bin/ascript
sudo nano /usr/bin/ascript
Nu hebben we het script gemaakt, het uitvoerbaar gemaakt en zijn we klaar om het te bewerken. Nano is een teksteditor waarmee u tekst kunt bewerken zonder te klikken, wat veel eenvoudiger is dan het gebruik van een grafische gebruikersinterface. Gebruik Nano en vervolgens het pad naar het bestand om een bestand met nano te bewerken. Om een script te maken dat een script maakt, is het redelijk vergelijkbaar met het maken van ons script in de eerste plaats. We zullen dezelfde code gebruiken als hierboven, ter vervanging van de naam van het script, "Ascript" door een argumentparameter, $ 1. Hierdoor kunnen we het script aanroepen door eenvoudig Sudo Ascript Newscript te typen, op welk moment we elk nieuw script kunnen maken door "Newscript" te vervangen door de naam van uw script. De code in Nano zou eruit moeten zien als:
sudo touch /usr/bin/$1
sudo chmod a+x /usr/bin/$1
sudo nano /usr/bin/$1
En om Nano te sluiten, kunnen we de besturingstoets ingedrukt houden en op X drukken, dan y om aan te geven dat we het bestand opslaan en rendement raken. Nu in plaats van deze drie opdrachten te typen om een script te bewerken, kunnen we sudo ascript AScript typen om het script opnieuw te bewerken. Dit werkt! En elk nieuw script kan eenvoudig worden uitgevoerd door het in de shell aan te roepen. Laten we ons werk nu opslaan: laten we een back -upscript schrijven om ons nieuwe script op te slaan en het vervolgens te ondersteunen in onze projectmap, terwijl het ook een back -up van het back -upscript back -up maakt.
sudo ascript backup
Nu, in Nano:
sudo cp /usr/bin/backup /path/to/directory/
sudo cp /usr/bin/ascript /path/to/directory/
Waar/pad/naar/directory is het pad naar het project dat je hebt gemaakt met MKDIR. Later zullen we leren hoe we dergelijke herhaalde paden kunnen kopiëren met een lus en een lijst, die minder code is, maar laten we het voorlopig eenvoudig houden en een paar regels hebben. Sla het bestand op om dit script uit te voeren en back -up van uw code in nano met controle+x, y en retourneer en typ de onderstaande in uw shell
backup
Als u überhaupt wordt gevraagd voor een wachtwoord tijdens het lezen van dit boek en het volgen van de shell, voer dan uw gebruikerswachtwoord correct in, u hebt drie pogingen voordat u de opdracht opnieuw moet uitvoeren. U kunt de pijlen op en neer gebruiken om opdrachten te herstellen en te bewerken, als u alles twee keer moet uitvoeren. Eenvoudig op en neer druk op en neer om een opdracht te selecteren, voordat u de opdracht bewerkt met de rechter, linker pijlen en verwijderde toets en toetsenbord en het uitvoeren met retour.
Gefeliciteerd! Je bent erin geslaagd om een geweldig back -upscript te maken dat twee belangrijke shell -scripts in je werkmap maakt. We kunnen de dingen later verplaatsen naarmate het project groter wordt, maar dit werkt voor nu. Laten we verder gaan met een back -up in de cloud, we zullen GitHub hiervoor gebruiken (hoewel er talloze andere Git -oplossingen zijn voor back -up, ze zijn allemaal ongeveer hetzelfde.) Git is een waaringscontrole -software waarmee u een back -up van uw bewerkingen kunt maken Software terwijl u ze naar een server maakt, terwijlzodat u ook hele kopieën van uw software achter een wachtwoord of sleutel kunt downloaden. Het is een belangrijke rol bij het opslaan van uw software, vooral omdat we migreren naar beveiligde Linux -instanties die soms breken wanneer een enkele regel code mislukt, waardoor u wordt vergrendeld terwijl uw code mogelijk niet wordt ondersteund als u geen kans krijgt om het te ondersteunen automatisch omhoog, die we zullen dekken.
Als u op dit moment nog geen Ubuntu -virtuele machine gebruikt, raad ik op dit moment aan dat u een Ubuntu -virtuele machine gebruikt, omdat het uw leven gemakkelijker zal maken bij het installeren van alle benodigde pakketten om een werkende website te bouwen en diep te leren bewerkingen op uw computer. We zullen de code in de nabije toekomst naar een webserver verplaatsen, maar we willen ervoor zorgen dat er minstens een paar beveiligingslagen achter onze webserver zijn die bestand zijn tegen phishing en een aantal Linux -pakketten gebruiken om te doen dit. Als u nog steeds Mac OS wilt gebruiken, bent u van harte welkom om te zoeken en te installerenE Noodzakelijke pakketten online, maar er zijn mogelijk geen alternatieven voor elk pakket dat dit boek of serie zal behandelen.
Laten we een paar opdrachten toevoegen om ons werk te plegen met het back -upscript door de opdracht sudo -ascript uit te voeren
# …
git add –all
git commit -m “backup”
git push -u origin master
Breng nogmaals de controle van X om op te slaan.
Nu moeten we eenmalige configuratie uitvoeren voor dit project. Omdat het binnenkort een GIT -project zal zijn, hoeven we niet elke commando te typen telkens wanneer we vanuit een Git -repository worden geïmplementeerd, maar we zullen dit onder de knie krijgen wanneer we onze implementatievaringen schrijven. Laten we ervoor zorgen dat we ons in de juiste map bevinden en de GIT -repository initialiseren en SSH -toetsen genereren.
cd /path/to/directory
git init
git branch -m master
ssh-keygen
Nadat we SSH-keygen hebben getypt, moet de nieuwe sleutel worden opgeslagen in de huizenmap onder een map genaamd .ssh. Het wordt id_rsa.pub genoemd. Laten we deze sleutel vinden en kopiëren. Om het te zien,
cd ~
cat .ssh/id_rsa.pub
Kopieer de tekst die wordt geretourneerd door de laatste opdracht en maak een account aan bij uw GIT -provider (idealiter GitHub), voordat u de SSH -toets aan uw account toevoegt. Zodra u een account hebt, klikt u op het menu Rechtsboven en voert u instellingen in, voordat u uw SSH -toets toevoegt in SSH- en GPG -toetsen onder toegang in het menu. Selecteer een SSH -toets toevoegen en voeg de uwe toe door deze in te plakken en een titel te geven, voordat u opslaan en terugkeren naar GitHub om een nieuwe repository te maken. Dit is vergelijkbaar voor andere GIT -providers, u moet hun documentatie lezen. Geef uw repository in de nieuwe repository -configuratie een beschrijvende naam en beslis of u deze wilt publiceren, en zorg ervoor dat u nog geen bestanden voor opname configureert. Nadat de repository is gemaakt, kopieert u de kloon met SSH -URL en plakt u deze in de volgende opdracht.
git remote add git://… (your remote URL)
Nu kunt u teruggaan naar uw repository met CD, u zult hiermee bekend zijn. Probeer nu uw back -upscript met back -up
Geweldig! Nu kunnen we echt coderen. Laten we Django installeren nu we een goede greep hebben op bash en git. Django laat ons onze software automatisch een back -up maken, Bash kan dit ook doen, maar Django moet een eenvoudiger veiligere implementatie hebben (het kan gemakkelijker worden uitgeschakeld en geconfigureerd).
Om software in Ubuntu te installeren, zullen we de sudo apt-get-opdracht gebruiken. Laten we eerst de software bijwerken en upgraden die we al hadden. Dit kan worden gedaan met sudo apt-get update en sudo apt-get-upgrade -y. Laten we vervolgens Python en onze virtuele omgeving, de thuisbasis van onze code, installeren met de volgende opdracht: sudo apt-get install python-is-python3 python3-venv
Dit is alles wat je nodig hebt om met Django aan de slag te gaan in termen van software -installaties in de Ubuntu -instantie. Voor Windows en Linux zou dit vrij eenvoudig moeten zijn, maar voor Mac wilt u misschien een virtuele machine installeren enLinux erop met een gratis of betaalde virtuele omgeving zoals VirtualBox of Paralells Desktop en de bovenstaande stappen opnieuw maken om een Ubuntu -omgeving in te stellen. Ubuntu is in dit geval van cruciaal belang omdat het de software is die de websites uitvoeren en hiermee websites kunnen hosten met alle bovengenoemde software.
Laten we in de Django graven.
Opnieuw in onze map, met
python -m venv venv # Creëert de virtuele omgeving waar code wordt opgeslagen
source venv/bin/activate # Activeert de virtuele omgeving
pip install Django
django-admin startproject mysite . # Waar Mysite het project is dat ik begin in mijn huidige map.
Django laat ons net op weg gaan, omdat Django de webserver host en alles doet wat we nodig hebben om een eenvoudige lokale website in gebruik te nemen. Nu we Django hebben geïnstalleerd, laten we de instellingen een beetje bewerken om het te laten werken hoe we nodig zijn. Laten we eerst een nieuwe app maken
python manage.py startapp feed
U zult merken dat de eerste app feed wordt genoemd. De app moet worden genoemd wat u maar wilt, en we zullen nieuwe apps maken, maar de naam van elke app moet consistent zijn telkens wanneer de app in de code wordt verwezen. Om een nieuwe app toe te voegen, zullen we altijd de instellingen.py in de andere map bewerken, de app die is gemaakt, genaamd in StartProject, hierna app. Nano gebruiken,
nano app/settings.py
Zoek in de instellingen Installed_Apps en scheid de [] in 3 regels. Voeg 'feed' of de naam van uw app met vier spaties op de lege middellijn toe. Dit gedeelte van de instellingen.py moet eruit zien als:
INSTALLED_APPS = [
'feed',
]
Voordat we het vergeten, laten we testen dat Django werkt. Met behulp van de opdracht python management.py runserver 0.0.0.0:8000, kunnen we de server uitvoeren en vervolgens navigeren in een webbrowser op de computer die de code uitvoert naar http: // localhost: 8000 en een voorbeeldwebpagina bekijken (deze werkt!) Vertel de server met controle C, hetzelfde als elke andere opdracht.
Laten we nu een python -code schrijven. Django heeft drie hoofdcomponenten, ze zijn allemaal volledig uitgevoerd door code. De componenten worden model, weergave en sjabloon genoemd en elk bevindt zich respectievelijk op een hoger en lager niveau voordat de webpagina aan de gebruiker wordt geleverd.
Het model is de code die informatie opslaat in de database voor het ophalen, sorteren en renderen.
De weergave bepaalt hoe het model wordt weergegeven, gemanipuleerd en gewijzigd, bijna elke weergave zal een model rechtstreeks gebruiken.
De sjabloon is de HTML -code met wat extra toeters en fluitjes genaamd sjabloontaal. De sjabloon wordt weergegeven door de weergave waar deze gevuld is met Python -code enContext zoals modellen en informatie (usuall strings en gehele getallen) uit de weergave.
Django heeft ook andere componenten, waaronder maar niet beperkt tot:
Instellingen, die de app configureren zoals we hebben besproken.
URL's, die patronen zijn die de gebruiker volgt om toegang te krijgen tot specifieke delen van de webtoepassing.
Formulieren, die bepalen hoe informatie die naar de server wordt verzonden, wordt behandeld en weergegeven aan de database en aan de gebruiker. Dit vormen de basis van het verwerken van informatie aan de serverzijde en kunnen elk type informatie accepteren dat de computer slaat, met name tekstreeksen, nummers en true/false booleans (meestal selectievakjes).
Sjablonen, die een HTML -code en sjabloontaal zijn en de kloof tussen Python en HTML overbruggen, wat betekent dat Python -informatie kan worden geserveerd als HTML -code die iedereen toegang heeft en een website kan beveiligen met beperkte toegang, terwijl Python -code toegankelijk is voor internet en nuttig Voor verschillende doeleinden op een extern apparaat dat nieteed om in de buurt van de server te zijn.
Statische bestanden, die meestal JavaScript zijn en de bibliotheken die de server bedient en zijn gekoppeld aan de sjabloon.
Mediabestanden, die de server serveert of extern wordt gehost, of gewoon naar de server worden geschreven voordat ze worden verwerkt en op een andere server (een emmer) voor hosting worden geplaatst.
Middleware, dat stukjes code is die tegelijkertijd met elke weergave worden uitgevoerd en worden beschouwd als 'inbegrepen' in de weergave.
Contextprocessors, die de context van elke weergave verwerken en worden gebruikt om extra context toe te voegen.
Tests, die valideren dat de gebruiker of het verzoek aan bepaalde vereisten voldoet voordat de weergave wordt weergegeven.
Consumenten, die bepalen hoe websockets omgaan en reageren op communicatie.
Admin, die wordt gebruikt om modellen te registreren zodat ze in detail kunnen worden gemanipuleerd op de Django -admin -pagina, waar de database kan worden beheerd via een grafische interface.
Selderij, die asynchrone taken definieert, kunnen delen van de Django -code beginnenNning voordat u onmiddellijk naar de volgende taak of regel van code ging.
Django kan veel andere componenten hebben, die we hier in detail zullen bespreken. Er zijn tal van manieren om Django functioneler te maken, websocket toe te voegen, die snel, gestroomlijnde communicatiekanalen, selderij zijn, die asynchrone taken uitvoeren, en een veelheid aan andere stukken software voor het uitbreiden van Django, vooral in de viewfuncties, waar de meeste van functies de code wordt uitgevoerd. Bekijkfuncties zijn belangrijk omdat ze meestal elk stuk code verklaren dat specifiek is voor een specifiek URL -patroon of een gedeelte van de server.
Laten we eerst de view -functies verkennen. Bekijkfuncties beginnen met importcode die in de weergave wordt gebruikt en worden gedefinieerd met behulp van reguliere functiedefinities of klassen. De eenvoudigste weergaven worden gedefinieerd door de functiedefinitie DEF en retourneer een HTTPRESPONE met een basissjabloon. Laten we beginnen met het definiëren van een basisweergave om de tekst "Hallo wereld" te retourneren. Onthoud dat elke keer dat u toevoegtNa een verklaring als def, als, terwijl, voor, enz., u 4 spaties moet toevoegen voor elk van de voorgaande definities die u op uw functie wilt toepassen. We zullen ingaan op wat elk van deze betekent binnenkort.
Bewerk vanuit de map van onze site het bestand feed/views.py met nano en voeg de volgende regels toe aan het einde van de
from django.http import HttpResponse
def hello(request):
return HttpResponse('hello world')
Django's HttPresponse reageert met een tekstreeks, aangegeven met de opening en sluiting '. Telkens wanneer u informatie doorgeeft aan een functie of klasse, zoals aanvraag of een tekenreeks, moet u haakjes (, openen en sluiten) gebruiken.
Dit is niet alles wat we nodig hebben om onze mening nog te zien. Natuurlijk hebben we de server niet verteld waar de weergave precies is, we moeten nog steeds een pad definiëren waarmee de weergave moet worden weergegeven. Laten we beginnen met het definiëren van een basispad in app/urls.py en we zullen later in padgroepen komen.
Voeg in app/urls.py een regel toe na de importverklaringen na het begin met het importeren van de weergave die we zojuist hebben gemaakt.
from feed import views as feed_views
Laten we nu het weergavepatroon definiëren. Bekijkpatronen hebben drie componenten, de padcomponent, die de server vertelt waar de weergave bestaat binnen de server (het URL -pad dat de gebruiker typt in de navigatiebalk om de webpagina in te voeren), de weergavecomponent waar de weergave is opgegeven, en een Vriendelijke naam voor de weergave, dus het is gemakkelijk om het patroon op te halen bij het werken met een sjabloon, vooral zodat de naam kan worden gewijzigd en bijgewerkt indien nodig om ruimte te maken voor een andere weergave of een meer logische naam aan te nemen. Het is logisch om dingen op deze manier te doen en flexibel te zijn, omdat uw codebase een steeds veranderende omgeving zal zijn die flexibiliteit en improvisatie nodig heeft om waardevol en gemakkelijk mee te werken. Dit is hoe uw weergave eruit zal zien, u kunt dit toevoegen aan de urlpatterns = [sectie van app/urls.py. Het weergavepatroon wordt gedefinieerd met de drie hierboven beschreven componenten en een functie die pad wordt genoemd. Uw URL -patronen zijn een lijst, dus zorg ervoor dat u elk item er altijd in beëindigtmet een komma, omdat dit elk scheidt. Elk item moet ook op een nieuwe regel gaan, opnieuw met vier spaties ervoor, net als de app in instellingen.py. We definiëren het eerste onderdeel van de weergave met een lege stringfunctie om een weergave te maken die op de hoofdmap van de webserver wordt uitgevoerd. Uw urls.py zou er nu uit moeten zien
from feed import views as feed_views
urlpatterns = [
path('', feed_views.hello, name='hello'),
]
Dit is de basis voor het maken van een website met Django die volledig statisch is. Om een meer dynamische website te maken waar we kunnen beginnen met het cachen van informatie, zoals afbeeldingen, video's, audio en meer, moeten we modellen gebruiken, die we vervolgens zullen verkennen. Laten we voor nu onze code controleren en de server uitvoeren. Voer de code op om de code te controleren:
python manage.py check
Als er foutmeldingen zijn, moet u de wijzigingen die u in uw app hebt aangebracht zorgvuldig bekijken en kijken of er iets is dat moet worden opgelost, zoals een vreemde of gebrek aan ruimte, een extra teken, een niet -afgesloten string, een typefout, een per ongeluk Verwijderd karakter, of iets anders. Het lezen van de foutmelding (als je er een hebt), zou je het pad moeten kunnen zien naar een bestand dat je hebt gemaakt of bewerkt samen met een regelnummer, dus kijk in dat bestand en regel en kijk of je iets kunt repareren dat er is . Als u het probleem hebt opgelost, voert u de bovenstaande opdracht opnieuw uit. Wanneer uw software klaar is om uit te voeren en werkt, ziet u de uitvoer "Systeemcontrole die geen problemen heeft geïdentificeerd". Nu ben je klaar om te gaan. Voer de server uit met:
python manage.py runserver 0.0.0.0:8000
Open nu een webbrowser en navigeer naar http: // localhost: 8000. In uw weergave zou de tekst moeten worden geretourneerd in de haakjes en citaten van de HTTPRESPONSE -functie. Dit is slechts een fundamenteel voorbeeld, maar als je het zo ver hebt gehaald, begrijp je de basisprincipes van hoe Linux, Bash, Python en Django werken. Laten we dieper ingaan op wat databasemodellering en de kracht van een Python -klasse verkennen bij het opslaan van informatie. Vervolgens beginnen we een grip te krijgen op HTML en CSS voordat we onze site volledig aanbevolen, flexibel en veilig maken met behulp van JavaScript en Machine Learning.
Klassen worden opgeslagen in de modellen.py van uw app. Nano gebruiken, app/modellen.py bewerken en een nieuwe klasse toevoegen. Een klasse wordt gedefinieerd met de klassendefinitie en wordt doorgegeven aan een superclass waar deze van, in dit geval modellen.model. De naam van de klasse komt na de klassendefinitie en na de klassendefinitie A: (colon) wordt gebruikt, voordat de attributen en functiedefinities die aan de klasse zijn gekoppeld hieronder worden aangegeven. Onze klasHeeft een ID nodig die we kunnen gebruiken om het op te halen en uniek te houden, en het heeft ook een tekstveld nodig om wat informatie op te slaan. Later kunnen we een tijdstempel, bestanden, booleans toevoegen (ware of valse definities die onze code kunnen helpen beslissingen te nemen over wat te doen met het model, en kunnen worden gebruikt om het te sorteren), een instantie om het model aan een gebruiker te binden in de server, en meer. Laten we de code uitpakken
from django.db import models # De import die wordt gebruikt om onze klasse en de attributen te definiëren
class Post(models.Model): # De definitie van onze klas zelf
id = models.AutoField(primary_key=True) # De ID van ons model, een automatisch gegenereerde sleutel waarmee we het model kunnen opvragen, uniek houden en nuttig zijn wanneer we met het model moeten communiceren zodra het is gemaakt.
text = models.TextField(default='') # Het kenmerk onze klasse -opslag, in dit geval, wat tekst, die niet in gebreke zijn gebleven naar een lege tekenreeks.
Sluit en sla het bestand op zoals we eerder deden om te voltooien.
Er zijn veel andere velden en opties die we zullen onderzoeken wanneer we deze klasse bijwerken naarmate onze app evolueert, maar dit is de basisbehoeften om een app te maken om wat tekst te plaatsen. Dit model werkt echter niet alleen. Zoals eerder beschreven, hebben we een aangepaste weergave en aangepast URL -patroon nodig om dit model te laten werken, en we hebben ook een formulier nodig samen met een sjabloon. Laten we eerst het formulier verkennen.
Om een formulier te definiëren, bewerkt u app/forms.py met nano en voegt u de volgende regels toe. We hebben twee import nodig, onze formulierenklasse, evenals het model dat we hebben gemaakt (feed.models.post), een klassendefinitie vergelijkbaar met het model en een veld samen met een subklas met. Het formulier kan ook een initialisatiefunctie hebben die deze instelt op basis van informatie in het verzoek, model of anderszins, we zullen dit later verkennen.
Modelformulieren zijn zo nuttig omdat ze een model kunnen maken of ook een model kunnen bewerken,Dus we zullen ze voor beide gebruiken. Laten we er een in vormen definiëren. 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 de basisprincipes van hoe een vorm en model eruit zien. Dit modelformulier kan worden gebruikt om een bericht te instantiëren of te bewerken, waarbij de tekst die het bevat te wijzigen. We zullen kijken naar de integratie van dit formulier in een weergave hierna. Laten we eerst de migraties maken en de database migreren, zodat onze code kan communiceren met het model wanneer het wordt uitgevoerd. Om dit te doen, voert u de volgende opdrachten uit:
python manage.py makemigrations
python manage.py migrate
Dit duurt een minuut om uit te voeren, maar zodra dit het geval is, kunt u toegang krijgen tot het model in de weergaven, middleware of ergens anders in de software. Laten we doorgaan door te bekijken waar we ons model kunnen zien. Bewerk feed/views.py en voeg de volgende code toe, zoals opgemerkt. U hoeft niets toe te voegen na het # -teken, die code is opmerkingen die worden gebruikt om informatie over de code aan te geven. We beginnen met het importeren van ons model in de weergaven en het toevoegen aan een context waarin we het in een sjabloon kunnen weergeven als een lijst voor weergave. Vervolgens zullen we een sjabloon toevoegen waarbij we het formulier en het model kunnen weergeven met een knop om een nieuw object te maken op basis van het model en het op de server te plaatsen. Dit klinkt ingewikkeld, dus laten we het stap voor stap zetten. Voordat we de weergave voltooien, laten we een sjabloon maken die het model gewoon weergeeft en ervoor zorgen dat we het kunnen zien door een nieuwe post in de shell te maken. Hier is hoe die weergave eruit moet zien:
from feed.models import Post
from django.shortcuts import render, redirect
from django.urls import reverse
def feed(request):
posts = Post.objects.all() # Vraag alle berichten tot nu toe in de database
return render(request, 'feed/feed.html', {
'posts': posts,
})
Dit ziet er allemaal vrij eenvoudig uit totdat we tot de bodem zijn. Render, de waarde die wordt geretourneerd door de functie in plaats van in een HTTP -reactie zoals het vorige voorbeeld, neemt altijd een verzoek als de eerste invoer, accepteert een context (in dit geval de berichten in de database), die nu in de sjabloon kunnen worden weergegeven en retourneert de sjabloon die in de functie is gedefinieerd. De sjabloon wordt een HTML -document met een beetje een taal genaamd Jinja2, die Python -informatie naar de HTML maakt.
Om te beginnen met het maken van sjablonen, maak je twee mappen in feed.
mkdir feed/templates
mkdir feed/templates/feed
Bewerk vervolgens een sjabloon in de bovenstaande map, feed/sjablonen/feed en voeg de code toe voor dit voorbeeld. Laten we eens kijken naar de sjabloon voor dit voorbeeld.
<!doctype HTML>
<html>
<body>
<legend>Feed</legend>
<hr>
{% for post in posts %}
<p>{{ post.text }}</p>
{% endfor %}
</body>
</html>
Dit is een heel eenvoudige sjabloon. Het definieert het openen en sluiten van HTML -tags, een tag met documenttype, een body -tag met een legendetitel, een break -tag die een kleine lijn over het scherm toevoegt, en een voorlus die elk bericht in de lijst met berichten weergeeft als een paragraaf in de sjabloon. Dit is alles wat nodig is om berichten te geven, maar er zijn er nog geen in de database. Laten we wat maken met de shell. We kunnen de shell uitvoeren met management.py
python manage.py shell
Laten we nu ons postmodel importeren
from feed.models import Post
Vervolgens zullen we een eenvoudige post maken met een string en de shell verlaten. De string kan alles zijn, zolang het geldige tekst is.
Post.objects.create(text='hello world')
exit()
Ten slotte moeten we een URL -patroon aan onze feed toevoegen. Omdat onze feed -app meerdere URL's gebruikt en we de bestandsgroottes klein willen houden, laten we een lokale urls.py maken in onze feed -app die er zo uitziet:
from django.urls import path
from . import views
urlpatterns = [
path('', views.feed, name='feed'),
]
We zullen ook de urls.py in de basis -app moeten bewerken, wat we ook besloten het te noemen, dit was de eerste directory die we hebben gemaakt. Bewerk app/app.py en voeg het volgende toe aan de URL -patronen
from django.urls import include # bovenaan
urlpatterns = [
# ... vorige code hier
path('feed/', include(('feed.urls'), namespace='feed')),
]
Wanneer we de server nu uitvoeren met python management.py runserver, zien we de pagina die we hebben gemaakt omdat we het model, de weergave en het url -patroon hebben, samen met items in de database. Laten we vervolgens het formulier implementeren dat we hebben gemaakt en beginnen met het maken van onze eigen berichten. Maar voordat we te veel code schrijven, laten we een back -up maken met het script dat we eerder hebben geschreven, back -up. Voer dit script in de shell uit, wacht een paar ogenblikken en alle code wordt ondersteund door onze GIT -repository.
backup
Het implementeren van het formulier is relatief eenvoudig. We zullen ons formulier importeren, een post -aanvraaghandler toevoegen aan de weergave en het bericht opslaan in de database voordat we naar dezelfde weergave worden gericht. We kunnen de omleidingsfunctie gebruiken die we al hebben geïmporteerd, en een andere functie genaamd Reverse om de URL voor het weergavepatroon te krijgen. We zullen dit opvragen met de tekenreeks 'Feed: Feed' omdat de naamruimte van het opgenomen patroon feed is en de weergave ook Feed wordt genoemd.
from feed.forms import PostForm
def feed(request):
posts = Post.objects.all() # Vraag alle berichten tot nu toe in de database
if request.method == 'POST': # Behandel het postverzoek
form = PostForm(request.POST) # Maak een instantie van het formulier en sla de gegevens op
if form.is_valid(): # Valideer het formulier
form.save() # Sla het nieuwe object op
return redirect(reverse('feed:feed')) # Direct door naar dezelfde URL met een GET -verzoek
return render(request, 'feed/feed.html', {
'form': PostForm(), # Zorg ervoor dat u de vorm in de context doorgeeft, zodat we het kunnen weergeven.
'posts': posts,
})
Nu moeten we de sjabloon bijwerken om rekening te houden met het nieuwe formulier. We kunnen dit doen door de
https://glamgirlx.com/nl/practical-web-based-deep
https://glamgirlx.com/nl/practical-web-based-deep -
Laat me een tip achter in Bitcoin met dit adres: 3KhDWoSve2N627RiW8grj6XrsoPT7d6qyE
© Glam Girl X 2025