Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 访问单个列表值的更好解决方案_Python_Flask - Fatal编程技术网

Python 访问单个列表值的更好解决方案

Python 访问单个列表值的更好解决方案,python,flask,Python,Flask,我希望能够访问所有值​​在我的列表中(大约有70个值​​在列表中),以便我可以将它们放在我的网站上的任何位置。 但是,我发现我的解决方案看起来非常丑陋: 我的df: df= A B(m) C(cm) D(m) house 50 50 100 bedroom 80 50 600 bed 20

我希望能够访问所有值​​在我的列表中(大约有70个值​​在列表中),以便我可以将它们放在我的网站上的任何位置。 但是,我发现我的解决方案看起来非常丑陋:

我的df:

df=    
    A           B(m)         C(cm)      D(m)
    house        50           50        100
    bedroom      80           50        600
    bed          20           60        500 



   @app.route('/calculate', methods=['POST'])
def calculate():
    my_numbers = []
    my_column = []

    inpt = request.form['inpt']
    inpt2 = request.form['inpt2']
    output = False
     
    for text in df['A']:
        if text == inpt:
            give_text = df[df['A'] == inpt]
            give_text = give_text.drop(['A'], axis = 1)

    # Here we start to calculate with inpt2
    for column in give_text:
        column_edit = give_text[column]
        my_columns.append(column)
        column_edit = float(column_edit) * float(inpt2)
        
        if '(m)' in column:
            column_edit = column_edit + 'meter'
            my_numbers.append(column_edit)
        elif 'cm' in column:
            column_edit= column_edit + 'centimeter'
            my_numbers.append(column_edit)

    return render_template('calculate.html',my_numbers_0 = my_numbers[0], my_column_0 =
my_column[0], 
my_numbers_1 = my_numbers[1], my_column_1 = my_column[1], 
my_numbers_2 = my_numbers[2], my_column_2 = my_column[2], 
my_numbers_3 = my_numbers[3], my_column_3 = my_column[3], 
my_numbers_4 = my_numbers[4], my_column_4 = my_column[4], 
my_numbers_5 = my_numbers[5], my_column_5 = my_column[5], 
my_numbers_6 = my_numbers[6], my_column_6 = my_column[6], 
my_numbers_7 = my_numbers[7], my_column_7 = my_column[7], 
my_numbers_8 = my_numbers[8], my_column_8 = my_column[8], 
my_numbers_9 = my_numbers[9], my_column_9 = my_column[9], 
my_numbers_10 = my_numbers[10], my_column_10 = my_column[10], 
my_numbers_11 = my_numbers[11], my_column_11 = my_column[11], 
inpt=inpt)
在我的html中,它看起来像这样。。(我缩短了列表;这些不是全部值)

和html格式:

<p>{{ my_column[1] }}</p>
<p>{{ my_numbers[1] }}</p>
{{my_column[1]}

{{my_number[1]}


使用简单但功能强大的jinja2引擎,您可以轻松做到这一点。试试这样的

return render\u template('calculate.html',items=zip(我的\u列,我的\u编号)
然后在模板中

{%为列,项目数为%}
{{column}

{{number}

{%endfor%}

此外,在有意义的地方尽量使用复数,例如,
my_columns
而不是
my_column
,因为有多个列。

如何使用Jinja模板,例如
{%for i in mylist%}
循环根据列表的内容动态自动填充每个
标记?然后,只有列表会返回到HTML模板。类似于。
{my_column%}{i[10]}

{%endfor%}
如果我尝试此操作,那么“Hello”=>“H”“e”“l”“l”“o”并不是我想要达到的效果。在Jinja中,您可以这样做来迭代列表而不是字符串:
{%如果var是iterable而var不是string%}
。请为变量使用更有意义的名称,这将使代码更加清晰。此外,您发送的变量名称似乎不存在:my_numbers\u 0,my_column\u 0。inpt和inpt2之间的区别是什么?很难区分变量名称=存在大量错误。这段代码很难理解。我想但是当我尝试使用jinja时,会显示单个字母,但是如何获得html中的每个列,以便可以单独使用它呢?
{{column[10]}
{{column[12]}
不起作用单独显示是什么意思?是否要显示一个列表,然后再显示第10项和第12项?如果有呢
return render_template('calculate.html',my_numbers = my_numbers, my_column =
my_column)
<p>{{ my_column[1] }}</p>
<p>{{ my_numbers[1] }}</p>