Flask render_template返回一个字符串而不是HTML文档

时间:2019-03-03 22:37:45

标签: python html flask

我有这个功能:

def run():
  if request.method == 'POST':
    print(request.form['id_num'])
    # fix later                                                                                                                  
  else:
    return render_template("apprun.html")

现在,它始终直接指向else语句,但是render_template函数无法正常工作。而不是完全格式化的HTML页面,我得到的代码就像是一个字符串。具体来说,我的网页显示的是html,而不是阅读并正确显示html:

<!DOCTYPE html>
<html>
<head>
<title>Rips Lab</title>
</head>                                 
<body>
<style type="text/css">
            html {
                background-color: #E4E0EE;
                }
           body {
                font-family: "Helvetica","Arial";
                font-size: 20px;
                color: #000000;
                }
</style>


<form>Enter participant ID number: <input type="number" name="id_num" pattern="^[0-9]*$" required></form>
<br><br>

<p name="data"></p>


</body>
</html>

文件夹层次结构正确;我有一个名为“模板”的文件夹,与我正在运行的python文件存储在同一位置。

知道为什么格式不正确吗?

2 个答案:

答案 0 :(得分:0)

该错误是因为在某个时候,我已经在计算机的默认文本编辑器中打开了该文件,我猜它以某种方式损坏了它。我不确定为什么,因为我之前在其中打开.py文件没有问题。

我通过创建一个新文件并使用emacs对其进行编辑,然后重新键入(不是很大)来解决了该问题

答案 1 :(得分:0)

我在使用Flask-RESTPlus时遇到了这个问题。事实证明是因为我将路由定义为API的一部分,该路由将content-type标头设置为application/json而不是HTML。