PyWebIO

PyWebIO مجموعه ای از توابع دستوری را برای به دست آوردن ورودی کاربر و خروجی دادن محتوا روی مرورگر را ارائه می کند، تبدیل مرورگر به یک «ترمینال متن غنی»، و می تواند برای ساخت وب اپلیکیشن های ساده یا اپلیکیشن های دارای رابط کاربری گرافیکی مبتنی بر مرورگر استفاده شود. با استفاده از PyWebIO، توسعه دهندگان می توانند اپلیکیشن ها را درست مثل نوشتن اسکریپت های ترمینال (تعامل بر پایه تابع Input و Print) بنویسند، بدون نیاز به داشتن دانش HTML و جاوا اسکریپت. PyWebIO برای ساخت سریع اپلیکیشن های تعاملی که یک رابط کاربری پیچیده نیاز ندارند ایده آل است.

ویژگی ها

  • استفاده از همگام سازی بجای متد مبتنی بر فراخوانی برای دریافت ورودی

  • چیدمان Non-declarative، ساده و کارآمد

  • کمتر مزاحم: کد اسکریپت قدیم می تواند به یک وب سرویس تبدیل شود فقط با اصلاح عملیات ورودی و خروجی

  • پشتیبانی از ادغام با وب سرویس های موجود، در حال حاضر پشتیبانی از Flask, Django, Tornado, aiohttp و فریم ورک FastAPI(Starlette)

  • پشتیبانی برای asyncio و coroutine

  • پشتیبانی از بصری سازی داده با کتابخانه های شخص ثالث

نصب

نسخه پایدار:

pip3 install -U pywebio

نسخه توسعه:

pip3 install -U https://github.com/pywebio/PyWebIO/archive/dev-release.zip

پیش نیاز ها: PyWebIO به Python 3.5.2 یا جدید تر نیاز دارد

سلام، دنیا

در اینجا یک اسکریپت PyWebIO ساده برای محاسبه شاخص توده بدنی آورده شده است:

# یک اسکریپت ساده برای محاسبه شاخص توده بدنی
from pywebio.input import input, FLOAT
from pywebio.output import put_text

def bmi():
    height = input("قد خود را وارد کنید(سانتی متر):", type=FLOAT)
    weight = input("وزن خود را وارد کنید(کیلوگرم):", type=FLOAT)

    BMI = weight / (height / 100) ** 2

    top_status = [(16, 'کمبود وزن شدید'), (18.5, 'کمبود وزن'),
                  (25, 'عادی'), (30, 'اضافه وزن'),
                  (35, 'چاق متوسط'), (float('inf'), 'چاق شدید')]

    for top, status in top_status:
        if BMI <= top:
            put_text('شاخص توده بدنی شما: %.1f. دسته بندی: %s' % (BMI, status))
            break

if __name__ == '__main__':
    bmi()

این فقط یک اسکریپت خیلی ساده است اگه شما PyWebIO را نادیده بگیرید، اما بعد از استفاده از توابع ورودی و خروجی ارائه شده توسط PyWebIO، شما می توانید با کد در مرورگر تعامل برقرار کنید:

_images/demo.gif

در آخرین خط کد بالا، تغییر فراخوانی تابع bmi() به pywebio.start_server(bmi, port=80) یک وب سرویس شاخص توده بدنی را روی پورت 80 راه اندازی می کند ( دمو آنلاین ).

اگر شما می خواهید که سرویس bmi() را با یک وب فریم ورک موجود ادغام کنید، می توانید بخش Integration with a web framework این مستندات را ببینید.

مستندات

این مستندات همچنین در فرمت های PDF و Epub در دسترس است.

بحث و پشتیبانی

  • هنگام استفاده از PyWebIO نیاز به کمک دارید؟ یک بحث جدید در Github Discussions بسازید.

  • باگ ها را در GitHub issue گزارش کنید.