jinja2ajax,jquery – AJAX和Jinja2

您需要访问服务器端的请求对象以获取参数.我假设您正在使用Flask,但如果没有,基本思想在其他Web框架上应该是相同的.假设您有一个简单的小index.html,您可以使用Javascript来进行Ajax查询:

$.get("{{ url_for('ajax') }}",{name: "John",time: "2pm"});

请注意,如果您没有使用Jinja2来呈现脚本部分,请将url_for() – 调用替换为实际的URL,所以我的示例中的/ ajax更像下面的内容:

$.get("/ajax",time: "2pm"});

现在,在服务器端你会有这样的事情:

from flask import Flask,render_template,request

app = Flask(__name__)

@app.route('/ajax')

def ajax():

#Access arguments via request.args

name = request.args.get('name')

time = request.args.get('time')

#NOTE: In real code,check that the arguments exist

#Silly logging call to show that arguments are there

app.logger.info(name)

app.logger.info(time)

#Do stuff here to do what you want or modify name/time

...

#Render template and pass the arguments to it

return render_template('ajax.html',name=name,time=time)

@app.route('/index')

def index():

return render_template('index.html')

if __name__ == '__main__':

app.run(debug=True)

和ajax.html看起来像这样的例子:

所以request.args是你可以访问你用GET传递的参数的地方,但你需要使用render_template()调用将它们显式传递给Jinja2. Jinja2只是一种模板化的语言,它不知道你的论点(1),除非你把它们传递给它.

1)除了一些例外.例如,Flask会像请求对象一样隐式地向Jinja2传递一些参数.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值