FastAPI Porbleme mit Funktion die ich innerhalb einer Form Unterscheidung ausführen möchte
Verfasst: Mittwoch 27. Oktober 2021, 12:43
Hallo Leute,
ich hoffe euch spricht das Thema an bzw. jemand kann mir helfen.
Ich versuche eine Weboberfläche zu gestallten mit der ich meine MQTT Geräte ansprechen kann. Vorallem mache ich das auch um dabei was über Webframeworks und Python zu lernen.
Das steht bei mit im main.py:
@app.get("/knoepfe")
def form_get(request: Request):
return templates.TemplateResponse('knoepfe.html', context={'request': request})
@app.post('/knoepfe')
def form_post(request: Request, action: str = Form(...)):
if action == 'convert':
async def mqtt_test():
await mqtt.publish("cmnd/Lampe/POWER","OFF")
return templates.TemplateResponse('knoepfe.html', context={'request': request})
elif action == 'download':
zwei = "das hat er gecheckt"
return templates.TemplateResponse('knoepfe.html', context={'request': request, 'check': zwei})
und das ist die html seite davon:
<body>
<form method="post">
<input type="submit" name="action" value="convert">
<input type="submit" name="action" value="download">
</form>
<p>hö? {{check}}</p>
</body>
Die Funktion mqtt_test() wird nicht ausgeführt.
wenn ich das so ausführe, geht's:
if action == 'convert':
async def mqtt_test():
await mqtt.publish("cmnd/Lampe/POWER","OFF")
Kann mir jemand helfen?
Gruß
ich hoffe euch spricht das Thema an bzw. jemand kann mir helfen.
Ich versuche eine Weboberfläche zu gestallten mit der ich meine MQTT Geräte ansprechen kann. Vorallem mache ich das auch um dabei was über Webframeworks und Python zu lernen.
Das steht bei mit im main.py:
@app.get("/knoepfe")
def form_get(request: Request):
return templates.TemplateResponse('knoepfe.html', context={'request': request})
@app.post('/knoepfe')
def form_post(request: Request, action: str = Form(...)):
if action == 'convert':
async def mqtt_test():
await mqtt.publish("cmnd/Lampe/POWER","OFF")
return templates.TemplateResponse('knoepfe.html', context={'request': request})
elif action == 'download':
zwei = "das hat er gecheckt"
return templates.TemplateResponse('knoepfe.html', context={'request': request, 'check': zwei})
und das ist die html seite davon:
<body>
<form method="post">
<input type="submit" name="action" value="convert">
<input type="submit" name="action" value="download">
</form>
<p>hö? {{check}}</p>
</body>
Die Funktion mqtt_test() wird nicht ausgeführt.
wenn ich das so ausführe, geht's:
if action == 'convert':
async def mqtt_test():
await mqtt.publish("cmnd/Lampe/POWER","OFF")
Kann mir jemand helfen?
Gruß