繁体   English   中英

类型错误:render_template() 采用 1 个位置参数,但给出了 2 个

[英]TypeError: render_template() takes 1 positional argument but 2 were given

我正在尝试使用 Jinja 将模板添加到我的代码中,但它向我发送了错误。 这个程序所做的是实时绘制图形,我想用 CSS 添加一些设计。

这是代码:

import dash
from dash.dependencies import Output, Input
import dash_core_components as dcc
import dash_html_components as html
import plotly
import random
import plotly.graph_objs as go
from collections import deque
from flask import Flask, render_template
from flask import request, jsonify

X = deque(maxlen=20)
Y = deque(maxlen=20)
X.append(1)
Y.append(1)

app = dash.Dash(__name__)
app.layout = html.Div(
    [
        dcc.Graph(id='live-update-graph', animate=True),
        dcc.Interval(
            id='interval-component',
            interval=3000,
            n_intervals=0
            )
        ]
    )

@app.callback(Output('live-update-graph', 'figure'),
        [Input('interval-component', 'n_intervals')])
def update_graph(n):
    X.append(X[-1]+1)
    Y.append(Y[-1]+(Y[-1]*random.uniform(-0.1,0.1)))

data = go.Scatter(
    x = list(X),
    y = list(Y),
    name = 'Scatter',
    mode = 'lines+markers'
    )

return render_template('template.html', {'data':[data], 'layout': go.Layout(xaxis = dict(range=[min(X), max(X)]),
                                           yaxis = dict(range=[min(Y), max(Y)]))})

if __name__ == '__main__':
    app.run_server(debug=True)

谢谢你。 问候。

render_template()只接受一个参数,它应该是一个 HTML 文件的名称作为字符串。

阅读这个和从那个文档

flask.render_template(template_name_or_list, **context)

使用给定的上下文呈现模板文件夹中的模板。

参数:

template_name_or_list – 要呈现的模板的名称,或带有模板名称的可迭代对象,第一个存在的模板将被呈现

上下文– 模板上下文中应该可用的变量。

上下文是关键字参数,用于传递到 HTML 中的 Jinja2 模板。 您将所有关键参数作为字典放置。 在 Flask 中不接受上下文。

return render_template('template.html', data=[data], layout=go.Layout(xaxis = dict(range=[min(X), max(X)]), yaxis = dict(range=[min(Y), max(Y)]))) 

关键字 args 中的键不应作为字符串给出。 它应该是数据和布局。 不是“数据”和“布局”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM