【问题标题】:how to use dynamic templates in python pyramid如何在python金字塔中使用动态模板
【发布时间】:2019-08-06 19:10:48
【问题描述】:

我已经完成了一个网站的开发,它运行良好,但是我正在尝试通过添加动态模板来优化我的网站,并想确保它是否可以在金字塔 python 上完成。

例如,在我的 jinja 模板中,我有以下内容:

{% block article_detail %}
    <form action="{{request.route_url('Sports_News_Action',action=action)}}" method="post" class="form">
        {% if action =='edit' %}
            {{ form.id() }}

我的控制器中的示例:

@view_config(route_name='Sports_News_Action', match_param='action=create',
             renderer='StarAdmin:templates/edit_sports.jinja2')
def general_create(request):
    entry = SportNews()

请求路由必须与我的控制器中的路由匹配才能运行该功能。我想要做的是如何用动态变量替换 jinja 中的那个,要使用一个 jinja 模板,可以说具有不同 route_names 的不同视图/控制器。

【问题讨论】:

  • 如果我理解您的要求,对于每个功能,更改装饰器中的 route_name 参数。否则,请更新您的问题以清楚起见。
  • 是的,但是我需要做的是有一个变量 route_name 而不是一个固定的,对于每个表单操作,我需要在提交时将其路由到特定的路由,我的问题是。我如何通过一个动作使用一个寺庙,一个提交按钮用于多条路线。

标签: python jinja2 pyramid


【解决方案1】:

我认为在您的情况下,最简单的解决方案是保留 action 未定义,浏览器会将请求提交到当前 url。如果要将表单提交到与当前不同的 url,则只需指定 action。话虽如此,您也可以在金字塔中使用许多不同的选项来生成 url。比如request.url是当前url,或者request.matched_route.name是当前匹配路由的名字。

【讨论】:

  • 谢谢,我实际上回到了我的代码并优化了需要动态并且能够轻松完成的页面。我想这只是习惯编程语言的问题,之后一切自然而然。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-14
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 2012-08-27
  • 2021-07-17
相关资源
最近更新 更多