Flask基础语法
- 引入Flask类
from flask import Flask
- 创建一个app,也就是Flask类的一个对象
app = Flask(__name__)
- 接下来写每个路径对应的函数
如
@app.route('/')
def test()# 这里函数可以任意命名,这个函数会在访问括号里路径的时候被调用
return "helloworld"
这三行代码可以实现当访问 http://127.0.0.1:5000 (也就是本机地址的5000端口)时,显示helloworld
实现微信小程序获取后端数据——wx.request方法
这里是微信官方对request方法给的样例
wx.request({
url: 'example.php', //仅为示例,并非真实的接口地址
data: {
x: '',
y: ''
},
header: {
'content-type': 'application/json' // 默认值
},
success (res) {
console.log(res.data)
}
})
我们只需要在这个框架上修修补补就可以了
如果想要获取后端的数据,我们只需要写一个函数,里面包含我们喜欢的wx.request方法,url里写我们自己的地址(如example.php),接着调用这个函数,就可以获取到flask里对应地址映射的函数的返回值,如果按上面helloworld的例子的话,就是helloworld
一个实操案例
我们随便找一个wxml文件,写下这样一段代码
<view>
<button bind:tap="get_data">测试按钮</button>
</view>
这段代码执行的结果,是渲染一个按钮,效果如下
点击这个按钮,会访问bind:tap的函数,也就是getdata,它的名字叫事件处理函数
下面写getdata函数
get_data()
{
wx.request({
url: 'http://127.0.0.1:5000/test',
success (res) {
console.log('请求成功', res.data)
},
fail(res)
{
console.log('请求失败', res)
}
})
},
- 这里success那块的意思是如果请求成功,则输出‘请求成功’,然后输出获取到的数据,
- fail的意思是如果请求失败,则输出‘请求失败’,然后输出res对象
接下来写后端的对应内容
@app.route('/test')
def index():
return "helloworld"
这样简单写个函数就行,最终的效果是点击测试按钮,控制台输出‘请求成功 helloworld’
实现后端获取微信小程序表单的数据——flask里的request对象
因为要键入数据,前端要换个方式写了,就写一个最简单的表单吧
<form bindsubmit="formA">
<input type="text" placeholder="请输入内容" name="atest"/>
<button type="primary" formType="submit">确定</button>
</form>
对应的结果是这么个输入框和按钮,name的作用是把输入的内容在事件对象里存储为一个名为atest的数据
不过这个按钮有玄机,按下它就会执行formA函数
formA函数这样写
formA(e)
{
console.log(e)
wx.request({
url: 'http://127.0.0.1:5000/form',
method:'POST',
header:
{
'content-type': 'application/x-www-form-urlencoded'
},
data:
{
"atest": e.detail.value.atest,
},
success (res) {
console.log('请求成功', res.data)
},
fail(res)
{
console.log('请求失败', res)
}
})
}
这里的e是一个对象,它叫事件对象,具体我也不懂,反正大概意思就是把这个form事件的各类信息都存下来了
注意,这里的header里面的content-type要写成'application/x-www-form-urlencoded',这样才能传输文本,不然传输的是一个json对象
因为是向后端传东西,所以method要用POST
通过request方法获取前端数据
request是一个对象,首先要从引入
from flask import request
接下来用flask.form.get()方法
括号里面写上要获取的数据名字,比如这里就写flask.form.get('atest')
完整代码如下
@app.route('/form', methods = ['POST', 'GET'])
def getform():
str1 = request.form.get("atest")
print(str1)
return "form_gotten"
str1里存储的就是从表单里获取的字符数据
标签:console,函数,form,个人版,flask,微信,request,res From: https://www.cnblogs.com/fruition111/p/17975763