Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Sugestão] atualização da documentação do FastAPI e Starlette

Devido a uma atualização do template no fastAPI o código exatamente igual do professor está ocorrendo um erro de dicionário onde o causador é esse abaixo:

TypeError: unhashable type: 'dict' ele acontece por causa de uma mudança na assinatura do método templates.TemplateResponse nas versões mais recentes do Starlette / FastAPI (a partir do Starlette 0.28+).

Anteriormente, a assinatura aceitava o dicionário context como segundo argumento positional ("index.html", context). Nas versões mais recentes, o parâmetro do dicionário precisa passar explicitamente como context= ou a requisição é passada de forma nomeada (request=request).

o código do professor em main.py dentro do app está escrito assim:

@app.get("/", response_class=HTMLResponse)
async def front_page(request: Request):
    return templates.TemplateResponse(
        "index.html",
        {"request": request, "titulo": "Techlog Solutions CRM", "versao": "1.0.0"}
    )

caso você esteja tendo o mesmo erro a solução atualizada está abaixo:

@app.get("/", response_class=HTMLResponse)
async def front_page(request: Request):
    return templates.TemplateResponse(  
        request= request,
        name= "index.html",
        context={
            "titulo": "Techlog Solutions CRM",
            "versao": "1.0.0",
        },
    )

são apenas duas mudanças simples, o request é levado para fora do dicionário e estamos dando um nome para o "index.html", corrigindo isso deve rodar normalmente.

1 resposta

Oi, Jerônimo, como vai?

Obrigado por compartilhar essa atualização. Sua sugestão é especialmente útil porque pode evitar que outros alunos encontrem a mesma dificuldade ao acompanhar a aulas. Vou encaminhar seu relato e a solução apresentada para o responsável pelo curso, para que ele tenha conhecimento dessa diferença e possa avaliar a situação.

Obrigado novamente pela contribuição e por ajudar a melhorar o conteúdo para os próximos alunos.

O fórum continua à disposição para qualquer outra sugestão.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!