【问题标题】:FLASK table generated from the form从表单生成的 FLASK 表
【发布时间】:2020-11-25 12:57:43
【问题描述】:

大家好,第一个问题。 我在虚拟机 (Ubuntu 18) 上运行以下代码时遇到问题。

笔记本上venv运行的代码100%正确运行,但发布到测试服务器后,刷新页面时p_list变量生成的表格是否出现。 在 venv 上,每次刷新都会生成表格的显示。在服务器上它是相当随机的,不到 30% 的时间它会产生一个表格显示。

谢谢!

views.py

@app.route('/add' , methods=('GET', 'POST'))
def add_day_card():
    from app.DB.product_list import p_list,products_list
    from datetime import date
    data = date.today()
    data = str(data.strftime("%d/%m/%Y"))
    p_list=p_list
    products=products_list
    if request.method == 'POST':
        if request.form:
            if request.form.get('add') == 'add':
                name=request.form["productname"]
                quant=request.form["productquant"]
                try:
                    p_list.append([name,quant])
                    return redirect(request.url)
                except:
                    pass
            elif request.form.get('save')=='save':
                date=request.form["date"]
                print(date)
                print(p_list)
                p_list.clear()
                return redirect(request.url)
        else:
            pass

    return render_template("add.html", p_list=p_list, products=json.dumps(products), data=data)

添加.html

{% extends "template.html" %}
{% block title %}add-dkz{% endblock %}

{% block main %}

    <div class="container">
        <form name="day" method="post">
            <div class="row">
                <div class="col">
                    <h1>Dzienne przyjęcie</h1>
                </div>
                <div class="col">
                    <div class="form-group"> <!-- Date input -->
                        <label class="control-label" for="date">Data</label>
                        <input class="form-control" name="date" value="{{ data }}" placeholder="DD/MM/YYYY" type="text"/>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-8">
                    <h3>Produkty do przeyjęcia</h3>
                </div>
                <div class="col-4">
                    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
                        Dodaj produkt
                    </button>
                </div>
            </div>
            <div class="row">
                <table class="table table-sm">
                    <thead>
                    <tr>
                        <th scope="col">#</th>
                        <th scope="col">Kod</th>
                        <th scope="col">Nazwa</th>
                        <th scope="col">Ilość</th>
                    </tr>
                    </thead>
                    <tbody>
                    {% for item in p_list %}
                        <tr>
                            <td>0</td>
                            <td>0</td>
                            <td>{{ item[0] }}</td>
                            <td>{{ item[1] }}</td>
                        </tr>
                    {% endfor %}
                    </tbody>
                </table>
            </div>
            <div class="row">
                <div class="col">
                    <button type="submit" name="save" value="save" class="btn btn-primary">
                        Zapisz
                    </button>
                </div>
            </div>
        </form>
    </div>

    <!-- Modal -->
    <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Dodaj produkt</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    <form autocomplete="off" action="/add" name="product" method="POST">
                        <div class="row">
                            <div class="autocomplete col-7">
                                <input id="form-autocomplete-4" class="form-control" type="search" name="productname"
                                       placeholder="produkt">
                            </div>
                            <div class="col-5">
                                <input class="form-control" type="text" name="productquant" placeholder="">
                            </div>
                        </div>

                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Zamknij</button>
                    <button type="submit" name="add" value="add" class="btn btn-primary">Dodaj produkt</button>
                </div>
                </form>
            </div>

        </div>
    </div>

    <script>
        var product = {{ products|safe }};
    </script>


{% endblock %}

【问题讨论】:

    标签: python forms flask jinja2


    【解决方案1】:

    我的处理方式有点不同。我认为问题出在 NGINX 配置上。但是当它现在将数据存储在数据库表中而不是变量中时,一切都很完美。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      • 2014-04-07
      • 2016-08-20
      • 2013-11-02
      相关资源
      最近更新 更多