jQuery是辅助JavaScript开发的库,最基本的几个选择器:1.元素选择器、2.id选额器、3.class选择器、4.群组选择器、5.*选择器;
我们通过选择器可以对选择的元素进行特定的设置
在前端用jquery为特定 id 的元素添加点击触发事件,通过触发而执行任务功能事件,如发送数组、字符串等。
若需要详细了解jQuery,到这里学习一下吧!http://www.lvyestudy.com/jquery/jq_list.aspx
1.main.py
from flask import Flask,render_template,request
app = Flask(__name__) #参数是应用模块或者包的名称。若使用一个单一模块(本例),则用__name__
#该参数是必需的,Flask才知道在哪找到模板和静态文件等东西
@app.route('/index/content') # 访问的地址,负责指向路由的路径
def content(): # 指定的路由名称
hdy = "hdy"
list = ["真帅","好酷","有才华"]
return render_template('content.html',HDY=hdy,list=list) #自动寻找replace.html里面的键值对HDY替换成hdy
@app.route('/index')
def index():
return render_template('index.html') #会自动找templates文件夹里面的index.html
if __name__=="__main__": #程序入口
app.run(host='127.0.0.1',port=8080) # 0.0.0.0地址可给本机所有的IP地址访问(按ctrl+左击进入run函数修改)
2.index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h>WOW WOW WOW !</h>
<h1>你变成了<a href="{{url_for('content')}}">动感超人</a> </h1>
</body>
</html>
3.运行 flask ,在浏览器输入: http://127.0.0.1:8080/index,可以得到下面的页面
4.当我们点击有颜色的下划线字 “动感超人” 这个超链接,即可以跳转到如下这个网页
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h>WOW WOW WOW !</h>
<h1>你变成了<a href="{{url_for('content')}}">动感超人</a> </h1>
</body>
<!--javascript,下面两种方式任意选一种,也可以两个都选上-->
<!-- 方式1 -->
<script type="text/javascript" src="../static/js/jquery-3.5.1.js"></script>
<!-- 方式2:引用微软地址 -->
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.5.1.min.js"></script>
</html>
@app.route('/index/response_01',methods=['GET'])
def response_01():
# 设定下面这种格式接收数据,避免数据
state = -1
# state用来辅助判断后台是否准确收到了前台的数据
signal = -1
string = ''
#使用try结构,更加安全
try:
signal = int(request.args.get('num',0)) # 接收整型数据,由于接受的数据格式仍是json即字符串,所以还需要作类型转换
string = request.args.get('man','') #接受字符串数据
print(signal)
print(string)
state += 1
except:
pass
return simplejson.dumps({
'state':state,
'reply_signal':signal+1,
'reply_string':string + 'i do!'
})
main.py完整代码:
from flask import Flask,render_template,request,url_for,redirect,make_response
import simplejson
app = Flask(__name__) #参数是应用模块或者包的名称。若使用一个单一模块(本例),则用__name__
#该参数是必需的,Flask才知道在哪找到模板和静态文件等东西
@app.route('/index/content') # 访问的地址,负责指向路由的路径
def content(): # 指定的路由名称
hdy = "hdy"
list = ["真帅","好酷","有才华"]
return render_template('content.html',HDY=hdy,list=list) #自动寻找replace.html里面的键值对HDY替换成hdy
@app.route('/index')
def index():
return render_template('index.html') #会自动找templates文件夹里面的index.html
@app.route('/index/response_01',methods=['GET'])
def response_01():
# 设定下面这种格式接收数据,避免数据
state = -1
# state用来辅助判断后台是否准确收到了前台的数据
signal = -1
string = ''
#使用try结构,更加安全
try:
signal = int(request.args.get('num',0)) # 接收整型数据,由于接受的数据格式仍是json即字符串,所以还需要作类型转换
string = request.args.get('man','') #接受字符串数据
print(signal)
print(string)
state += 1
except:
pass
return simplejson.dumps({
'state':state,
'reply_signal':signal+1,
'reply_string':string + 'i do!'
})
if __name__=="__main__": #程序入口
app.run(host='127.0.0.1',port=8080) # 0.0.0.0地址可给本机所有的IP地址访问(按ctrl+左击进入run函数修改)
<!--新添加一个按钮,设置 id 为 btn,等下我们要通过 id 访问它!-->
<input type="button" value="点击开关1" id="btn1" >
part2:新增的按钮的触发事件
<!-- javaScript 一下方式任意选择一个,也可以两个均选择-->
<!-- 方式1: 直接用本地文件jquery-3.5.1.js-->
<script type="text/javascript" src="../static/js/jquery-3.5.1.js"></script>
<!-- 方式2:引用微软jquery压缩版地址 -->
<script type="text/javascript" src="ttpsh://ajax.aspnetcdn.com/ajax/jquery/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
<!--用jquery为绑定特定 id 的事件添加点击触发事件-->
$('#btn1').on("click",function () {
var data = {
'num': 6,
'man': 'hdy handsome boy'
}; //定义要发送的数据,这是键值对的方式,分别为整型、字符串
$.ajax({
type:'GET', //数据的传输方式get请求方式
url: '/../index/response_01', //去到指定的路由
data:data, //要发送的数据,会被转化为查询字符串跟在url后面:/index/response_01/?num=6&man=hdy&handsome&boy
dataType:'json', //数据的发送json格式
success:function (data) { //分别对应当数据提交并获取.success函数有一个参数data,用来表示从后台接收到的封装好的数据。
if(data.state>=0) { //# 这里的data就是json格式的数据
// 对比下面后台返回的数据格式,很容易发现规律
console.log(data.reply_signal);
console.log(data.reply_string);
}
},
error:function () {
console.log("failure!");
}
});
})
</script>
part3:index.html的完整代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h>WOW WOW WOW !</h>
<!--超链接到路由content中-->
<h1>你变成了<a href="{{url_for('content')}}">动感超人</a> </h1>
<!--新添加一个按钮,设置 id 为 btn,等下我们要通过 id 访问它!-->
<input type="button" value="点击开关1" id="btn1" >
</body>
<!-- javaScript 一下方式任意选择一个,也可以两个均选择-->
<!-- 方式1: 直接用本地文件jquery-3.5.1.js-->
<script type="text/javascript" src="../static/js/jquery-3.5.1.js"></script>
<!-- 方式2:引用微软jquery压缩版地址 -->
<script type="text/javascript" src="ttpsh://ajax.aspnetcdn.com/ajax/jquery/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
<!--用jquery为绑定特定 id 的事件添加点击触发事件-->
$('#btn1').on("click",function () {
var data = {
'num': 6,
'man': 'hdy handsome boy'
}; //定义要发送的数据,这是键值对的方式,分别为整型、字符串
$.ajax({
type:'GET', //数据的传输方式get请求方式
url: '/../index/response_01', //去到指定的路由
data:data, //要发送的数据,会被转化为查询字符串跟在url后面:/index/response_01/?num=6&man=hdy&handsome&boy
dataType:'json', //数据的发送json格式
success:function (data) { //分别对应当数据提交并获取.success函数有一个参数data,用来表示从后台接收到的封装好的数据。
if(data.state>=0) { //# 这里的data就是json格式的数据
// 对比下面后台返回的数据格式,很容易发现规律
console.log(data.reply_signal);
console.log(data.reply_string);
}
},
error:function () {
console.log("failure!");
}
});
})
</script>
</html>
3.点击运行。我在index.html页面中,点击按钮:按钮开关即可以触发按钮,触发前端给后端发送数据的事件,在调试窗口会打印如下信息:
整型:6、字符串:hdy handsome boy。
如下图所示:
@app.route('/index/response_02',methods=['post'])
def response_02():
state = -1
txt = ''
try:
txt = request.form['txt'] # 获取表单上名字为 txt 的主键值(为字符串)
print(txt)
state += 1
print(state)
except:
pass
return redirect(url_for('index'))
from flask import Flask,render_template,request,url_for,redirect,make_response
import simplejson
app = Flask(__name__) #参数是应用模块或者包的名称。若使用一个单一模块(本例),则用__name__
#该参数是必需的,Flask才知道在哪找到模板和静态文件等东西
@app.route('/index/content') # 访问的地址,负责指向路由的路径
def content(): # 指定的路由名称
hdy = "hdy"
list = ["真帅","好酷","有才华"]
return render_template('content.html',HDY=hdy,list=list) #自动寻找replace.html里面的键值对HDY替换成hdy
@app.route('/index')
def index():
return render_template('index.html') #会自动找templates文件夹里面的index.html
@app.route('/index/response_01',methods=['GET'])
def response_01():
# 设定下面这种格式接收数据,避免数据
state = -1
# state用来辅助判断后台是否准确收到了前台的数据
signal = -1
string = ''
#使用try结构,更加安全
try:
signal = int(request.args.get('num',0)) # 接收整型数据,由于接受的数据格式仍是json即字符串,所以还需要作类型转换
string = request.args.get('man','') #接受字符串数据
print(signal)
print(string)
state += 1
except:
pass
return simplejson.dumps({
'state':state,
'reply_signal':signal+1,
'reply_string':string + 'i do!'
})
@app.route('/index/response_02',methods=['post'])
def response_02():
state = -1
txt = ''
try:
txt = request.form['txt'] # 获取表单上名字为 txt 的主键值(为字符串)
print(txt)
state += 1
print(state)
except:
pass
return redirect(url_for('index'))
if __name__=="__main__": #程序入口
app.run(host='127.0.0.1',port=8080) # 0.0.0.0地址可给本机所有的IP地址访问(按ctrl+左击进入run函数修改)
<form action="/index/response_02" method="post" enctype="multipart/form-data">
<input type="text" name="txt" id="">
<input type="submit" value="提交数据">
<!--这里的action指定了表单里数据要提交到的目的路由。
当点击submit按钮时,表单里的所有值input的会被提交;
其中,在后台我们会通过 name 去识别来自表单里的哪一个input的值!这一点很重要!-->
</form>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h>WOW WOW WOW !</h>
<!--超链接到路由content中-->
<h1>你变成了<a href="{{url_for('content')}}">动感超人</a> </h1>
<!--新添加一个按钮,设置 id 为 btn,等下我们要通过 id 访问它!-->
<input type="button" value="点击开关1" id="btn1" >
<form action="/index/response_02" method="post" enctype="multipart/form-data">
<input type="text" name="txt" id="">
<input type="submit" value="提交数据">
<!--这里的action指定了表单里数据要提交到的目的路由。
当点击submit按钮时,表单里的所有值input的会被提交;
其中,在后台我们会通过 name 去识别来自表单里的哪一个input的值!这一点很重要!-->
</form>
</body>
<!-- javaScript 一下方式任意选择一个,也可以两个均选择-->
<!-- 方式1: 直接用本地文件jquery-3.5.1.js-->
<script type="text/javascript" src="../static/js/jquery-3.5.1.js"></script>
<!-- 方式2:引用微软jquery压缩版地址 -->
<script type="text/javascript" src="ttpsh://ajax.aspnetcdn.com/ajax/jquery/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
<!--用jquery为绑定特定 id 的事件添加点击触发事件-->
$('#btn1').on("click",function () {
var data = {
'num': 6,
'man': 'hdy handsome boy'
}; //定义要发送的数据,这是键值对的方式,分别为整型、字符串
$.ajax({
type:'GET', //数据的传输方式get请求方式
url: '/../index/response_01', //去到指定的路由
data:data, //要发送的数据,会被转化为查询字符串跟在url后面:/index/response_01/?num=6&man=hdy&handsome&boy
dataType:'json', //数据的发送json格式
success:function (data) { //分别对应当数据提交并获取.success函数有一个参数data,用来表示从后台接收到的封装好的数据。
if(data.state>=0) { //# 这里的data就是json格式的数据
// 对比下面后台返回的数据格式,很容易发现规律
console.log(data.reply_signal);
console.log(data.reply_string);
}
},
error:function () {
console.log("failure!");
}
});
})
</script>
</html>
最好,感谢这位博主,这边博文引用了他的内容:萧班