آموزشاینترنت اشیاءبرنامه نویسیپایتونرزبری پایمیم تک 23

وب سرور پایتون : آموزش ساخت وب سرور ساده ی Python با Flask

یک ریزپردازنده مبتنی بر پایتون برای ایجاد صفحات وب بر اساس WSGI و Werkzeug و Jinja2 است. از Flask برای ارائه نسبتا آسان رابط های مبتنی بر وب درRaspbery Piاستفاده می شود. در این مقاله با من همراه باشید تا با هم یک وب سرور ساده ی پایتون با Flask بسازیم.من از پایتون 3 استفاده کردم اما شما می توانیدهمین کار را با پایتون 2 هم انجام دهید. فقط کافی است همه ی مراجع پایتون 3 را با پایتون 2 عوض کنید.
ساخت یک وب سرور ساده ی پایتون با Flask

وب سرور پایتون

Flask یک ریزپردازنده مبتنی بر پایتون برای ایجاد صفحات وب بر اساس WSGI و  Werkzeug و Jinja2  است. از Flask  برای ارائه نسبتا آسان رابط های مبتنی بر وب در Raspbery Pi استفاده می شود. در این مقاله با من همراه باشید تا با هم یک وب سرور ساده ی پایتون با Flask بسازیم. من از پایتون 3 استفاده کردم اما شما می توانید همین کار را با پایتون 2 هم انجام دهید. فقط کافی است همه ی مراجع پایتون 3 را با پایتون 2 عوض کنید.

یک کارت SD جدید ایجاد کنید

برای جلوگیری از تداخل با نرم افزارهای دیگر که ممکن است نصب کرده باشید، توصیه می کنم  با یک کارت SD جدید که آخرین نسخه ی Rasbian را روی آن نصب کرده اید، کار را شروع کنید.(احیانا اگر نمی دونید چطوری از اینجا ببینید.).

برای آزمایش های اولیه با Flask من از Jessie Lite استفاده می کنم.

می تونین jassie lite  را از سایت رسمی رزبری پای دانلود کنید.

Jessie Lite

نسخه ی lite Raspbian jessie کاملا مانند نسخه ی اصلی Raspbian jessie است، با این تفاوت که پکیج گرافیکی ندارد.

این بدان معناست که این نسخه بسیار سبک تر از نسخه ی اصلی است. حجم آن تنها 1.3 گیگابایت است، در حالی که حجم image اصلی بالای 4 گیگابایت می باشد. با این حال می توان از آن برای انجام بسیاری از پروژه های Raspbery pi استفاده کرد. برنامه هایی مانند پایتون و WPA-Supplicant (برای شبکه های WIFI )  را شامل می شود و تنها با نصب APT-GET  می توان از سایر پکیج های Raspbian استفاده کرد.

از نسخه ی جدید Raspbian Jessie Lite image برای Pi Zero  هم مناسب است.

فعال کردن SSH

به طور پیش فرض SSH غیر فعال است. اگر می خواهید Pi را از طریق کامپیوتر دیگری روی شبکه پیکربندی کنید، می توانید آن را فعال کنید:

  •  یک فایل خالی به نام “ssh” در پارتیشن بوت ایجاد کنید. (در ویندوز این تنها پارتیشنی است که شما می توانید به آن دسترسی داشته باشید.)
  • از ابزار raspi-config برای فعال کردن SSH از طریق مانیتور و صفحه کلید متصل بهPi  استفاده کنید.
  • در cmd  این دستور را بزنید: sudo raspi-config .

با این کار  ابزار raspi-config را راه اندازی می کنید. خب حالا “گزینه های رابط” را انتخاب کنید.

گزینه های پیشرفته اجازه می دهد تا رابط های مختلف را فعال / غیر فعال کنید.

  • ssh option
  • گزینه “Yes”
  • ok
  • finish

آدرس IP را پیدا کنید

برای پیدا کردن IP رزبری اگر از مانیتور و صفحه کلید استفاده می کنید، می توانید از دستور ipconfig استفاده کنید. احتمالا IP را به شکل#.#. 192.168 براتون نمایش می دهد. از my IP استفاده کنید تا ببینید از چه IP استفاده کرد. اگر از طریق SSH از راه دور وصل می شوید، می توانید از آن برای اسکن IP استفاده کنید یا آن را در جایی در تنظیمات روتر خود قرار دهید.

به روز رسانی و تغییر گذرواژه

وقتی SSH را فعال کردید، من به شدت توصیه می کنم که پسورد اولیه رزبری را تغییر دهید.

تایپ کنید:

  • passwd  بعد پسورد جدید بذارید
  • sudo raspi-config را Run  کنید.
  • “Advanced” را انتخاب کنید وبعد “Expand Fileystem”

برای اینکه مطمئن شوید که آخرین بسته ها را نصب کردید ، دو دستور زیر را اجرا کنید:

  • sudo apt-get update
  • sudo apt-get -y upgrade

این پروسه حدودا بین 5 تا 10 دقیقه طول می کشد.

Install pip

قبل از نصب Flask ما نیاز به نصب پیپ، که package manager پایتون است، داریم :

  • sudo apt-get -y install python3-pip

Install Flask

اکنون زمان نصب Flask:

  • sudo pip3 install flask

برنامه آزمایشی Flask را ایجاد کنید

اکنون که Flask نصب شده است، ما باید یک سایت آزمایشی کوچک برای بررسی کارکرد چیزهایی که داریم، ایجاد کنیم.

من اسم این سایت تستی را، testSite می گذارم. شما می توانید از هر نامی که دوست دارید استفاده کنید اما حواستون باشه که هر جا به این سایت احتیاج داشتید دقیقا باید از این اسم استفاده کنید.

یک پوشه جدید بسازید :

  • cd ~
  • mkdir testSite

برای ایجاد یک اسکریپت جدید Python، به پوشه جدید بروید و از دستور زیر استفاده کنید:

  • cd testSite
  • sudo nano testSite.py

حالا کد زیر را وارد کنید:


برای ذخیره و بازگشت به خط فرمان، “CTRL-X”، “Y” و “Enter” را فشار دهید.

این اسکریپت یک صفحه ی ساده وب سایت را تعریف می کند.

تست وب سرور پایتون :

حالا  می توانید اسکریپت را با استفاده از دستور زیر run کنید:

  • python3 testSite.py

اگر آدرس آی پی Pi خود را در یک مرورگر بزنید، سایت تست باید قابل مشاهده باشد:

توجه داشته باشید که Flask از پورت 5000 به طور پیش فرض استفاده می کند و شما باید 192.168.1.19 را با آدرس IP واقعی Pi خود جایگزین کنید.

اضافه کردن صفحات اضافی به وب سرور پایتون

اسکریپت را می توان برای اضافه کردن صفحات اضافی تغییر داد:

با این اسکریپت، hello رادر صفحه نشان می دهد.

Route های بیشتر در وب سرور پایتون

شما همچنین می توانید اطلاعات را از آدرس URL به اسکریپت خود بکشید تا ترکیبی از صفحات پیچیده تر ایجاد کنید. در این مثال ما مسیرهای / user / <username> و / post / <post_id> را اضافه کردیم.

<ipaddr>: 5000 / user / john یا <ipaddr>: 5000 / post / 42 را وارد کنید و یک صفحه با نام یا شناسه پست به عنوان بخشی از محتوا نمایش داده می شود.

استفاده از templates pages در وب سرور پایتون

به جای تعریف صفحه HTML خود در اسکریپت، شما می توانید از فایل های template برای نگه داشتن بخش عمده ای از HTML استفاده کنید که باعث می شود اسکریپت بسیار آسان تر از زمانی که صفحات شما پیچیده تر هستند، اداره شوند.

  • mkdir /home/pi/testSite/templates
  • cd /home/pi/testSite/templates
  • nano template1.html

سپس در این الگو  قرار دهید:

سپس testSite.py می تواند با آن به روز شود.
  • nano testSite.py
و محتوا سین تکس زیر جایگزین می شود:
هنگامی که دو “Route” فعال می شوند همان قالب استفاده می شود اما مقادیر متفاوتی به آن منتقل می شوند. بنابراین بازدید کننده یک صفحه متفاوت را می بیند. شما می توانید قالب ها را با HTML و CSS ارتقا دهید. بزرگ ترین مزیت قالب ها این است که آنها هدف اسکریپت اصلی Python را  روی عملکرد متمرکز می کنند .

Debug Mode

در مثالها پرچم “debug” بر روی True تنظیم شده است.

این حالت Flask را در حالت اشکالزدایی اجرا می کندکه  وقتی اسکریپت را به روز می کنید به طور خودکار Flask را دوباره بارگذاری می کند.

این صفحه همچنین پیام های خطا را در صورت عدم بارگذاری صفحه ارائه می دهد. در صورتی که سایت به درستی روی اینترنت بارگذاری شود، flag باید روی false تنظیم شود.

اجرای خودکار اسکریپت در بوت

اگر می خواهید پایتون هنگام بوت شدن رزبری به صورت اتوماتیک اجرا شود، از تکنیک زیر می توانید استفاده کنید:

  • crontab -e

اگر درخواست کرد یک ویرایشگر برای استفاده انتخاب کنید. من”نانو” را ترجیح می دهم. خط زیر را در پایین بلوک  مورد نظر قرار دهید:

  • @reboot /usr/bin/python3 /home/pi/testSite/testSite.py &

برای ذخیره و بازگشت به خط فرمان، “CTRL-X”، “Y” و “Enter” را فشار دهید.

هنگامی که شما راه اندازی مجدد آن را اجرا خواهد کرد “testSite.py”. “&” تضمین می کند که در پس زمینه اجرا شود.

  • sudo raspi-config

گزینه های “Boot” و “Desktop / CLI” را انتخاب کنید. سپس”کنسول Autologin” را انتخاب کنید. حالا وقتی که Pi شروع به کار می کند شما به صورت خودکار به عنوان کاربر Pi وارد می شوید.

برای راه اندازی مجدد:

  • sudo reboot

و در نهایت صفحه ی وب شما باید در ip آدرس pi روی شبکه در دسترس باشد.

 

در این مقاله نحوه ساختن یک وب سرور ساده ی پایتون با استفاده از Flask را یاد گرفتیم.

ارسال پاسخ