Flash Messages
Server-side session notifications, displayed once after redirect.
Click the button to inject all 4 message types and see them displayed.
Show messages4 available levels
- Success — successful action, save, login
- Info — neutral information
- Warning — attention required
- Error — error, access denied
views.rs — injection dans la vue
pub async fn about(
mut request: Request,
) -> AppResult<Response> {
success!(request.notices => "Action successful.");
info!(request.notices => "Information message.");
warning!(request.notices => "Attention required.");
error!(request.notices => "An error occurred.");
request.render("about/about.html")
}
views.rs — pattern redirect typique
// After an action: add + redirect
pub async fn create_post(
request: Request,
Prisme(mut form): Prisme<BlogForm>,
) -> AppResult<Response> {
if request.is_post() && form.is_valid().await {
form.save(&db).await?;
success!(request.notices => "Article published!");
return Ok(Redirect::to("/blog").into_response());
}
request.render("blog/blog.html")
}
flash_now! — immediate message without session
// Display the message on the current page (no redirect)
flash_now!(error => request, "Invalid form.");
index.html — affichage dans le template
<!-- dans le layout de base -->
<main>
{% block messages %}
{% messages %}
{% endblock %}
{% block content %}{% endblock %}
</main>