Как да направите свой собствен Python dev-сървър с Raspberry Pi

С прости думи, Raspberry Pi е супер евтин ($ 40) Linux базиран компютър. Това е. Сериозно.

Той може да прави всичко, което можете да си представите, което може да направи един нормален компютър с Linux, като например да сърфира в мрежата, да пише код, да редактира документи и да се свързва с I / O устройства като палеца, мишка, клавиатура и т.н. Този урок ще бъде фокусиран върху да научите как да създадете свой собствен Python dev-сървър с Raspberry Pi.

Стъпка 0. Определете целта

Преди да започнем е важно да разберем какво е това, което се опитваме да изградим. До края на урока ще можете да стартирате основен уебсайт (с помощта на Flask) на Raspberry Pi във вашата локална домашна мрежа.

Целта на този урок е да демонстрира как Pi може да се използва като dev-сървър, по-конкретно, примерът ще бъде хостването на прост уебсайт (с помощта на Flask).

Стъпка 1. Посочете предположенията

Ето някои предположения, които този урок ще направи:

  1. Вече имате Raspberry Pi, настроен с Raspbian OS. Ето полезно ръководство за настройка, ако имате нужда от него.
  2. Pi е свързан с домашния ви WiFi (и че знаете IP адреса на Pi).
  3. Няма да ви е необходим екран за напред. ако приемем, че точки 1 и 2 са пълни.

Ще използваме VS код с разширението Remote VSCode за дистанционно създаване и редактиране на файлове на Pi. Определено препоръчвам да използвате тези две, за да продължите. Освен това това ще направи работата с отдалечени файлове много по-лесна, така че това е плюс.

Стъпка 2. Намерете IP адреса на Pi

Първо, свържете Pi към захранване и се уверете, че той е правилно стартиран и свързан към WiFi / Ethernet (основно той трябва да има интернет връзка).

Ще използваме ssh за свързване и комуникация с Pi. За да направите това отдалечено с помощта на лаптоп, трябва да знаете неговия IP адрес. Това може лесно да бъде получено чрез администраторския портал на вашия ISP (обикновено се предлага на //192.168.0.1. Моля, обърнете внимание, че това може да е различно за различните доставчици на интернет услуги).

Обикновено трябва да свържете своя Pi към адрес, който може да изглежда подобно на „192.168.0.12“. Отново това ще бъде различно за различните хора. Така че, моля, използвайте IP адреса, който сте намерили за вашия Pi в административния портал. Занапред този урок ще използва 192.168.0.12 като IP адрес на Pi.

Стъпка 3. Свържете се с Pi с помощта на ssh

Отворете VS Code и вградения терминален прозорец на вашия лаптоп. Свържете се с Pi с IP адрес 192.188.0.12, като използвате следната ssh команда:

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

Горната команда ще настрои двупосочен канал за комуникация между вашия лаптоп и Pi. Ако за първи път се свързвате с Pi, използвайте малината като парола. Може да бъдете подканени да промените паролата си по подразбиране. Силно се препоръчва да го направите.

Стъпка 4. Създайте директория на проект

Сега трябва да сте в домашната директория на Pi. Нека създадем директория за уебсайта, който искаме да изградим. Използвайте следната команда, за да създадете директорията:

mkdir MyFlaskWebsite

Използвайте командата 'ls', за да проверите дали наистина можете да видите нова папка с име MyFlaskWebsite.

Стъпка 5. Инсталирайте колба

Ще използваме Flask, за да създадем прост уебсайт. Flask е базирана на Python микро мрежа. Той използва Jinja (базиран на Python механизъм за шаблони) като свой механизъм за шаблони, което го прави много използваем и мощен. Използвайте следната команда, за да инсталирате колба на Pi:

sudo apt-get инсталирайте python3-flask

Стъпка 6. Напишете основен код

След като Flask е инсталиран, можем да започнем да създаваме файлове и да пишем някакъв код. Първо отидете до новосъздадената директория на проекта (от стъпка 4), като използвате следната команда:

cd MyFlaskWebsite

Всички файлове и папки на проекта ще се намират в тази директория „MyFlaskWebsite“. Сега създайте първия си кодов файл (app.py), като използвате следната команда:

докоснете app.py

При проверка на директорията с помощта на командата 'ls' трябва да можете да видите този новосъздаден файл.

Сега натиснете F1 и изберете „Сървър за отдалечено стартиране“. Това трябва да ви позволи отдалечено да редактирате файлове на Pi с помощта на вашия лаптоп.

След това използвайте следната команда, за да започнете да редактирате новосъздадения файл app.py. Може да отнеме няколко секунди, но празният файл трябва да се вижда в прозореца точно по-горе.

rmate app.py

Въведете кода, показан на снимката по-долу. Тук определихме маршрут до началната страница на уебсайта, който трябва да показва „Това е уебсайтът на моята колба и е страхотен“. Имайте предвид, че задаването на хоста на 0.0.0.0 позволява този уебсайт да бъде достъпен от всички устройства, свързани към една и съща мрежа.

Запазете файла и използвайте следната команда, за да стартирате уебсайта на Pi сървъра:

python3 app.py

При получаване на горното съобщение за успех, отворете нов прозорец на браузъра на всяко устройство във вашата мрежа и въведете IP адреса на Pi (в този случай това е 192.168.0.12), последван от порта, на който работи dev-сървърът (5000. ) Така че пълният адрес ще бъде //192.168.0.12:5000/

Трябва да видите текста „Това е уебсайтът на моята колба и е страхотен.“ на уеб страницата.

Това потвърждава, че вашият dev-сървър е активен и работи с току-що създадения от вас уебсайт.

Стъпка 7. Добавете още маршрути

В момента кодът се състои само от 1 маршрут, който е началната страница на уебсайта. Добавете друг маршрут, като въведете следния код. Имайте предвид, че можете динамично да правите промени, докато dev-сървърът работи. Той автоматично ще заснеме делтата (промяна на кода) и ще стартира преработена версия, след като освежите прозореца на браузъра си.

За да проверите дали новият маршрут работи, както се очаква, отидете на //192.168.0.12:5000/meow и уеб страницата трябва да 'MEOW' при вас.

Стъпка 8. Добавете структура към вашия код

Сега добавянето на повече маршрути е страхотно, но наличието на целия код само в 1 файл app.py не е начинът, по който трябва да бъде структуриран уебсайт. Обикновено имахме папка с HTML шаблони, папка със статични CSS файлове и друга за JS файлове. Нека добавим тези папки и преместим кода в подходящи папки, за да структурираме кода по-добре. Използвайте следните команди, за да създадете тези директории:

mkdir шаблони mkdir статични

Използвайте командата 'ls', за да проверите дали тези папки са създадени.

Сега нека създадем HTML файл за началната страница. Използвайте следните команди, за да отидете до директорията с шаблони. След това създайте нов файл с име index.html и използвайте rmate, за да го редактирате:

cd шаблони докосване index.html rmate index.html

Напишете основен HTML код за началната страница в index.html.

Направете следните промени в app.py, за да използвате файла index.html. Кодът по-долу ще търси файл с име index.html в директорията на шаблони по подразбиране.

Върнете се обратно в директорията на проекта и стартирайте уебсайта отново.

Върнете се на началната страница и ще видите съдържанието, което сте поставили вътре в index.html.

Сега добавете малко стил, като създадете 'main.css' вътре в статичната директория. Както винаги, използвайте командата 'cd', за да промените директорията, командата 'touch', за да създадете нов файл, и командата 'rmate', за да редактирате същия файл.

Добавете малко стил към маркера h4. Имайте предвид, че в момента имаме 1 h4 таг в index.html, който css трябва да модифицира.

Както винаги, тествайте промените си, като използвате следната команда:

python3 app.py

Забележете как текстът в маркера h4 се оцветява според CSS.

Стъпка 9. Възползвайте се от Jinja

Jinja в базиран на Python механизъм за шаблони, който добавя много мощни функции към уеб страниците. Въпреки че този урок не е фокусиран върху изучаването на Jinja, нека просто разгледаме един прост пример за това как Jinja може да бъде полезен.

Нека просто създадем списък с плодове в app.py и го предадем като параметър на index.html. След това ще имаме index.html да показва този списък на уеб страницата. Направете следните промени в app.py и index.html.

Опреснете уеб страницата си и трябва да видите списъка с плодове на екрана.

Това говори за това колко мощна и полезна може да бъде Jinja. За повече информация относно Jinja, моля, обърнете се към това.

Стъпка 10. Следващи стъпки

Сега, когато имате напълно функционален Python dev-сървър, възможностите за напред са практически безкрайни. Ето няколко полезни следващи стъпки, които можете да обмислите за вашия проект:

  1. Понастоящем Pi е достъпен само чрез устройствата в личната ви мрежа. За да изложите Pi на външния свят (достъп до него чрез всяко устройство извън вашата лична мрежа), имате нужда от нещо, известно като пренасочване на портове. По принцип се нуждаете от име на домейн и статичен IP адрес, който е постоянно присвоен на Pi. Повече информация тук и тук.
  2. Повечето приложения ще изискват база данни за основни CRUD операции. Python поддържа SQlite веднага от кутията. Научете как да използвате SQlite с Flask тук и тук.
  3. Ето страхотен стартиращ комплект Raspberry Pi на Amazon. Най-хубавото в това е, че има всичко необходимо за започване и ви спестява усилието да търсите самостоятелно отделни елементи.
  4. Тъй като не използвате екран, важно е да използвате командата за изключване за Pi, използвайки терминала. Това гарантира, че Pi и SD картата не са повредени:
sudo shutdown -h сега

#До следващия път.