写在前面

先吐槽两句,搞个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女友,怎么心情也会很快好起来的,可能有人会说,你是不是因为喜欢看美女?

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

有人会说,我不信,你让她自己说呀,来,安排!

安排,直接上效果:

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

  1. 大白话说Java泛型(一):入门、原理、使用

    文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java泛型(一):入门.原理.使用> 远在 JDK 1.4 版本的时候,那时候是没有泛型的概念的.当时 Java 程序员们写集合类的 ...

  2. 大白话说Java泛型(二):深入理解通配符

    文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java泛型(二):深入理解通配符> 上篇文章<大白话说Java泛型(一):入门.原理.使用>,我们讲了泛型的产生缘由以及 ...

  3. 大白话说Java反射:入门、使用、原理

    文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java反射:入门.进阶.原理> 反射之中包含了一个「反」字,所以想要解释反射就必须先从「正」开始解释. 一般情况下,我们使用某个类时 ...

  4. 大白话说Java泛型:入门、使用、原理

    文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java泛型:入门.使用.原理> 远在 JDK 1.4 版本的时候,那时候是没有泛型的概念的.当时 Java 程序员们写集合类的代码都 ...

  5. 大白话说Java反射:入门、使用、原理 (转)

    文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java反射:入门.进阶.原理> 目录 一个简单的例子 反射常用API 获取反射中的Class对象 通过反射创建类对象 通过反射获取类 ...

  6. 25.大白话说java并发工具类-CountDownLatch,CyclicBarrier,Semaphore,Exchanger

    1. 倒计时器CountDownLatch 在多线程协作完成业务功能时,有时候需要等待其他多个线程完成任务之后,主线程才能继续往下执行业务功能,在这种的业务场景下,通常可以使用Thread类的join ...

  7. 大白话说GIT常用操作,常用指令git操作大全

    列一下在开发中用的比较多的git指令 git clone https://github.com/chineseLiao/Small-career // 克隆远程仓库到本地 git add . // 把 ...

  8. 520表白小程序设计Python代码详解(PyQt5界面,B站动漫风)

    摘要:介绍一个动漫风的表白小程序,界面使用Python以及PyQt实现,界面样式经过多次美化调整,使得整体清新美观.本文详细介绍代码设计和实现过程,不仅是居家表白必备,而且适合新入门的朋友学习界面设计 ...

  9. 全网最详细中英文ChatGPT-GPT-4示例文档-官网推荐的48种最佳应用场景——从0到1快速入门AI智能问答应用场景(附python/node.js/curl命令源代码,小白也能学)

    目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node.js接口请求示 ...

  10. 话说python

    前几年就职于一个大的软件公司时,开发过程中,有一个流程化的步骤要做,就是要由一个excel文档导出生成一堆sql语句.当时使用一个高手写的代码,只不过有限几行代码(应该不到100行),就完美实现此功能 ...

随机推荐

  1. javascript事件循环机制及面试题详解

    javascript是单线程执行的程序,也就是它只有一条主线,所有的程序都是逐行"排队"执行,在这种情况下可能存在一些问题,比如说setTimeout.ajax等待执行的时间较长, ...

  2. 基于weave实现docker跨主机网络通信

    前言 IP: 192.168.0.10 192.168.0.11 系统版本:centos 7 weave版本:2.8.1,下载地址:https://git.io/weave docker版本:18.0 ...

  3. manacher(马拉车)算法C++详解

    马拉车的定义 马拉车本质是对中心扩展法(暴力算法)的优化. 马拉车是干什么的 Manacher算法帮助我们在给定的字符串中找到最长的回文子串. 为了简单起见,我们先只处理有奇数个字符的字符串,关于偶数 ...

  4. Go 语言中排序的 3 种方法

    原文链接: Go 语言中排序的 3 种方法 在写代码过程中,排序是经常会遇到的需求,本文会介绍三种常用的方法. 废话不多说,下面正文开始. 使用标准库 根据场景直接使用标准库中的方法,比如: sort ...

  5. Avalonia 实现聊天消息渲染、图文混排(支持Windows、Linux、信创国产OS)

       在实现即时通讯软件或聊天软件时,渲染文字表情.图文混排是一项非常繁琐的工作,再加上还要支持GIF动图.引用消息.撤回消息.名片等不同样式的消息渲染时,就更加麻烦了. 好在我们可以使用 ESFra ...

  6. 三维模型OSGB格式轻量化压缩点云处理技术探讨

    三维模型OSGB格式轻量化压缩点云处理技术探讨 点云是一种常用的三维模型表示方法,由于其具有高精度.高保真度.易处理等优点,因此在很多领域都得到了广泛应用.但是,点云数据的存储量通常比较大,为了使点云 ...

  7. ZooKeeper核心概念和架构

    ZooKeeper简介 ZooKeeper是一个分布式应用程序协调服务,主要用于解决分布式集群中应用系统的一致性问题.它能提供类似文件系统的目录节点树方式的数据存储,主要用途是维护和监控所存数据的状态 ...

  8. dedebiz数据重置

    TRUNCATE biz_addonarticle;TRUNCATE biz_addonimages;TRUNCATE biz_addoninfos;TRUNCATE biz_addonshop;TR ...

  9. 「joisc 2019 - d2t2」ふたつの料理 Two Dishes

    [link.](E - ふたつの料理 (Two Dishes) (atcoder.jp) 我要放假 神仙题. 首先可以把两根轴拉成平面(which is a common trick),把决策的过程看 ...

  10. 算法打卡|Day5 哈希表part01

    哈希表 part01 今日任务 ● 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数 ● 1. 两数之和 目录 哈希表 part01 链表理论基础 Pr ...