首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在tera模板中使用rocket::response::Flash

如何在tera模板中使用rocket::response::Flash
EN

Stack Overflow用户
提问于 2021-02-09 18:12:02
回答 1查看 124关注 0票数 0

我目前正在重写一个用python/flask构建的web应用程序,它使用flashes,如下所示:

代码语言:javascript
复制
{% with flashes = get_flashed_messages() %}
    {% if flashes %}
      <ul class=flashes>
      {% for message in flashes %}
        <li>{{ message }}
      {% endfor %}
      </ul>
    {% endif %}
{% endwith %}

我是Rust和Rocket的新手,我找不到任何关于如何在tera模板中处理flash cookie的文档。有没有办法做到这一点,或者我从错误的角度来处理这个问题?

目前,我已经将其重构为如下所示,但显然get_flashed_messages()部分无法工作。

代码语言:javascript
复制
{% set flashes = get_flashed_messages() %}
  {% if flashes %}
    <ul class=flashes>
    {% for message in flashes %}
      <li>{{ message }}
    {% endfor %}
    </ul>
{% endif %}
EN

回答 1

Stack Overflow用户

发布于 2021-04-14 13:30:45

这是答案和来源。我的解决方案-> https://github.com/SergioBenitez/Rocket/issues/14#issuecomment-710698003的灵感

我的工作解决方案:

代码语言:javascript
复制
//some.html.tera file
...
{% if flash %}
    <p>{{flash}}</p>
{% endif %}
...

我使用Flash消息的函数

代码语言:javascript
复制
#[get("/signup")]
fn signup_page(flash: Option<FlashMessage>) -> Template {
    let mut context: HashMap<&str, Option<String>> = HashMap::new();
    context.insert("flash", flash.map(|msg| format!("{}! {}", msg.name(), msg.msg())));
    Template::render("signup", &context)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66116884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档