Flask Sijax

这篇博客介绍了如何在Python Flask应用中使用Sijax库进行Ajax交互。Sijax是一个简单易用的库,它基于jQuery,帮助开发者便捷地将Ajax功能整合进应用。示例代码展示了如何配置Flask-Sijax,创建路由以及处理Sijax请求,并在HTML模板中设置Sijax调用。通过点击事件,Sijax能够获取表单数据并发送Ajax请求,服务器端则响应并弹出提示信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 话不多说,直接上例子

  1. Sijax
# Sijax代表'Simple Ajax',它是一个Python/jQuery库,
# 旨在轻松地将Ajax引入到应用程序。它使用jQuery.ajax来发出AJAX请求。

import os

import flask_sijax
from flask import Flask, g, render_template
# 对象g挂载用户数据
from flask_sijax import sijax

path = os.path.join('.', os.path.dirname(__file__), 'static/js/sijax')
app = Flask(__name__)

app.config['SIJAX_STATIC_PATH'] = path
app.config['SIJAX_JSON_URI'] = '/static/js/sijax/json2.js'
flask_sijax.Sijax(app)


@app.route('/')
def index():
    return "Hello World!<br><a href='/hello'>Go to Sijax test</a>"


# 使View函数能够处理Sijax请求
# 使用@app.route('/url',methods = [\'GET\' ,\'POST\'])或使用@flask_sijax.route辅助装饰器
@flask_sijax.route(app, '/hello')
def hello():
    def say_hi(obj_response, arg):
        # 'obj_response'参数是函数回复浏览器的方式。
        obj_response.alert('Hi there!%s' % arg)

    # print(g.sijax.is_sijax_request)
    if g.sijax.is_sijax_request:
        # Sijax request detected - let Sijax handle it
        g.sijax.register_callback('say_hi', say_hi)
        return g.sijax.process_request()
    return render_template('sijaxexample.html')


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

  1. sijaxexample
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    {#  调用百度的jQuery加速  #}
    <script type="text/javascript" src="https://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    {#  安装Flask-sijax时默认安装的sijax.js #}
    <script type="text/javascript" src="/static/js/sijax/sijax.js"></script>
    {#  使用过滤器safe禁止转译sijax.get_js()值 #}
    <script type="text/javascript"> {{ g.sijax.get_js()|safe }} </script>
    <title>sijaxexample</title>
</head>
<body>
<form id="my_form">
    <input type="text" name="tbx1" value="textbox 1">
    <input type="text" name="tbx2" value="textbox 2">
    <input type="checkbox" name="cbx" value="checked">
</form>
<script type="text/javascript">
    let values=Sijax.getFormValues('#my_form')
</script>
    <a href="javascript://" onclick="Sijax.request('say_hi',[values]);">click</a>
</body>
</html>

2 结果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_JJW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值