首页 > 编程语言 >基于flask框架的python作为微信小程序后端的实现方法(个人版)

基于flask框架的python作为微信小程序后端的实现方法(个人版)

时间:2024-01-19 22:56:54浏览次数:40  
标签:console 函数 form 个人版 flask 微信 request res

Flask基础语法

  1. 引入Flask类
    from flask import Flask
  2. 创建一个app,也就是Flask类的一个对象
    app = Flask(__name__)
  3. 接下来写每个路径对应的函数
@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>

这段代码执行的结果,是渲染一个按钮,效果如下
image
点击这个按钮,会访问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>

image
对应的结果是这么个输入框和按钮,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

相关文章

  • 2024年最新的Python操控微信教程
    自从微信禁止网页版登陆之后,itchat库实现的功能也就都不能用了,那现在Python还能操作微信吗?答案是:可以!在Github上有一个项目叫《WeChatPYAPI》可以使用Python对微信进行操控。简单来说,它是通过逆向PC端微信来实现对微信的操控,使用Python封装后调用更加简单!Github地址:https:/......
  • 微信小程序自定义顶部tap栏
    第一步:隐藏原生导航栏效果                        (默认效果)json中配置: "window": {   "navigationStyle": "custom"  } (成功去除顶部tab栏,只留下了胶囊,但轮播图直接与顶部图标融在一起了)第二步:适应各种手机......
  • 公司数百名项目经理如何交流,微信群不管用,可以尝试这个方法
    我们公司有两百多位项目经理,分散在全国各地。 虽然我们有个”项目经理群“,但分享互动效果很差。最热闹的场景还是金主们发红包的时候。 这可能与群的性质有关,工作和灌水之间的界限较模糊,大家发消息时,总有点儿顾及。 项目经理之间的沟通和经验分享是主动学习的一种较好方......
  • 在生产环境中使用uWSGI来运行Flask应用
    安装uwsgipipinstalluwsgi-ihttps://pypi.tuna.tsinghua.edu.cn/simple安装不上则使用以下命令:condainstall-cconda-forgeuwsgi当您成功安装uwsgi后,您可以通过以下步骤来测试uwsgi是否安装成功:创建一个Python脚本,例如app.py,其中包含以下内容:defapplication(env,start_res......
  • 使用Python监听并下载微信聊天表情包
    实现的功能只要有人给你发了表情包,不管是群聊还是个人发的,都将它保存到本地。也许某天斗图的时候就能用到,不过即使有了表情包,还需要一个检索功能,不然这一张一张看也太费眼睛了。检索表情包检索表情包的功能实现比较麻烦,至少需要两个模型:ocr和图片描述生成,如果更复杂点的话还需......
  • Flask企业级后台管理 Python 应用开发框架
    项目介绍一款Python语言基于Flask、Layui、MySQL等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁......
  • 【uniapp】CSS样式穿透(vue3 setup 微信小程序)
     如果想要在编译为微信小程序时使用样式穿透,光使用`::v-deep`没效果,查了文档发现需要设置`options:{styleIsolation:"shared"}`,但是此时我用的setup语法很离谱,查阅不到相关内容,尝试多次最后的解决方法如图所示,增加一个script标签设置即可。这样就能生效了。......
  • 2024年首次更新!微信iOS 8.0.46发布:手机空间清理更方便、看广告免费听VIP音乐
    从微信官网获悉,日前,微信iOS版发布8.0.46正式版更新,这是iOS版2024年的首次更新。更新日志还是熟悉的那几个字:“修复了一些已知问题。”根据实测,微信在8.0.46版本中新增了一项比较实用的功能。具体来看,微信iOS8.0.46版将原本不可删除的“其他数据”拆分,新增“资源文件和其他账......
  • Flask的简单学习
    简介Flask是一个非常小的PythonWeb框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用。flask的安装pipinstallflask创建一个flask项目目录结构如下app.py主文件,所......
  • 微信小程序设置默认启动页
    一、第一种entryPagePath指定小程序的默认启动路径(首页),常见情景是从微信聊天列表页下拉启动、小程序列表启动等。如果不填,将默认为 pages 列表的第一项。不支持带页面路径参数。在app.json页面设置{"entryPagePath":"pages/index/index"}二、第二种 pages 列表的......