【让AI女友跟我表白】大白话说Python+Flask入门(四)Flask Sijax的使用

写在前面

先吐槽两句,搞个mysql安装配置弄了4个小时,怎么都是外网无法访问,我靠,我特么也是服了。

当然,后来我投降了,明天再说,学什么不是学,娘的,换个方向,状态依然在!

Sijax是什么?

代表 Simple Ajax ,它是一个 Python / jQuery 库,使用 jQuery.ajax 来进行AJAX请求用的。

安装依赖

pip install flask-sijax

Sijax的使用

模板页面result.html,示例代码如下:

<html>
<head>
{#  调用百度的jQuery加速  #}
<script type="text/javascript" src="http://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>
</head>
<body>
{# 创建id为my_form的表单 #}
<form id="my_form">
    <p><input type="text" name="username" value="小强" /></p>
    <p><input type="password" name="password" value="123445" /></p>
</form>
{# 使用Sijax.getFormValues方法获取id为my_form的表单数据 #}
<script type="text/javascript">
    var values = Sijax.getFormValues('#my_form');
</script>
{# 使用带参数Sijax.request()方法传递values值 #}
<a href="javascript://" onclick="Sijax.request('queryUserInfo',values);">点击</a>
</body>
</html>

逻辑代码部分如下:

import os

import flask_sijax
from flask import Flask, g, render_template

# 这玩意真的不用自己创建,服务启动后,手动访问路径会自动生成
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 '这是首页的Index'


@flask_sijax.route(app, '/getUserInfo')
def sendRequest():
    def queryUserInfo(response): 
        response.alert('调用Sija执行查询操作!')

    if g.sijax.is_sijax_request: 
        g.sijax.register_callback('queryUserInfo', queryUserInfo)
        return g.sijax.process_request()  
    return render_template('result.html')  


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

知识点:

  • app.config['SIJAX_STATIC_PATH']: 要被镜像的Sijax javascript文件的静态路径。默认位置是static/js/sijax。在此文件夹中,保留sijax.jsjson2.js文件。
  • app.config['SIJAX_JSON_URI']:从中加载json2.js静态文件的URI
  • 使用@flask_sijax.route辅助装饰器来处理Sijax请求
  • g.sijax.is_sijax_request: 判断是否请求为sijax请求
  • g.sijax.register_callback():注册的所有函数都会公开,以便从浏览器进行调用。
  • g.sijax.process_request():会告诉Sijax执行适当的(先前注册的)函数并将响应返回给浏览器。

效果:

写在最后

搞的破环境搞了进半天,效率有点低了,但是我也不到为啥不行,各种招都试了,就是10060or10061,防火墙我真关了,真的被虐的好疼!

但也没什么,累了、心情不好看看AI女友,怎么心情也会很快好起来的,可能有人会说,你是不是因为喜欢看美女?

我承认呀,谁不爱看美女,你说是不是?

有人会说,我不信,你让她自己说呀,来,安排!
安排,直接上效果:

热门相关:宝贝轻轻:总裁的独家宠爱   全系灵师:魔帝嗜宠兽神妃   傲娇驾到,总裁别闹   甜妻动人,霸道总裁好情深   百炼成仙