گیکی
گیکی
خواندن ۵ دقیقه·۱ سال پیش

نحوه دیپلوی(Deploy) وب اپ(web app)پروژه فِلِت(flet) در کلود فلر(cloudflare)


درود بر همراهان و برنامه نویسان عزیزی که درحال مطالعه این نوشته هستند.

در این نوشته، بنده سعی کرده ام تا نحوه دیپلوی کردن وب اپ پروژه فلت را در کلود فلر توضیح بدهم.



فلت(flet) چیست؟

آیا تا به حال شده که قصد نوشتن برنامه ای را در پایتون داشته باشید، و برای آن نیاز به رابط گرافیکی پیدا کنید؟

کتابخانه های مختلفی به این منظور موجود هستند برای مثال QT،Kivy و Tkinter. اما اگر به دنبال استفاده از فلاتر در پایتون هستید، میتوانید از کتابخانه فلت استفاده کنید.

نحوه نصب

فقط کافیه در محیط cmd تون، این رو وارد کنید:

pip install flet



وب اپ؟

یکی از قابلیت های جالب فلت، این است که میتوانید پروژه خود را در محیط مرورگر مشاهده کنید و میتوانید پروژه خودتان را به صورت PWA، در دسترس دوستان خویش و در یک لینک اینترنتی قرار دهید.
فقط کافیست خط آخر کد خودتان را به این سان، تغییر بدهید:

ft.app(target=main, view=ft.AppView.WEB_BROWSER)

اما چگونه؟

در وبسایت فلت، در مورد این موضوع راهکار های متفاوتی عنوان شده است; در واقع ارائه دهنده های هاست مختلفی که به صورت رایگان عمل میکنند را معرفی کرده. فلای دات آیو و رپلیت، مواردی هستند که در این وبسایت معرفی شده است اما هرکدام، در شرایط فعلی ایران، مشکلاتی دارند

مشکل fly.io درخواست ورود شماره کارت برای اجازه میزبانی رایگان پروژه هست که با توجه به شرایط کنونی، امکانش وجود ندارد. بنده قصد خرید پریپید کارت از ایرانیکارت را داشتم که قیمتی حدود 400 هزار تومان دارد. اما ممکن است fly.io پریپید کارت هارا قبول نکند و 400 هزار تومان شما به باد فنا برود، پس روش مطمئنی نیست اما اگر دسترسی دارید، پیشنهاد بنده انجام این کار است.
اما replit هیچ مشکلی ندارد. درواقع اگر طبق دستوری که داده شده پیش بروید، میتوانید سایت خودتان را بصورت رایگان دپلوی کنید. اما مشکل وقتی شروع میشود که قصد ورود به سایت را دارید. این کار شدنی نیست مگر با ابزار های ضد تحریم و ضد فیلتر که بنظر کمی دشوار می آید

چاره چیست؟

اینجاست که کلود فلر میتواند کمک شایانی بکند.

برای دپلوی کردن پروژه فلت خود در کلود فلر، مراحل زیر را طی کنید:

  • ساخت اکانت گیتهاب
  • ساخت اکانت کلود فلر
  • آپلود پروژه به همراه فایل های مورد نیاز در گیتهاب
  • دادن گیتهاب به کلود فلر

ساخت اکانت ها:

ساخت اکانت کلود فلر و گیتهاب یکی از آسون ترین کارهای موجود در جهان هست. نه نیاز به شماره تلفن داره نه آدرس نه هیچی. فقط کافیه جیمیلتون رو بدید و اکانت هاتون رو تحویل بگیرید. اگه اکانت دارید که نیازی به ساخت مجدد آن نیست.

آپلود پروژه به همراه فایل های مورد نیاز در گیتهاب

خب. تا الان ما فایل پروژمون رو داریم و اکانتهامون هم ساختیم.

  • قدم بعدی ایجاد دوتا فایل هست
    requirements.txt
  • runtime.txt

ساختید؟
حالا اسم پروژه فلت که با پایتون نوشتید رو به main.py تغییر بدید چون ما طبق این اسم فایل پیش میریم.

حالا دوتا فایل txt رو که ساختید باز کنید. در فایل ها باید محتوا های زیر رو قرار بدید:

  • requirements.txt : کتابخانه های مورد نیاز
  • runtime.txt : نسخه پایتون

در پروژه این که ساختم، فقط از flet استفاده کردم پس در فایل requirements.txt، فقط این رو وارد میکنم:

flet


پایتونی که استفاده میکنم نسخه 3.11 هست. پس داخل فایل runtime ، همین رو مینویسم

3.11



آپلود پروژه بر روی گیتهاب

اینم قدم خیلی راجتی است.(بین خودمون بمونه من یکمی روش گیر کرده بودم پس آموزشش میدم)

الان ما 3 تا فایل داریم.

باید اونارو روی گیتهاب آپلود کنیم. پس وارد گیتهاب میشیم و از گزیه + بالا سمت راست، یک ریپوزتوری جدیدی درست میکنیم(new repository)(ببخشید اگه کلمات خارجی، فارسی نوشته میشوند)

بر روی new repository کلید کنید
بر روی new repository کلید کنید


بعدش یک صفحه براتون باز میشه که در کل چیز خاصی نداره. یک اسم انتخاب میکنید و میزنید بعدی(این کار رو برای نشون دادن محل ورود اسم کردم)

مثل من اسم فارسی انتخاب نکنید
مثل من اسم فارسی انتخاب نکنید


ادامش رو فعلا حوصله ندارم بگم!(خودتون میتونید سرچ کنید)(فقط بگم باید روی اون نوشته آپلود پروجکت کلیک کنید و پروژتونو آپلود کنید)

خب.

حالا که ریپوزتوریتون ساخته شد، اون 3 تا فایل رو آپلود کنید در آن.

مرحله نهایی!

الان وارد سایت کلود فلر میشیم و از قبل لاگین کردیم.

از منوی سمت چپ، یکمی به پایین اسکرول میکنیم و روی گزینه Workers & Pages کلید میکنید:

workers & Pages
workers & Pages


بعدش یک صفحه براتون باز میشه که باید روی گزینه Create application کلیک کنید تا به صفحه دیگری هدایت شوید:

روی اون دکمه آبیه سمت راست کلیک کنید(این نمای بالای بخش workers & pages هست)
روی اون دکمه آبیه سمت راست کلیک کنید(این نمای بالای بخش workers & pages هست)


با صفحه زیر روبرو خواهید شد. باید به تب Pages برید

روی اون تبی که فلش زده شده کلیک کنید
روی اون تبی که فلش زده شده کلیک کنید

وارد تب که شدید وسط صفحه روی کانکت تو گیت کلیک کنید

آره همون دکمه آبی وسط صفحه
آره همون دکمه آبی وسط صفحه


بعدش به اکانت گیتهابتون وصل میشید و باید یکی از ریپوزتوریهاتون رو انتخاب کنید که پروژه از اون تو، دیپلوی بشه

از اسمش تعجب نکنید. میفهمید چیه دیگه
از اسمش تعجب نکنید. میفهمید چیه دیگه


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

توی صفحه بعدی که اومد، طبق زیر چیزایی که هست رو تغییر بدید

اول که اسم پروژه هست. دوتا کادر آبی آخر مهمه
اول که اسم پروژه هست. دوتا کادر آبی آخر مهمه

چیزای که توی دوتا کادر آبی پایین نوشتم

flet publish main.py

dist

این چیزی که دارم میگم رو چند ماه بعد از نوشتن پست به عنوان ویرایش میخوام اضافه بکنم. توی خود وبسایت فلت گفته بجای این کامند، از این کامند flet build web استفاده کنید که مزایای بهتری و سرعت بیشتری داره


البته توجه داشته باشید که اسم پروژه من main.py هست و شما هم اینو بزارید اسمشو.

سپس روی دکمه save & deploy کلیک میکنیم

بعدش یکم صبر میکنیم تا مراحل کامل بشود

شکیبا باشید
شکیبا باشید

در مجموع 2 دقیقه و 20 ثانیه شکیبا بودم!

خب بعدش یکمی اسکرول میکنیم و میبینیم عه دوباره دکمه آبیه پیداش شد! روش کلیک میکنیم

Countinue to project
Countinue to project

کلیک کردید؟

مبارکه پروژه شما اماده ارسال لینکش به دوستاتون هست

شما الان یک PWA رو با استفاده از فلت ساختید

روی دکمه visit site بزنید تا سایتتون براتون باز بشه
روی دکمه visit site بزنید تا سایتتون براتون باز بشه

سایتی که ساختیم این بود:

https://clothes-calculato.pages.dev/

اینم لینکش اگه باز نشد : https://clothes-calculato.pages.dev/

شما میتونید کلی کار دیگه کنید، دامین خودتون رو ست کنید و غیره.

اگه یوقت گمراه شدید، سری به ریپوزتوری گیتهاب این پروژه بیاندازید : https://github.com/Amitrix-bit/clothes_calculator




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

بدرود

کلود فلرfletpythonپایتونفلت
یک کنجکاو و علاقه مند به علوم کامپیوتر از برنامه نویسی تا سخت افزار و شبکه و...
شاید از این پست‌ها خوشتان بیاید