赞
踩
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>
最好,感谢这位博主,这边博文引用了他的内容:萧班
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。