Kā izveidot savu Python dev-serveri ar Raspberry Pi

Vienkārši sakot, Raspberry Pi ir ļoti lēts (40 USD) Linux balstīts dators. Tieši tā. Nopietni.

Tas var darīt visu, ko vien iedomājaties parastā Linux datorā, piemēram, pārlūkot tīmekli, rakstīt kodu, rediģēt dokumentus un izveidot savienojumu ar I / O ierīcēm, piemēram, īkšķa disku, peli, tastatūru utt. Šī apmācība būs vērsta uz iemācīties izveidot savu Python dev-serveri ar Raspberry Pi.

0. solis. Definējiet mērķi

Pirms sākam, ir svarīgi saprast, ko mēs cenšamies veidot. Apmācības beigās jūs varēsit palaist pamata vietni (izmantojot kolbu) no Raspberry Pi vietējā mājas tīklā.

Šīs apmācības mērķis ir parādīt, kā Pi var izmantot kā dev serveri, konkrētāk, piemērs būs vienkāršas vietnes mitināšana (izmantojot kolbu).

1. solis. Izklāstiet pieņēmumus

Šeit ir daži pieņēmumi, kurus šī apmācība radīs:

  1. Jums jau ir izveidota Raspberry Pi ar Raspbian OS. Šeit ir noderīga iestatīšanas rokasgrāmata, ja tāda jums nepieciešama.
  2. Pi ir savienots ar jūsu mājas WiFi (un ka jūs zināt Pi IP adresi).
  3. Turpmāk jums nebūs nepieciešams ekrāns. pieņemot, ka 1. un 2. punkts ir pabeigts.

Mēs izmantosim VS kodu ar attālo VSCode paplašinājumu, lai attāli izveidotu un rediģētu failus Pi. Es noteikti iesaku izmantot šos divus, lai sekotu līdzi. Turklāt tas daudz atvieglos darbu ar attālajiem failiem, tāpēc tas ir plus.

2. solis. Atrodiet Pi IP adresi

Vispirms pievienojiet Pi pie barošanas avota un pārliecinieties, ka tas ir pareizi sāknēts un savienots ar WiFi / Ethernet (būtībā tam ir nepieciešams interneta savienojums).

Mēs izmantosim ssh, lai izveidotu savienojumu ar Pi un sazinātos ar to. Lai to izdarītu attālināti, izmantojot klēpjdatoru, jums jāzina tā IP adrese. To var viegli iegūt, izmantojot sava ISP administratora portālu (parasti tas ir pieejams vietnē //192.168.0.1. Lūdzu, ņemiet vērā, ka tas dažādiem interneta pakalpojumu sniedzējiem varētu būt atšķirīgs.)

Parasti Pi jābūt savienotam ar adresi, kas var izskatīties līdzīgi kā '192.168.0.12'. Atkal, tas būs atšķirīgs dažādiem cilvēkiem. Tāpēc, lūdzu, izmantojiet IP adresi, kuru atradāt savam Pi administratora portālā. Turpmāk šajā apmācībā tiks izmantota 192.168.0.12 kā Pi IP adrese.

3. solis. Savienojiet ar Pi, izmantojot ssh

Atveriet VS kodu un tā iebūvēto termināļa logu klēpjdatorā. Izveidojiet savienojumu ar Pi ar 192.188.0.12 IP adresi, izmantojot šādu komandu ssh:

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

Iepriekš minētā komanda izveidos divvirzienu sakaru kanālu starp klēpjdatoru un Pi. Ja pirmo reizi izveidojat savienojumu ar Pi, paroli izmantojiet aveņu. Jums var tikt piedāvāts nomainīt noklusējuma paroli. Ļoti ieteicams to darīt.

4. solis. Izveidojiet projekta direktoriju

Tagad jums vajadzētu būt Pi mājas direktorijā. Izveidosim direktoriju vietnei, kuru vēlamies izveidot. Lai izveidotu direktoriju, izmantojiet šo komandu:

mkdir MyFlaskWebsite

Izmantojiet komandu 'ls', lai pārbaudītu, vai tiešām varat redzēt jaunu mapi ar nosaukumu MyFlaskWebsite.

5. solis. Instalējiet kolbu

Mēs izmantosim kolbu, lai izveidotu vienkāršu vietni. Kolba ir uz Python balstīta mikro tīmekļa sistēma. Tas izmanto Jinja (Python bāzes veidņu dzinēju) kā savu veidņu dzinēju, kas padara to ļoti izmantojamu un spēcīgu. Lai uzstādītu kolbu Pi, izmantojiet šo komandu:

sudo apt-get install python3-kolba

6. solis. Uzrakstiet kādu pamata kodu

Tagad, kad kolba ir instalēta, mēs varam sākt veidot failus un rakstīt kodu. Vispirms dodieties uz savu jaunizveidoto projekta direktoriju (no 4. darbības), izmantojot šādu komandu:

cd MyFlaskWebsite

Visi projekta faili un mapes atradīsies šajā 'MyFlaskWebsite' direktorijā. Tagad izveidojiet savu pirmo koda failu (app.py), izmantojot šādu komandu:

pieskarieties app.py

Pārbaudot direktoriju, izmantojot komandu 'ls', jums vajadzētu būt iespējai redzēt šo jaunizveidoto failu.

Tagad nospiediet F1 un izvēlieties "Remote Start Server". Tam vajadzētu ļaut attālināti rediģēt failus Pi, izmantojot klēpjdatoru.

Pēc tam izmantojiet šo komandu, lai sāktu rediģēt jaunizveidoto app.py failu. Tas var aizņemt dažas sekundes, bet tukšajam failam tad jābūt redzamam tieši augšējā logā.

rmate app.py

Ievadiet kodu, kas parādīts zemāk esošajā attēlā. Šeit mēs esam noteikuši maršrutu uz vietnes sākumlapu, kurā būtu redzams uzraksts “Šī ir mana kolbas vietne, un tā ir tik forša”. Ņemiet vērā, ka resursdatora iestatīšana uz 0.0.0.0 ļauj šai vietnei piekļūt visām ierīcēm, kas savienotas ar to pašu tīklu.

Saglabājiet failu un izmantojiet šo komandu, lai palaistu vietni Pi serverī:

python3 app.py

Saņemot iepriekš minēto veiksmes ziņojumu, jebkurā tīkla ierīcē atveriet jaunu pārlūkprogrammas logu un ierakstiet Pi IP adresi (šajā gadījumā tā ir 192.168.0.12), kam seko ports, kurā darbojas dev-serveris (5000. ) Tātad visa adrese būs //192.168.0.12:5000/

Jums vajadzētu redzēt tekstu "Šī ir mana kolbas vietne, un tā ir tik forša." tīmekļa vietnē.

Tas apstiprina, ka jūsu dev-serveris ir aktīvs un darbojas tikko izveidotā vietne.

7. solis. Pievienojiet vairāk maršrutu

Pašlaik kodu veido tikai 1 maršruts, kas ir vietnes sākumlapa. Pievienojiet citu maršrutu, ierakstot šo kodu. Ņemiet vērā, ka dinamiski var veikt izmaiņas, kamēr darbojas dev-serveris. Tiklīdz atsvaidzināsiet pārlūka logu, tas automātiski uzņems deltu (koda maiņa) un palaidīs pārskatīto versiju.

Lai pārbaudītu, vai jaunais maršruts darbojas, kā paredzēts, dodieties uz vietni //192.168.0.12:5000/meow, un tīmekļa vietnei vajadzētu būt “MEOW” pie jums.

8. solis. Pievienojiet savam kodam struktūru

Tagad vairāk maršrutu pievienošana ir forša, taču, ja viss kods ir tikai vienā app.py failā, vietne nav jā strukturē. Parasti mums būtu mape ar HTML veidnēm, mape ar statiskiem CSS failiem un vēl viena JS failiem. Pievienosim šīs mapes un pārvietosim kodu atbilstošās mapēs, lai labāk strukturētu kodu. Lai izveidotu šos direktorijus, izmantojiet šīs komandas:

mkdir veidnes mkdir static

Izmantojiet komandu 'ls', lai pārbaudītu, vai šīs mapes ir izveidotas.

Tagad izveidosim HTML failu sākumlapai. Izmantojiet šīs komandas, lai pārietu uz veidņu direktoriju. Pēc tam izveidojiet jaunu failu ar nosaukumu index.html un izmantojiet rmate, lai to rediģētu:

CD veidnes pieskarieties index.html rmate index.html

Uzrakstiet dažus HTML koda pamatus mājaslapai index.html.

Veiciet šādas izmaiņas lietotnē app.py, lai izmantotu failu index.html. Šis kods pēc noklusējuma veidņu direktorijā meklēs failu index.html.

Pārejiet atpakaļ uz projekta direktoriju un palaidiet vietni vēlreiz.

Atgriezieties sākumlapā, un jums vajadzētu redzēt saturu, kuru ievietojāt index.html.

Tagad pievienojiet dažus stilus, statiskajā direktorijā izveidojot 'main.css'. Kā vienmēr, izmantojiet komandu 'cd', lai mainītu direktoriju, komandu 'touch', lai izveidotu jaunu failu, un komandu 'rmate', lai rediģētu to pašu failu.

Pievienojiet dažus stilus tagam h4. Ņemiet vērā, ka mums pašlaik index.html ir 1 h4 tags, kuru css ir paredzēts pārveidot.

Kā vienmēr, pārbaudiet izmaiņas, izmantojot šādu komandu:

python3 app.py

Ievērojiet, kā teksts h4 tagā tiek iekrāsots atbilstoši CSS.

9. solis. Izmantojiet Jinja priekšrocības

Jinja Python bāzes veidņu dzinējā, kas tīmekļa vietnēm pievieno daudz spēcīgu funkciju. Lai gan šī apmācība nav vērsta uz Jinja mācīšanos, apskatīsim tikai vienkāršu piemēru, kā Jinja var būt noderīga.

Vienkārši izveidosim augļu sarakstu vietnē app.py un nodosim to kā parametru index.html. Pēc tam mums tiks parādīts index.html šis saraksts tīmekļa vietnē. Veiciet šādas izmaiņas lietotnēs app.py un index.html.

Atsvaidziniet savu vietni, un ekrānā jums vajadzētu redzēt augļu sarakstu.

Tas runā par to, cik spēcīga un noderīga var būt Jinja. Lai iegūtu vairāk informācijas par Jinja, lūdzu, skatiet šo.

10. solis. Nākamās darbības

Tagad, kad jums ir pilnībā funkcionāls Python dev-serveris, turpmākās iespējas ir praktiski bezgalīgas. Šeit ir daži noderīgi nākamie soļi, kurus jūs varētu apsvērt savam projektam:

  1. Pašlaik Pi ir pieejams tikai caur ierīcēm jūsu personiskajā tīklā. Lai pakļautu Pi ārējai pasaulei (piekļūstiet tam, izmantojot jebkuru ierīci, kas atrodas ārpus jūsu personīgā tīkla), jums ir nepieciešams kaut kas pazīstams kā porta pārsūtīšana. Būtībā jums ir nepieciešams domēna nosaukums un statiska IP adrese, kas pastāvīgi piešķirta Pi. Vairāk informācijas šeit un šeit.
  2. Lielākajai daļai lietojumprogrammu CRUD pamata darbībām būs nepieciešama datu bāze. Python atbalsta SQlite tieši no kastes. Uzziniet šeit un šeit, kā lietot SQlite ar kolbu.
  3. Šeit ir foršs Raspberry Pi sākuma komplekts Amazon. Veiksmīgi šajā ziņā ir tas, ka tajā ir viss nepieciešamais, lai sāktu darbu, un tas ietaupa jūsu centienus pašiem meklēt atsevišķus priekšmetus.
  4. Tā kā jūs neizmantojat ekrānu, ir svarīgi izmantot Pi izslēgšanas komandu, izmantojot termināli. Tas nodrošina, ka Pi un SD karte netiek bojāta:
sudo izslēgšana -h tagad

#Līdz nākamajai reizei.