在Flask中有一个比较复杂的端点,当前部署到服务器上:
@app.route('/whatever', methods=['GET', 'POST'])
def somefunct:
if request.method = 'POST':
<< do some stuff >>
<< do some other stuff >>
return render_template('sometemplate.html', **<<variable dict>>)
推到一个模板。在
sometemplate.html
有点棘手,它包含一个从变量字典中提取数据的表,还提供了一个允许用户与之交互的下拉列表:
然后我有一些javascript来触发右POST
操作(jQuery已加载):
$(document).ready(function() {
{% for item in << variable in dict >> %}
var form{{ item }} = $('category-form-{{ item }}');
form{{ item }}.find('#{{ item }}').change(function(){
$.ajax({
type: "POST",
url: form{{ item }}.attr('action'),
data: form{{ item }}.serialize(),
success: function(response){
console.log("calling {{item}}")
}
});
});
{% endfor %}
});
所有这些在开发环境中都能正常工作,但是当我推到我们的服务器时,javascript控制台中出现500
错误。我的怀疑是request
对象发生了一些奇怪的事情——我已经能够缩小范围,我得到了一个以前在尝试解析它时没有遇到的错误。在
作为故障排除的一部分,由于我运行的是Apache服务器,无法轻松访问输出,因此我认为最好按如下方式重做端点:
@app.route('/whatever', methods=['GET', 'POST'])
if request.method = 'POST':
<< do some stuff >>
variable = << variable to test >>
return render_template('test.html', **{"variable"=variable})
<< do some other stuff >>
return render_template('sometemplate.html', **<<variable dict>>)
建立测试.html只是为了:
{{ variable }}
(周围有正确的方块等)
但是,当我试图实现这个功能时,在从下拉列表中选择了一些内容之后,它不会重定向到test.html
,尽管我可以从javascript控制台和代码中创造性地使用return
语句看出它正在跟踪端点的正确部分。在
我的猜测是这与我的javascript设置方式有关,但基本上我希望能够重定向到test.html
,以便查看请求对象的外观以及它的格式错误的原因。在
在这种情况下,我如何进行重定向?在
当然,如果您对这段代码在运行localhost
时为什么不能在服务器上运行有任何想法,我也会全神贯注地听:)
目前没有回答
相关问题 更多 >
编程相关推荐