【问题标题】:Flask/Python render only a table in templateFlask/Python 只渲染模板中的表格
【发布时间】:2018-09-28 15:28:22
【问题描述】:

我想在我的网站中添加一个搜索栏。这会使用用户输入从 postgresql 数据库中获取数据,返回结果并将其显示在表中。

如何将数据发送到我的 .py 并返回新数据并仅呈现带有结果的表格?

我正在使用 python 2.7

编辑:

edit_person.html

{% extends "layouts/layout_logged.html"%}

{% block body%}
    <a href="/macro_test" class="btn btn-danger btn-sm my-2 my-sm-0" type="submit">TEST</a>
    <form>
      # here can the user add something from the search results 
    </form>

    {% include "searches/clothings_search_result.html" %}
{% endblock %}

person.py

@app.route('/macro_test', methods=['GET'])
@login_required
def test():
    user_input = request.form["search"]

    search_result = # here the query
    search_result = [dict(r) for r in search_result ]

    result = get_template_attribute('searches/clothings_search_result.html', 'result ')

    return result('search_result')

clothing_search_result.html

{% macro result (search_result) -%}
     {{ search_result[0] }}
     # here is the table i want to render
{%- endmacro %}

【问题讨论】:

  • 请阅读烧瓶quickstart
  • 完成。但是只有渲染完整站点的方法。我知道如何将数据发送到 .py,但我不想重定向到另一个站点。
  • 如果不查看您的代码库,就无法找出问题所在。可以在这里添加相关代码吗?
  • @RajaSimon 很想在评论中发布它。我只想在我的 .html 中呈现这个,它扩展了我的 main.html {% include "searches/clothings_search_result.html" %} 这个我用链接调用:&lt;a href="/macro_test" class="btn btn-danger btn-sm my-2 my-sm-0" type="submit"&gt;TEST&lt;/a&gt;
  • edit您的问题包含更多信息...

标签: python html python-2.7 flask


【解决方案1】:

我找到了一种工作方式。

edit_person.html

{% extends "layouts/layout_logged.html"%}

{% block body%}
    <a id="search_btn" class="btn btn-danger btn-sm my-2 my-sm-0" type="submit">TEST</a>
    <form>
      # here can the user add something from the search results 
    </form>

    <ul id="search_results"></ul>
{% endblock %}

person.py

@app.route('/macro_test/<string:user_input>/debug=<string:debug>', methods=['GET'])
@login_required
    def test(user_input, debug):

        search_query = # here my query

        # get data and make dict
        search_result = sql_conn.query(search_query)
        search_result = [dict(r) for r in search_result]

        # t = true
        # other = false

        if debug == 't':
        # show pretty json
            return jsonify(search_result)
        else:
            # default =  convert all unknown types to str
            return json.dumps(search_result, ensure_ascii=False, default=str)

edit_person.js

$( document ).ready(function() {
    $("#search_btn").click(function()
    {
        $.getJSON( "http://192.168.178.31:8080/macro_test/test/debug=f", function( data ) {

         var items = [];

             $.each( data, function( key, val ) {
                items.push( "<li>" + val.clothes_inventory_number + " - " + val.clothes_date_return +"</li>" );
             });

            $("#search_results").html(items.join( "" ));

        });
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 2017-06-25
    • 1970-01-01
    相关资源
    最近更新 更多