带有nginx的数据post未正确排序

2024-06-07 18:26:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个Flask应用程序,在我的本地计算机上一切正常,我可以在HTML页面上插入表单中的数据,然后将数据传递给程序进行详细说明。你知道吗

我想在Ubuntu服务器上移动这个应用程序,我用这个guide设置了nginx、python、flask、uswgi等所有东西。 web服务器工作时,我可以访问网页并插入所有数据,但当程序将数据传递到另一个页面时,排序不正确,可能第三个字段位于第二个位置,以此类推。你知道吗

我不明白为什么我的本地机器上没有发生这种情况。你知道吗

举个例子:

ImmutableMultiDict
([('group-0[1][macchine]', 'M02'), ('group-0[1][tempo_previsto_setup]', '17'),  ('group-0[0][tempo_previsto_setup]', '13'), 
('group-0[0][macchine]', 'M01'),  ('group-0[0][tempo_previsto_lavorazione]' 
('group-0[2][macchine]', 'M03'),  ('group-0[2][tempo_previsto_lavorazione]', '22'), ('group-0[0][tipo_lavorazione]', '')

这只是几个字段,但是列表要长得多,正如您可以看到的M01在第二个位置,但是在web页面中是在第一个字段。你知道吗

基本上每个group-0[1][macchine]都应该有他的group-0[1][tempo_previsto_setup]''group-0[0][tempo_previsto_lavorazione]' 但是正如您所看到的,M02有两个'group-0[0][tempo_previsto_lavorazione]一个是[1](这是正确的),一个是[0],应该属于M01

这给我带来了很多问题,因为编写程序是为了正确排序数据

nginx有什么问题?你知道吗


我得到的ImmutableMultiDict是这样的:

@app.route('/ordini/conferma', methods=['GET', 'POST'])
def conferma_ordine():
    global data

    if request.method == 'POST':
        data = request.form
        print(data)
        Calcolo_tempistiche.ottenimento_variabili(data)
        array_ordine = Calcolo_tempistiche.array_ordine
        return render_template('ordine_eseguito.html', **locals())

    data = []

Tags: 数据程序服务器应用程序datasetupgroupnginx
1条回答
网友
1楼 · 发布于 2024-06-07 18:26:08

我没有找到问题的答案,但我确实找到了排序每个变量的方法。你知道吗

变量的完整列表是:ImmutableMultiDict([('id_ordine', '1650958108523345 '), ('data_start', '2018-08-06'), ('group-a[0][id_prodotto]', 'Frutta'), ('group-a[0][quantita]', '2'), ('group-0[0][macchine]', 'M01'), ('group-0[0][tipo_lavorazione]', ''), ('group-0[0][tempo_previsto_checkup]', '12'), ('group-0[0][tempo_previsto_setup]', '12'), ('group-0[0][tempo_previsto_lavorazione]', '14'), ('group-0[0][nota]', ''), ('group-0[1][macchine]', 'M02'), ('group-0[1][tipo_lavorazione]', ''), ('group-0[1][tempo_previsto_checkup]', '13'), ('group-0[1][tempo_previsto_setup]', '14'), ('group-0[1][tempo_previsto_lavorazione]', '15'), ('group-0[1][nota]', ''), ('group-a[1][id_prodotto]', 'verdura'), ('group-a[1][quantita]', '2'), ('group-1[0][macchine]', 'M03'), ('group-1[0][tipo_lavorazione]', ''), ('group-1[0][tempo_previsto_checkup]', '14'), ('group-1[0][tempo_previsto_setup]', '15'), ('group-1[0][tempo_previsto_lavorazione]', '16'), ('group-1[0][nota]', '')])

我将在这里编写代码来排序该列表,也许它对某些人有帮助:

num_pr = 0

for pr in range(len(variabili)):
    campo = []

    for pr in variabili:
        prodotto = []
        if pr == "group-a[" + str(num_pr) + "][id_prodotto]":
            campo = [variabili["group-a[" + str(num_pr) + "][id_prodotto]"]]
            prodotto.append(campo)

            if "group-a[" + str(num_pr) + "][quantita]" in variabili:
                campo = [variabili["group-a[" + str(num_pr) + "][quantita]"]]
                prodotto.append(campo)

                num_mc = 0
                for _ in range(len(variabili)):

                    for _ in range(len(variabili)):
                        if 'group-'+ str(num_pr) +'[' + str(num_mc) + '][macchine]' in variabili:
                            campo = [variabili['group-'+ str(num_pr) +'[' + str(num_mc) + '][macchine]']]

                            for tmp in variabili:
                                if 'group-'+ str(num_pr) +'[' + str(num_mc) + '][tempo_previsto_checkup]' in variabili:
                                    campo.append(variabili['group-'+ str(num_pr) +'[' + str(num_mc) + '][tempo_previsto_checkup]'])

                                    if 'group-'+ str(num_pr) +'[' + str(num_mc) + '][tempo_previsto_setup]' in variabili:
                                        campo.append(variabili['group-'+ str(num_pr) +'[' + str(num_mc) + '][tempo_previsto_setup]'])

                                        if 'group-'+ str(num_pr) +'[' + str(num_mc) + '][tempo_previsto_lavorazione]' in variabili:
                                            campo.append(variabili['group-'+ str(num_pr) +'[' + str(num_mc) + '][tempo_previsto_lavorazione]'])
                                            prodotto.append(campo)
                                            break

                            num_mc += 1

                ordine.append(prodotto)

    num_pr += 1

print(ordine)

相关问题 更多 >

    热门问题