在我的应用中,我在前端使用React,在后端使用Flask。
某些页面呈现静态内容,为此,我直接从后端使用Jinja2模板。
因此,在前端,我从Flask获取模板作为响应对象,并使用dangerouslysetHTML
注入模板,如下所示:
seeds.py
@seeds_bp.route('/seeds/<user_id>', methods=['GET', 'POST'])
def seeds(user_id):
user = User.query.filter_by(id=user_id).first()
template = render_template('seeds.html',items=items)
response_object = {
'status': 'success',
'data': [{"content": template}]
return jsonify(response_object), 200
并在获取数据后:
Seeds.jsx
render(){
const {userId} = this.props
var seeds_html = this.state.seeds_template;
var seeds_template = { __html: seeds_html };
return (
<div id="parent">
<h1 className="title is-1"><font color="#C86428">Seeds</font></h1>
<hr/><br/>
<div dangerouslySetInnerHTML={seeds_template}/>
</div>
);
}
}
发现是我渲染的html也具有重定向,也需要user_id ,我无法访问它,因此我无法将'user_id'状态传递给模板:
seeds.html
<form action="{{ url_for('menus.edit_menu', items=items, user_id=user_id) }}" method="post">
是否有现成的方法或任何其他自定义函数,因此我可以将此'user_id'状态传递给通过dangerouslysetHTML
呈现的模板?
答案 0 :(得分:0)
您可以使用table_name = 'table_name_1'
# database and mock_data are fixtures defined in conftest.py
def setup_module(database, mock_data):
database.insert_data(table_name, mock_json_data)
def test_1():
// some test
def teardown_module(database):
database.delete_data(table_name)
将变量注入模板,然后将其注入String.replace()
。像这样:
dangerouslySetInnerHTML
然后:
<form action="{{ url_for('menus.edit_menu', items=items, user_id=_user_id) }}" method="post">