FastAPI দিয়ে একটি প্রজেক্ট তৈরি করা সহজ এবং কাঠামোগতভাবে সঠিকভাবে প্রজেক্ট সাজালে বড় প্রজেক্ট পরিচালনা করা আরও কার্যকর হয়। এখানে একটি FastAPI প্রজেক্ট তৈরির প্রক্রিয়া ধাপে ধাপে ব্যাখ্যা করা হয়েছে।
ধাপ ১: ভার্চুয়াল এনভায়রনমেন্ট সেটআপ
ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন
প্রজেক্টের ডিপেনডেন্সি আলাদা রাখতে একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন:
python -m venv env
ভার্চুয়াল এনভায়রনমেন্ট সক্রিয় করুন
Windows:
.\env\Scripts\activatemacOS/Linux:
source env/bin/activate
ধাপ ২: FastAPI এবং Uvicorn ইনস্টল করা
FastAPI এবং Uvicorn ইনস্টল করতে নিচের কমান্ডটি চালান:
pip install fastapi uvicorn
ধাপ ৩: প্রজেক্ট ফোল্ডার স্ট্রাকচার তৈরি করা
প্রস্তাবিত স্ট্রাকচার
my_fastapi_project/
├── app/
│ ├── main.py
│ ├── routes/
│ │ ├── __init__.py
│ │ ├── example_routes.py
│ ├── models/
│ │ ├── __init__.py
│ │ ├── example_models.py
│ ├── schemas/
│ │ ├── __init__.py
│ │ ├── example_schemas.py
│ ├── database.py
│ ├── __init__.py
├── requirements.txt
ধাপ ৪: বেসিক ফাইল এবং কোড তৈরি করা
main.py
এটি মূল ফাইল যেখানে অ্যাপটি ডিফাইন করা হবে:
from fastapi import FastAPI
from app.routes import example_routes
app = FastAPI()
# Routes
app.include_router(example_routes.router)
@app.get("/")
def read_root():
return {"message": "Welcome to FastAPI Project!"}
routes/example_routes.py
এটি রাউটগুলোকে সাজানোর জন্য ব্যবহার করা হয়:
from fastapi import APIRouter
router = APIRouter()
@router.get("/example")
def get_example():
return {"message": "This is an example route"}
models/example_models.py
এটি ডাটাবেসের মডেল ডিফাইন করতে ব্যবহার করা হবে। উদাহরণস্বরূপ:
# Example of a database model (if using SQLAlchemy)
from sqlalchemy import Column, Integer, String
from app.database import Base
class ExampleModel(Base):
__tablename__ = "examples"
id = Column(Integer, primary_key=True, index=True)
name = Column(String, index=True)
schemas/example_schemas.py
এটি ডাটা ভ্যালিডেশন এবং পায়ডান্টিক (Pydantic) স্কিমার জন্য ব্যবহৃত হয়:
from pydantic import BaseModel
class ExampleSchema(BaseModel):
name: str
description: str
class Config:
orm_mode = True
database.py
এটি ডাটাবেস সংযোগ পরিচালনা করার জন্য:
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db"
engine = create_engine(SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False})
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
ধাপ ৫: ডিপেনডেন্সি লিস্ট সংরক্ষণ করা
আপনার প্রজেক্টে ব্যবহৃত সব প্যাকেজ সংরক্ষণ করতে:
pip freeze > requirements.txt
ধাপ ৬: অ্যাপ চালানো
Uvicorn ব্যবহার করে অ্যাপ চালানোর জন্য:
uvicorn app.main:app --reload
app.main:app:appফোল্ডারে থাকাmain.pyফাইলেরappঅবজেক্ট।--reload:
ডেভেলপমেন্টে অটোমেটিক রিফ্রেশ।
ধাপ ৭: ব্রাউজারে অ্যাপ অ্যাক্সেস করা
অ্যাপ চালু হলে ব্রাউজারে গিয়ে:
- Root Endpoint:
http://127.0.0.1:8000 - Swagger UI (স্বয়ংক্রিয় ডকুমেন্টেশন):
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
সার্বিক গাইডলাইন
- প্রজেক্টের ফোল্ডার স্ট্রাকচার মডুলার করুন যাতে বড় প্রজেক্ট পরিচালনা সহজ হয়।
- Pydantic ব্যবহার করে ইনপুট এবং আউটপুট যাচাই নিশ্চিত করুন।
- ডাটাবেস সংযোগ এবং লজিক আলাদা ফাইল বা মডিউলে রাখুন।
- ভার্চুয়াল এনভায়রনমেন্ট ব্যবহারের মাধ্যমে ডিপেনডেন্সি আলাদা রাখুন।
FastAPI দিয়ে তৈরি প্রজেক্টে এই কাঠামো আপনাকে দ্রুত এবং কার্যকর ডেভেলপমেন্টে সহায়তা করবে।
Read more