Uvicorn হলো একটি lightning-fast ASGI (Asynchronous Server Gateway Interface) সার্ভার, যা Python-ভিত্তিক অ্যাসিঙ্ক্রোনাস ওয়েব অ্যাপ্লিকেশন চালানোর জন্য ব্যবহৃত হয়। FastAPI অ্যাপ চালানোর জন্য Uvicorn খুবই গুরুত্বপূর্ণ।
সিস্টেমের প্রয়োজনীয়তা
- Python 3.7 বা এর পরবর্তী সংস্করণ।
- প্যাকেজ ম্যানেজার
pip।
Uvicorn ইনস্টলেশন
Uvicorn ইনস্টল করতে pip ব্যবহার করুন:
pip install uvicorn
Uvicorn ইনস্টল হওয়ার পর এর সংস্করণ যাচাই করতে:
uvicorn --version
ভার্চুয়াল এনভায়রনমেন্টে ইনস্টল (ঐচ্ছিক কিন্তু সুপারিশকৃত)
প্রজেক্টের ডিপেনডেন্সি আলাদা রাখতে ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন:
python -m venv env
এবং সক্রিয় করুন:
Windows:
.\env\Scripts\activatemacOS/Linux:
source env/bin/activate
এরপর Uvicorn ইনস্টল করুন:
pip install uvicorn
একটি উদাহরণ FastAPI অ্যাপ চালানো
FastAPI অ্যাপ কোড
একটি ফাইল তৈরি করুন, যেমন app.py, এবং নিচের কোড লিখুন:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, Uvicorn!"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "query": q}
Uvicorn ব্যবহার করে অ্যাপ চালানো
এখন Uvicorn ব্যবহার করে অ্যাপ চালান:
uvicorn app:app --reload
app:app:
প্রথমappহল ফাইলের নাম (app.py), এবং দ্বিতীয়appহল FastAPI অ্যাপের অবজেক্ট।--reload:
ডেভেলপমেন্টে পরিবর্তনের সময় স্বয়ংক্রিয়ভাবে সার্ভার রিলোড করার জন্য।
ব্রাউজারে অ্যাপ অ্যাক্সেস করা
কমান্ড লাইন আউটপুটে একটি বার্তা দেখতে পাবেন:
Uvicorn running on http://127.0.0.1:8000
ব্রাউজারে গিয়ে http://127.0.0.1:8000 এ গেলে অ্যাপটি কাজ করছে কিনা তা যাচাই করতে পারবেন।
Uvicorn সার্ভারের অতিরিক্ত কনফিগারেশন
১. পোর্ট পরিবর্তন করা
ডিফল্ট পোর্ট পরিবর্তন করতে --port ফ্ল্যাগ ব্যবহার করুন:
uvicorn app:app --reload --port 9000
২. হোস্ট পরিবর্তন করা
ডিফল্টভাবে Uvicorn localhost এ চলে। অন্য ডিভাইস থেকে অ্যাপ অ্যাক্সেস করতে 0.0.0.0 হোস্ট ব্যবহার করুন:
uvicorn app:app --host 0.0.0.0 --reload
৩. প্রোডাকশন মোড
--reload ডেভেলপমেন্টের জন্য। প্রোডাকশনে ব্যবহার করতে এটি বাদ দিন এবং অতিরিক্ত অপশন প্রয়োগ করুন:
uvicorn app:app --host 0.0.0.0 --port 80
Docker-এ Uvicorn ব্যবহার (ঐচ্ছিক)
Uvicorn Docker কন্টেইনারে চালাতে পারেন। Dockerfile উদাহরণ:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "80"]
এরপর Docker কন্টেইনার তৈরি করে চালান।
Uvicorn সেটআপ করা খুবই সহজ, এবং এটি FastAPI অ্যাপ চালানোর জন্য আদর্শ। ডেভেলপমেন্ট এবং প্রোডাকশন উভয়ের জন্য Uvicorn নির্ভরযোগ্য এবং উচ্চ কার্যক্ষম।
Read more