Ajout du TP n°4
This commit is contained in:
6
TP4/meme-app/backend/Dockerfile
Normal file
6
TP4/meme-app/backend/Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
||||
FROM python:3.9-slim
|
||||
WORKDIR /app
|
||||
COPY requirements.txt .
|
||||
RUN pip install -r requirements.txt
|
||||
COPY . .
|
||||
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]
|
37
TP4/meme-app/backend/app.py
Normal file
37
TP4/meme-app/backend/app.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from fastapi import FastAPI
|
||||
from pymongo import MongoClient
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
# Juste après la déclaration FastAPI()
|
||||
# Ajouter le middleware CORS
|
||||
origins = [
|
||||
"http://localhost",
|
||||
"http://localhost:80",
|
||||
"http://frontend",
|
||||
"http://frontend:80"
|
||||
]
|
||||
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=origins, # Liste des origines autorisées
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
# MongoDB connection
|
||||
client = MongoClient("mongodb://mongodb:27017/")
|
||||
db = client.memes_db
|
||||
|
||||
@app.get("/memes")
|
||||
def get_memes():
|
||||
memes = list(db.memes.find({}, {"_id": 0}))
|
||||
return {"memes": memes}
|
||||
|
||||
@app.post("/memes")
|
||||
def create_meme(title: str, url: str):
|
||||
meme = {"title": title, "url": url}
|
||||
db.memes.insert_one(meme)
|
||||
return {"message": "Meme added successfully"}
|
5
TP4/meme-app/backend/requirements.txt
Normal file
5
TP4/meme-app/backend/requirements.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
fastapi==0.68.0
|
||||
uvicorn[standard]==0.15.0
|
||||
python-multipart
|
||||
pymongo==3.12.0
|
||||
websockets==10.0
|
Reference in New Issue
Block a user