نوشتن اپلیکیشن وب با پایتون برای علم داده – راهنمای کاربردی

نصب Streamlit برای نوشتن اپلیکیشن وب با پایتون برای علم داده
نصب Streamlit به سادگی اجرای یک خط کد است.
برای مشاهده اینکه آیا نصب موفقیتآمیز بوده است یا خیر، میتوان از دستور زیر استفاده کرد.
در اولین بار استفاده، از کاربر خواسته میشود که ایمیل آدرس خود را در صورت تمایل وارد کند و یا با زدن دکمه اینتر (Enter)، این قسمت را رد کند.
C:\WINDOWS\system32>streamlit hello ? Welcome to Streamlit! If you are one of our development partners or are interested in getting personal technical support, please enter your email address below. Otherwise, you may leave the field blank. Email:
پس از رد کردن این قسمت (در اینجا ایمیل وارد نشده است، اما علاقهمندان میتوانند ایمیل خود را وارد کنند)، خروجی حاصل از دستور streamlit hello، به صورت زیر خواهد بود.
C:\WINDOWS\system32>streamlit hello
? Welcome to Streamlit!
If you are one of our development partners or are interested in
getting personal technical support, please enter your email address
below. Otherwise, you may leave the field blank.
Email:
Telemetry: As an open source project, we collect usage statistics.
We cannot see and do not store information contained in Streamlit apps.
If you'd like to opt out, add the following to ~/.streamlit/config.toml,
creating that file if necessary:
[browser]
gatherUsageStats = false
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://10.10.69.206:8501
کاربر میتواند به URL محلی خود یعنی localhost:8501 در مرورگر وب برود تا یک Streamlit را در عمل ببیند. توسعهدهندگان، دموهای خوبی را فراهم کردهاند که افراد میتوانند آنها را بررسی کنند. همین امر موجب میشود تا کسانی که پیش از این از Streamlit استفاده نمیکردند نیز قدرت این ابزار را درک کنند و مجددا به سراغ آن بیایند.
Streamlit Hello World
در این راستا، فقط کافی است که کاربر کد مورد نظر خود را در فایلی با نام helloworld.py بچسباند (Paste).
سپس، باید دستور زیر را در ترمینال اجرا کرد.
در این لحظه، کاربر باید قادر به مشاهده یک برنامه کاربردی ساده در مرورگر خود و در localhost:8501 باشد که به کاربر امکان جا به جایی اسلاید را داده و نتایج را نشان میدهد.
این کار بسیار آسان است. در برنامه کاربردی بالا، از دو ویژگی از Streamlit استفاده شده است. ویجت st.slider که میتوان با بهرهگیری از آن لغزش کرد تا خروجی برنامه وب را نشان دهد. دستور همه کاره st.write حقیقتا فوقالعاده است و میتواند همه چیز از نمودارها و چارچوبهای داده گرفته تا متن ساده و دیگر موارد را بنویسد.
نکته مهم: باید به خاطر داشت که با هر بار تغییر دادن مقدار «ویجت» (Widget) کل برنامه از بالا به پایین اجرا میشود.
ویجتهای Streamlit
ویجتها برای کاربر، راهکاری جهت کنترل برنامه فراهم میکنند. بهترین محل برای خواندن پیرامون ویجتها مستندات خود API است. اما در ادامه، برخی از برجستهترین مواردی که کاربر ممکن است تمایل به کار با آنها داشته باشد، بیان شدهاند.
۱. اسلایدر
در بالا، st.slider مشاهده میشود. این مورد را میتوان با min_value,max_value و گامی برای دریافت ورودیها در یک طیف، استفاده کرد.
۲. ورودی متنی
سادهترین راه برای گرفتن اطلاعات کاربر، ورودیهای URL یا ورودیهای متنی برای «تحلیل عواطف» (Sentiment Analysis) است. این کار تنها نیاز به یک برچسب برای نامگذاری جعبه متن دارد.
در ادامه، نمایی از app نشان داده شده است.
تذکر: میتوان فایل helloworld.py را تغییر داد و مرورگر را تازهسازی کرد. کاری که در اینجا استفاده شده است، باز کردن و تغییر helloworld.py در «سابلایم تکست» (Sublime Text) و مشاهده تغییرات در مرورگر به صورت پهلو به پهلو است.
۳. چِکباکس
یکی از کاربردهای چِکباکس، پنهان کردن یا نمایش دادن/مخفی کردن یک بخش خاص در یک برنامه است. دیگر مورد، میتواند تنظیم یک مقدار بولی در پارامترها برای یک تابع باشد. st.checkbox() یک آرگومان یکتا را دریافت میکند که برچسب ویجت است.
در این برنامه، چِکباکس برای تغییر وضعیت یک عبارت شرطی مورد استفاده قرار میگیرد.
۴. جعبه انتخاب
میتوان از st.selectbox برای انتخاب کردن از میان «سریها» (Series) یا «لیست» (List) استفاده کرد. معمولا، یک کاربرد موردی، استفاده از آن برای انتخاب مقادیر از یک لیست است.
۵. انتخاب چندگانه
همچنین، میتوان از مقادیر چندگانه از لیست کشویی استفاده کرد. در اینجا، از st.multiselect برای گرفتن مقادیر چندگانه به عنوان لیست در متغیر options استفاده میشود.
گام به گام تا ساخت یک برنامه کاربردی
اکنون، یک برنامه کاربردی ساده با استفاده از چندین ویجت به صورت یکجا، ساخته میشود. برای آغاز کار، تلاش میشود تا دادههای فوتبال با استفاده از streamlit بصریسازی شوند.
این کار با استفاده از ویجتهایی که پیش از این روش ساخت آنها به طور کامل بیان شد، بسیار ساده است.
برنامه کاربردی ساخته شده، به صورت زیر به نظر خواهد رسید.
همچنین، «پلاتلی اکسپرس» (Plotly Express) نیز با Streamlit کار میکند، هر چند در مستندات Streamlit به این مورد اشاره نشده است. شایان ذکر است که، برخی از انواع نمودارهای توکار نیز وجود دارند که برای Streamlit «محلی» (Native) محسوب میشوند. از جمله این موارد میتوان به st.line_chart و st.area_chart اشاره کرد.
در ادامه، نگاهی به plotly_express انداخته میشود. در اینجا، کد برای برنامه کاربردی ساده مورد نظر ارائه شده است. در اینجا، صرفا از چهار فراخوانی برای streamlit استفاده شده است. کد این کار، از جمله کدهای ساده پایتون محسوب میشود.
بهبودها
۱. کش کردن
هنگامی که یک تابع با دکوراتور کش streamlit علامتگذاری شد، هر بار که تابع فراخوانی شود، streamlit پارامترهای ورودی را که تابع با آنها فراخوانی شده است بررسی میکند. اگر این اولین بار است که streamlit این پارامترها را دیده است، تابع اجرا و نتایج در یک کش محلی ذخیره میشوند.
هنگامی که تابع در دفعات بعدی فراخوانی شد، اگر این پارامترها تغییر نکرده باشند، streamlit آنها را میداند و میتواند از اجرای همه توابع در کنار هم جلوگیری کند. این مورد فقط از نتایج در کش استفاده میکنند.
۲. سایدبار
برای یک پاککننده (cleaner) که بر اساس نظر کاربر عمل میکند، ممکن است که کاربر بخواهد که ویجت خود را به یک نوار کناری تبدیل میکند، چیزی شبیه به دشبوردهای Rshiny؛ این کار واقعا آسان است.
در این راستا، کافی است که کاربر st.sidebar را به کدهای ویجت خود اضافه کند.
۳. مارکداون
پاسخ مثبت است. بلی؛ میتوان این کار را انجام داد. راههای گوناگونی برای انجام این کار وجود دارند. یکی از بهترین این راهها، استفاده از دستورات Magic است. دستورات Magic به کاربر این امکان را میدهند که مارکداونها را به سادگی دستورات بنویسند. کاربر همچنین میتواند از دستور st.markdown استفاده کند.
نتیجهگیری
Streamlit کل فرایند را برای ساخت برنامههای کاربردی دموکراتیزه کرده است و استفاده از آن اکیدا توصیه میشود.
رنگهای پیشفرض و استایلهایی که توسعهدهندگان استفاده کردهاند مناسب به نظر میرسد و بهتر از استفاده از Dash است. همچنین، میتوان صوت و تصویر را نیز در برنامه کاربردی streamlit گنجاند. علاوه بر این موارد، Streamlit یک ابزار آزاد و متنباز است نه یک ابزار مالکیتی.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- آموزش مدیریت فایلها و اسناد با استفاده از ذخیره ابری
- مجموعه آموزشهای هوش مصنوعی
- ابزارهای یادگیری ماشین متن باز — راهنمای کاربردی
- هوش مصنوعی در کسب و کار — بررسی جامع
- کلان داده یا مِه داده (Big Data) — از صفر تا صد
^^
مطالب مجله فرادرس را در جستجوی گوگل سریعتر ببینید
























