Sådan oprettes din egen Python-dev-server med Raspberry Pi

Enkelt sagt er Raspberry Pi en super billig ($ 40) Linux-baseret computer. Det er det. Helt seriøst.

Det kan gøre, hvad du kan forestille dig, at en normal Linux-computer kan gøre, såsom at surfe på nettet, skrive kode, redigere dokumenter og oprette forbindelse til I / O-enheder, f.eks. Et tommelfinger, mus, tastatur osv. Denne vejledning vil fokusere på lære at lave din egen Python dev-server med Raspberry Pi.

Trin 0. Definer målet

Før vi begynder, er det vigtigt at forstå, hvad det er, vi prøver at bygge. Ved afslutningen af ​​vejledningen vil du kunne køre et grundlæggende websted (ved hjælp af Flask) fra en Raspberry Pi på dit lokale hjemmenetværk.

Målet med denne vejledning er at demonstrere, hvordan en Pi kan bruges som en dev-server, mere specifikt vil eksemplet være at være vært for et simpelt websted (ved hjælp af Flask).

Trin 1. Angiv antagelserne

Her er nogle antagelser, som denne tutorial giver:

  1. Du har allerede en Raspberry Pi oprettet med Raspbian OS. Her er en nyttig installationsvejledning, hvis du har brug for en.
  2. Pi er tilsluttet dit hjem WiFi (og at du kender Pi's IP-adresse).
  3. Du har ikke brug for en skærm fremad. forudsat at punkt 1 og 2 er komplette.

Vi bruger VS-kode med Remote VSCode-udvidelsen til eksternt at oprette og redigere filer på Pi. Jeg anbefaler bestemt, at du bruger disse to til at følge med. Disse vil også gøre arbejdet med fjernfiler meget lettere, så det er et plus.

Trin 2. Find Pi's IP-adresse

Forbind først Pi til en strømforsyning, og sørg for, at den er startet korrekt og forbundet til WiFi / Ethernet (grundlæggende skal den have en internetforbindelse).

Vi bruger ssh til at oprette forbindelse til og kommunikere med Pi. For at gøre det eksternt ved hjælp af en bærbar computer skal du kende dens IP-adresse. Dette kan let opnås ved hjælp af din internetudbyders adminportal (normalt tilgængelig på //192.168.0.1. Bemærk, at dette kan være anderledes for forskellige internetudbydere.)

Normalt skal du have din Pi tilsluttet en adresse, der kan ligne '192.168.0.12.' Igen vil dette være anderledes for forskellige mennesker. Så brug den IP-adresse, du fandt til din Pi i adminportalen. Fremadrettet bruger denne tutorial 192.168.0.12 som Pi's IP-adresse.

Trin 3. Opret forbindelse til Pi ved hjælp af ssh

Åbn VS-kode og dens indbyggede terminalvindue på din bærbare computer. Opret forbindelse til Pi med en IP-adresse på 192.188.0.12 ved hjælp af følgende ssh-kommando:

ssh -R 52698: localhost: 52698 [email protected]

Ovenstående kommando opretter en 2-vejs kommunikationskanal mellem din bærbare computer og Pi. Hvis dette er første gang, du opretter forbindelse til Pi, skal du bruge hindbær som adgangskode. Du bliver muligvis bedt om at ændre din standardadgangskode. Det anbefales stærkt, at du gør det.

Trin 4. Opret en projektmappe

Du skal nu være i Pi's hjemmekatalog. Lad os oprette et bibliotek til det websted, vi ønsker at bygge. Brug følgende kommando til at oprette biblioteket:

mkdir MyFlaskWebsite

Brug kommandoen 'ls' til at bekræfte, at du virkelig kan se en ny mappe ved navn MyFlaskWebsite.

Trin 5. Installer kolbe

Vi bruger Flask til at oprette et simpelt websted. Flask er en Python-baseret mikroweb-ramme. Det bruger Jinja (Python-baseret skabelonmotor) som sin skabelonmotor, hvilket gør den meget anvendelig og kraftfuld. Brug følgende kommando til at installere kolben på Pi:

sudo apt-get install python3-kolbe

Trin 6. Skriv nogle grundlæggende kode

Nu hvor Flask er installeret, kan vi begynde at oprette filer og skrive noget kode. Naviger først til din nyoprettede projektmappe (fra trin 4) ved hjælp af følgende kommando:

cd MyFlaskWebsite

Alle projektfiler og mapper findes i denne 'MyFlaskWebsite' -mappe. Opret nu din første kodefil (app.py) ved hjælp af følgende kommando:

tryk på app.py

Når du kontrollerer biblioteket ved hjælp af kommandoen 'ls', skal du kunne se denne nyoprettede fil.

Nu skal du trykke på F1 og vælge 'Remote Start Server.' Dette skal give dig mulighed for at fjernredigere filer på Pi ved hjælp af din bærbare computer.

Brug derefter følgende kommando til at redigere den nyoprettede app.py-fil. Det kan tage et par sekunder, men den tomme fil skal derefter være synlig i vinduet lige over.

rmate app.py

Indtast koden vist på nedenstående billede. Her har vi defineret en rute til hjemmesiden på hjemmesiden, der skal vise 'Dette er min kolbes hjemmeside, og det er så sejt.' Bemærk at indstilling af værten til 0.0.0.0 gør det muligt for dette websted at være tilgængeligt af alle enheder, der er forbundet til det samme netværk.

Gem filen, og brug følgende kommando til at køre webstedet på Pi-serveren:

python3 app.py

Når du modtager ovenstående succesmeddelelse, skal du åbne et nyt browservindue på en hvilken som helst enhed i dit netværk og skrive Pi's IP-adresse (i dette tilfælde er det 192.168.0.12) efterfulgt af den port, som dev-serveren kører på (5000. ) Så den komplette adresse vil være //192.168.0.12:5000/

Du skal se teksten 'Dette er min kolbeside og det er så sejt.' på websiden.

Dette bekræfter, at din dev-server er aktiv og kører det websted, du lige har oprettet.

Trin 7. Tilføj flere ruter

I øjeblikket består koden kun af 1 rute, som er hjemmesiden for hjemmesiden. Tilføj en anden rute ved at indtaste følgende kode. Bemærk, at du dynamisk kan foretage ændringer, mens dev-serveren kører. Det fanger automatisk deltaet (kodeændring) og kører en revideret version, når du har opdateret dit browservindue.

For at kontrollere, om den nye rute fungerer som forventet, skal du gå til //192.168.0.12:5000/meow og websiden skal 'MEOW' på dig.

Trin 8. Føj struktur til din kode

Nu er det cool at tilføje flere ruter, men at have al koden i kun 1 app.py-fil er ikke, hvordan et websted skal struktureres. Normalt ville vi have en mappe med HTML-skabeloner, en mappe med statiske CSS-filer og en anden til JS-filer. Lad os tilføje disse mapper og flytte koden i passende mapper for at strukturere koden bedre. Brug følgende kommandoer til at oprette disse mapper:

mkdir skabeloner mkdir statisk

Brug kommandoen 'ls' til at kontrollere, at disse mapper er oprettet.

Lad os nu oprette en HTML-fil til hjemmesiden. Brug følgende kommandoer til at navigere til skabelonmappen. Opret derefter en ny fil med navnet index.html og brug rmate til at redigere den samme:

cd-skabeloner berører index.html rmate index.html

Skriv nogle grundlæggende HTML-koder til hjemmesiden inde i index.html.

Foretag følgende ændringer i app.py for at bruge index.html-filen. Nedenstående kode vil som standard søge efter en fil med navnet index.html i skabelonkataloget.

Naviger tilbage til projektmappen, og kør webstedet igen.

Gå tilbage til startsiden, og du skal se det indhold, du lægger inde i index.html.

Tilføj nu nogle styling ved at oprette 'main.css' inde i den statiske mappe. Brug som altid kommandoen 'cd' til at ændre biblioteket, 'tryk' kommandoen for at oprette en ny fil og kommandoen 'rmate' for at redigere den samme fil.

Føj noget styling til h4-koden. Bemærk, at vi i øjeblikket har 1 h4-tag i index.html, som css formodes at ændre.

Som altid test dine ændringer ved hjælp af følgende kommando:

python3 app.py

Læg mærke til, hvordan teksten i h4-mærket bliver farvet i henhold til CSS.

Trin 9. Udnyt Jinja

Jinja i en Python-baseret skabelonmotor, der tilføjer mange kraftfulde funktioner til websider. Selvom denne tutorial ikke er fokuseret på at lære Jinja, lad os bare se på et simpelt eksempel på, hvordan Jinja kan være nyttigt.

Lad os bare oprette en liste over frugter i app.py og sende den som en parameter til index.html. Vi får så index.html til at vise den liste på websiden. Foretag følgende ændringer i app.py og index.html.

Opdater din webside, og du skal se listen over frugter på skærmen.

Dette taler om, hvor kraftig og nyttig Jinja kan være. For mere information om Jinja henvises til dette.

Trin 10. Næste trin

Nu hvor du har en fuldt funktionel Python-dev-server, er mulighederne fremad næsten uendelige. Her er et par nyttige næste trin, som du kan overveje for dit projekt:

  1. I øjeblikket er Pi kun tilgængelig via enhederne i dit personlige netværk. For at udsætte Pi for omverdenen (få adgang til den via en hvilken som helst enhed uden for dit personlige netværk) har du brug for noget kendt som portvideresendelse. Dybest set har du brug for et domænenavn og en statisk IP-adresse, der er permanent tildelt Pi. Mere info her og her.
  2. De fleste applikationer kræver en database til grundlæggende CRUD-operationer. Python understøtter SQlite lige ud af kassen. Lær hvordan du bruger SQlite med Flask her og her.
  3. Her er et sejt Raspberry Pi-startsæt på Amazon. Det pæne ved dette er, at det har alt, hvad du har brug for for at komme i gang, og sparer dig for at søge efter enkeltgenstande selv.
  4. Da du ikke bruger en skærm, er det vigtigt, at du bruger lukningskommandoen til Pi ved hjælp af terminalen. Dette sikrer, at Pi og SD-kortet ikke beskadiges:
sudo nedlukning -h nu

#Indtil næste gang.