有什么方法可以使用 jinja2 和 flask 形式代替 ajax 和 jquery 或两者?
Any way to use jinja2 and flask form instead of ajax and jquery or both?
我想知道是否有更好的方法来做到这一点。
现在我有 jquery 解析和 selecting 每行的活动 div 并通过 ajax 烧瓶路由发送。我想知道是否有办法通过带有表单的 jinja2 做同样的事情。
这是工作示例。 'slick-active' div 取决于用户滑过的内容 select。
<row>
<div class="text-center">
<div class="slider single-item">
{% for item in row1 %}
<div><h3>{{ item }}</h3></div>
{% endfor %}
</div>
</div>
</row>
<row>
<div class="text-center">
<div class="slider single-item">
{% for item in row2 %}
<div><h3>{{ item }}</h3></div>
{% endfor %}
</div>
</div>
</row>
$(document).ready(function(){
$('.your-class').slick();
});
$('.single-item').slick({
arrows: true
});
$('#submit').on('click', function(e){
e.preventDefault(); // preventing default click action
var data = {results: $('div.slick-active').text()};
$.ajax({
url: '/testing',
contentType: 'application/json',
type: 'post',
dataType : 'text',
data: JSON.stringify(data),
success: function (data) {
console.log(data);
window.location = data;
// ajax success callback
}, error: function (response) {
alert('ajax failed');
// ajax error callback
},
});
});
这是 python 烧瓶
@app.route('/', methods=['post','get'])
def index():
return render_template('index.html', row1=row1, row2=row2)
@app.route('/testing', methods=['GET', 'POST'])
def testing():
r = request.get_json()
return r['results']
不,没有。 Jinja 是静态的,在客户端与其交互之前呈现服务器端。 JavaScript 是动态和客户端。
我想知道是否有更好的方法来做到这一点。
现在我有 jquery 解析和 selecting 每行的活动 div 并通过 ajax 烧瓶路由发送。我想知道是否有办法通过带有表单的 jinja2 做同样的事情。
这是工作示例。 'slick-active' div 取决于用户滑过的内容 select。
<row>
<div class="text-center">
<div class="slider single-item">
{% for item in row1 %}
<div><h3>{{ item }}</h3></div>
{% endfor %}
</div>
</div>
</row>
<row>
<div class="text-center">
<div class="slider single-item">
{% for item in row2 %}
<div><h3>{{ item }}</h3></div>
{% endfor %}
</div>
</div>
</row>
$(document).ready(function(){
$('.your-class').slick();
});
$('.single-item').slick({
arrows: true
});
$('#submit').on('click', function(e){
e.preventDefault(); // preventing default click action
var data = {results: $('div.slick-active').text()};
$.ajax({
url: '/testing',
contentType: 'application/json',
type: 'post',
dataType : 'text',
data: JSON.stringify(data),
success: function (data) {
console.log(data);
window.location = data;
// ajax success callback
}, error: function (response) {
alert('ajax failed');
// ajax error callback
},
});
});
这是 python 烧瓶
@app.route('/', methods=['post','get'])
def index():
return render_template('index.html', row1=row1, row2=row2)
@app.route('/testing', methods=['GET', 'POST'])
def testing():
r = request.get_json()
return r['results']
不,没有。 Jinja 是静态的,在客户端与其交互之前呈现服务器端。 JavaScript 是动态和客户端。