使用Flask在html元素中显示txt文件中的数据

时间:2018-08-21 13:56:53

标签: python html list file flask

我目前有一个文本文件,该文本文件在文本文件“ incorrect_answers.txt” 中提交表单后,记录了“ {level number},{name},{answer}”,如下所示:< / p>

1, bob, answerone
1, nicky, answertwo
1, laura, answerthree

使用Python和Flask,我的目的是将数据显示在HTML页面上的表格中,如下所示:

| Level | Name  | Answer      |
|   1   | bob   | answerone   |
|   2   | nicky | answertwo   |
|   3   | laura | answerthree |

此刻,我正在通过以下函数调用文本文件中的数据:

def get_incorrect_answers():

    with open("data/incorrect_answers.txt", "r") as file:
        incorrect_answers = file.readlines()

    return incorrect_answers

此功能的结果当然是:

['1, bob, answerone\n', '1, nicky, answertwo\n', '1, laura, answerthree\n']

请问有人可以解释处理此输出的最佳方法,以便使我得到一个以HTML格式显示的表格,类似于上面显示的内容吗?

我无法访问列表中字符串中的值

2 个答案:

答案 0 :(得分:0)

由于文本文件具有逗号分隔的值,请尝试

var obj1 = { 'a': 0, 's': 0 };
var obj2 = { 'a': 0, 's': 1 };
var newObj = {};
for (var x in obj1) {
    if (obj2[x] && obj2[x] == obj1[x]) {
        newObj[x] = obj1[x];
    }
    else if (obj2[x] && obj2[x] !== obj1[x]){
        newObj[x] = 1;
    }
}

答案 1 :(得分:0)

将数据传递到模板渲染器,然后通过循环在模板中渲染它,说这是名为mytable.html的模板

<table>
<thead>
  <tr>
      {% for subfield in column_names %}
        <th>{{ subfield }}</th>
      {% endfor %}
  </tr>
  {% for item in incorrect_answers %}
<tr>
    {% for subitem in item %}
     <td> {{ subitem }}</td>
</tr>
</thead>

然后用类似的东西渲染它

@app.route('/incorrect_answers')
def get_incorrect_answers():

    with open("data/incorrect_answers.txt", "r") as file:
        incorrect_answers = file.readlines()

    return render_template('mytable.html', column_names=['Level', 'Name', 'Answer'], 
                           incorrect_answers=incorrect_answers)

转到http://localhost:port/incorrect_answers时,您会看到模板出现。