رزبری پای یک کامپیوتر کوچک و ارزان قیمت است که بر پایه سیستم عامل لینوکس کار میکند. با این حال، علیرغم اندازه کوچک و قیمت پایین، قابلیتهای آن مشابه یک کامپیوتر رومیزی معمولی است. میتوانید از آن برای:
- مرورگر اینترنت
- برنامهنویسی و کدنویسی
- ویرایش متن و اسناد
- کنترل دستگاههای ورودی/خروجی مانند ماوس و کیبورد
استفاده کنید. در این مطلب آموزشی، نحوه پیادهسازی یک سرور توسعه در رزبری پای توضیح داده خواهد شد.
تعریف هدف
هدف این آموزش آموزش نحوه استفاده از رزبری پای به عنوان یک سرور توسعه است. در پایان، شما قادر خواهید بود یک وب سایت ساده (با استفاده از Flask) را روی رزبری پای در شبکه محلی پیاده سازی کنید.
پیش نیازها
برای پیاده سازی این پروژه، موارد زیر مورد نیاز است:
- یک رزبری پای با سیستم عامل Raspbian OS نصب شد
- رزبری پای متصل به شبکه وای-فای خانگی و آی پی آدرس آن
- ویرایشگر VS Code نصب شده در کامپیوتر
- افزونه Remote-SSH برای VS Code برای ویرایش فایل ها به صورت ریموت روی رزبری پای
با داشتن این پیش نیازها، می توانید رزبری پای را به عنوان یک سرور توسعه راه اندازی کنید و روی آن کد نویسی کنید.
پیدا کردن آیپی آدرس رزبری پای
پس از روشن کردن رزبری پای و اتصال آن به شبکه وای-فای، برای برقرار کردن ارتباط از طریق SSH، باید آیپی آدرس آن را پیدا کنید. میتوانید از طریق ادمین پنل سرویس دهنده اینترنت (ISP) خود، آیپی آدرس رزبری پای را پیدا کنید.
در این آموزش، فرض میکنیم آیپی آدرس رزبری پای ۱۹۲.۱۶۸.۰.۱۲ است.برای اتصال به رزبری پای از طریق SSH، این آیپی آدرس را نیاز خواهید داشت. در مرحله بعد، نحوه اتصال از طریق SSH با استفاده از این آیپی آدرس را توضیح خواهیم داد.
اتصال به رزبری پای از طریق SSH
برای اتصال به رزبری پای از طریق SSH با استفاده از آی پی آدرس ۱۹۲.۱۶۸.۰.۱۲، مراحل زیر را در VS Code انجام دهید:
- VS Code را باز کنید و به قسمت ترمینال داخلی آن بروید.
- دستور زیر را در ترمینال وارد کنید:
ssh -R 52698:localhost:52698 pi@192.168.0.12
- اگر برای اولین بار است که به رزبری پای متصل میشوید، رمز عبور پیشفرض
raspberry
را وارد کنید. - احتمالاً از شما خواسته میشود تا رمز عبور جدیدی وارد کنید. توصیه میشود رمز عبور را تغییر دهید.
پس از انجام این مراحل، شما به رزبری پای از طریق SSH متصل خواهید شد و میتوانید در محیط ترمینال آن کار کنید.با این روش، میتوانید به راحتی از طریق VS Code به رزبری پای دسترسی پیدا کرده و فایلهای خود را ویرایش و اجرا کنید.
ایجاد دایرکتوری پروژه
پس از اتصال موفق به رزبری پای از طریق SSH، برای ایجاد دایرکتوری پروژه وب سایت Flask، مراحل زیر را انجام دهید:
۱. در ترمینال رزبری پای، با استفاده از دستور `cd` به دایرکتوری home بروید:
cd ~
۲. یک دایرکتوری جدید با نام `MyFlaskWebsite` ایجاد کنید:
mkdir MyFlaskWebsite
۳. برای اطمینان از ایجاد صحیح دایرکتوری، لیست فایلها و دایرکتوریهای موجود در دایرکتوری جاری را با دستور `ls` مشاهده کنید:
ls
شما باید دایرکتوری `MyFlaskWebsite` را در لیست خروجی دستور `ls` مشاهده کنید.[۱]
حال شما یک دایرکتوری با نام `MyFlaskWebsite` در رزبری پای دارید که میتوانید در آن فایلهای مربوط به پروژه وب سایت Flask خود را ایجاد کنید.
نصب Flask
برای نصب Flask، میکرو فریمورک وب پایتون، روی رزبری پای، مراحل زیر را انجام دهید:
۱. در ترمینال رزبری پای، از دستور `pip` برای نصب Flask استفاده کنید:
pip install flask
۲. این دستور آخرین نسخه Flask را از پایگاه دادههای PyPI دانلود و نصب میکند.[
Flask یک میکرو فریمورک وب است که برای موتور قالببندی (Template Engine) از Jinja استفاده میکند. این ویژگی به Flask قابلیت استفاده و توانایی بالایی میبخشد.
پس از نصب موفق Flask، میتوانید شروع به ایجاد برنامه وب خود کنید. در مرحله بعد، یک برنامه ساده Flask را پیادهسازی خواهیم کرد.
ایجاد فایل اصلی برنامه (app.py)
پس از نصب Flask، مراحل زیر را برای ایجاد فایل اصلی برنامه (app.py) در دایرکتوری `MyFlaskWebsite` انجام دهید:
۱. ابتدا به دایرکتوری `MyFlaskWebsite` بروید:
cd MyFlaskWebsite
۲. با استفاده از دستور `touch`، یک فایل جدید با نام `app.py` ایجاد کنید:
touch app.py
۳. سپس یک ویرایشگر متن را باز کنید و کد پایه زیر را در فایل `app.py` قرار دهید:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
if __name__ == '__main__':
app.run(host='0.0.0.0')
این کد یک برنامه Flask ساده را ایجاد میکند که در صفحه اصلی (/) عبارت “Hello, World!” را نمایش میدهد.
با این مراحل، شما فایل اصلی برنامه Flask خود را با نام `app.py` در دایرکتوری `MyFlaskWebsite` ایجاد کردهاید. در مراحل بعدی، این برنامه را گسترش خواهیم داد.
اضافه کردن مسیرهای بیشتر
با اضافه کردن تابع جدید به کد فایل `app.py`، میتوانید یک مسیر جدید برای برنامه فلسک خود ایجاد کنید. مثلا کد زیر یک مسیر جدید با نام `/about` را تعریف میکند:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
@app.route('/about')
def about():
return 'This is the about page.'
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
با اضافه شدن پارامتر `debug=True` در تابع `app.run`، سرور فلسک به حالت debug میرود. در این حالت، هر تغییری که در کد انجام دهید، به صورت خودکار بارگذاری میشود و نیازی به راهاندازی مجدد سرور نیست.
حال اگر در مرورگر به آدرس `http://192.168.0.12:5000/about` بروید، متن “This is the about page.” را مشاهده خواهید کرد.
با این روش میتوانید مسیرهای بیشتری را به برنامه فلسک خود اضافه کنید و محتوای مختلفی را در هر مسیر ارائه دهید.
مرتب کردن کدها
برای سازماندهی بهتر کدها و ایجاد ساختار مناسب برای وب سایت، میتوانید مراحل زیر را دنبال کنید:
۱. در دایرکتوری `MyFlaskWebsite`، یک دایرکتوری جدید با نام `static` ایجاد کنید:
mkdir static
این دایرکتوری برای ذخیره فایلهای استاتیک مانند CSS، جاوااسکریپت و تصاویر استفاده میشود.
۲. یک دایرکتوری دیگر با نام `templates` نیز ایجاد کنید:
mkdir templates
این دایرکتوری برای ذخیره فایلهای قالب (template) HTML استفاده میشود.
۳. در فایل `app.py`، مسیر این دو دایرکتوری را به فلسک معرفی کنید:
from flask import Flask, render_template
app = Flask(__name__)
app.static_folder = 'static'
app.template_folder = 'templates'
با این کار، فلسک میداند که فایلهای استاتیک در دایرکتوری `static` و فایلهای قالب HTML در دایرکتوری `templates` قرار دارند.
۴. حال میتوانید فایلهای مربوطه را در این دایرکتوریها قرار دهید و از آنها در کدهای فلسک خود استفاده کنید.
این ساختار به شما کمک میکند تا کدهای خود را به صورت منظم و مرتب سازماندهی کنید و پروژه شما قابلیت گسترش و نگهداری بیشتری پیدا کند.
استفاده از Jinja
با توجه به اطلاعات ارائه شده در منابع مرتبط با Jinja، این template engine مبتنی بر پایتون ویژگیهای قدرتمندی را برای ایجاد صفحات وب فراهم میکند. این ابزار به طراحان وب امکان ایجاد قالبهای پویا و سازماندهی شده را میدهد. از ویژگیهای Jinja میتوان به قابلیتهایی مانند sandboxed execution، template inheritance، automatic HTML escaping، و قابلیت استفاده از filters و tests اشاره کرد.
با توجه به این اطلاعات، میتوانید یک لیست از میوههای خوشمزه را در فایل `app.py` قرار داده و آنها را به عنوان یک پارامتر برای فایل `index.html` در نظر بگیرید. سپس با استفاده از Jinja، این لیست را در صفحه اصلی وب سایت نمایش دهید. این کار باعث میشود که اطلاعات داینامیکی مانند لیست میوهها به صورت خودکار در صفحه اصلی وب سایت شما نمایش داده شود.
برای انجام این کار، میتوانید به صورت مشابه به کد زیر تغییرات لازم را در برنامه خود اعمال کنید:
from flask import Flask, render_template
app = Flask(__name__)
app.static_folder = 'static'
app.template_folder = 'templates'
@app.route('/')
def index():
fruits = ['Apple', 'Banana', 'Orange', 'Grape']
return render_template('index.html', fruits=fruits)
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
در این کد، یک لیست از میوههای خوشمزه ایجاد شده و به عنوان پارامتر `fruits` به فایل `index.html` ارسال میشود. سپس با استفاده از Jinja، میتوانید این لیست را در قالب HTML صفحه اصلی نمایش دهید.
در پایان
با اتمام این مراحل، شما یک سرور توسعه پایتون روی رزبری پای خود دارید که میتوانید هر فریمورکی را بر روی آن اجرا کنید. در نظر داشته باشید که میتوانید اقدامات بعدی خود را بر اساس نیازهای خود شخصیسازی کنید. برخی از اقدامات بعدی که ممکن است در نظر بگیرید عبارتند از:
۱. **دسترسی عمومی**: برای دسترسی عمومی به سرورتان، میتوانید از یک VPS یا یک هاست اختصاصی استفاده کنید و با داشتن یک آیپی استاتیک، این امر را امکانپذیر کنید.
۲. **یادگیری بانک اطلاعاتی**: برای ذخیرهسازی دادهها، میتوانید یک بانک اطلاعاتی راهاندازی کنید. به عنوان یک شروع، میتوانید از Sqlite که به صورت پیشفرض توسط پایتون پشتیبانی میشود، استفاده کنید.
۳. **خاموش کردن رزبری پای**: در پایان، بهتر است رزبری پای خود را خاموش کنید تا از مصرف انرژی زائد جلوگیری شود.
با انجام این مراحل، شما به راحتی میتوانید یک سرور توسعه پایتون روی رزبری پای خود راهاندازی کنید و به توسعه وبسایتهای خود بپردازید.
sudo shutdown -h now