Servir un QR Code depuis un contrôleur¶
Objectif : renvoyer un QR Code en HTTP depuis un contrôleur Forge.
Ce que vous allez apprendre : QrCodeResponse.from_text renvoie une
core.http.Response ordinaire.
Le contrôleur la retourne telle quelle, comme n'importe quelle réponse Forge.
Par défaut, la réponse est un PNG avec l'en-tête Content-Type: image/png.
Premier palier du niveau intermédiaire.
Ce que ce starter montre¶
- construire une réponse PNG avec
QrCodeResponse.from_text; - la servir depuis une route Forge.
Classes Forge utilisées¶
| Fonction | Rôle dans ce starter | Référence |
|---|---|---|
QrCodeResponse.from_text(text) |
Construit une Response servant le QR Code (PNG par défaut). |
Opt-ins |
1. Le contrôleur¶
# mvc/controllers/qrcode_controller.py
from core.http.request import Request
from core.http.response import Response
from core.mvc.controller.base_controller import BaseController
from forge_mvc_qrcode import QrCodeResponse
class QrCodeController(BaseController):
@staticmethod
def show(request: Request) -> Response:
return QrCodeResponse.from_text("https://forgemvc.com")
Comprendre ce code¶
QrCodeResponse.from_text(...)génère le QR Code et renvoie uneResponse.- La réponse est un PNG : son en-tête
Content-Typevautimage/png. - Aucun fichier n'est écrit, aucune route n'est imposée par le paquet.
2. La route¶
# mvc/routes.py
from mvc.controllers.qrcode_controller import QrCodeController
with router.group("", public=True) as public:
public.add("GET", "/qrcode", QrCodeController.show, name="qrcode_show")
En visitant /qrcode, le navigateur affiche l'image du QR Code.
À retenir¶
QrCodeResponse.from_text(texte)renvoie uneResponsePNG prête à servir.- Le contrôleur retourne cette réponse directement.
Après ce starter¶
Vous servez un PNG.
Voyons comment servir un SVG à la place.