【让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.js
和json2.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
执行适当的(先前注册的)函数并将响应返回给浏览器。
效果:
写在最后
搞的破环境搞了进半天,效率有点低了,但是我也不到为啥不行,各种招都试了,就是10060
or10061
,防火墙我真关了,真的被虐的好疼!
但也没什么,累了、心情不好看看AI女友,怎么心情也会很快好起来的,可能有人会说,你是不是因为喜欢看美女?
我承认呀,谁不爱看美女,你说是不是?
有人会说,我不信,你让她自己说呀,来,安排!
安排,直接上效果:
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
欢迎关注我的微信公众号:软件测试君