Python 作为小程序后端的三种实现方法(推荐)
作者:somenzz 发布时间:2023-03-30 09:26:05
微信的小程序是一个很不错的体验,简单,上手快,这几天也在学习使用小程序,自己总结了三种用 Python 作为小程序后端的方式,供你参考。
方法一、微信的云托管
优点:不需要购买服务器,不需要域名备案,按使用量计费,DevOps 自动化,安全鉴权,适合没有运维经验的人。
缺点:费用这块,肯定是比自建服务器费用略高的。就像同一车型,自动挡的车比手动挡的车更贵一样。
所谓云托管,就是一个 Docker 容器,你只需要弄一个仓库,可以 github, gitlab, gitee 中的任意一个建立仓库,写好 Dockerfile,上传到云托管,云托管会自动构建容器镜像并运行,运行容器的方式都是可以自定义的。部署完成后,我们会得到一个默认域名地址,就是服务对外提供服务的入口,你可以将其按照正常的服务来调用访问,也可以绑定自己的域名。
小程序中,可以这样访问容器服务:
// 确认已经在 onLaunch 中调用过 wx.cloud.init 初始化环境(任意环境均可,可以填空)
const res = await wx.cloud.callContainer({
config: {
env: '填入云环境ID', // 微信云托管的环境ID
},
path: '/xxx', // 填入业务自定义路径和参数,根目录,就是 /
method: 'POST', // 按照自己的业务开发,选择对应的方法
header: {
'X-WX-SERVICE': 'xxx', // xxx中填入服务名称(微信云托管 - 服务管理 - 服务列表 - 服务名称),在上述实践中是 demo
}
// 其余参数同 wx.request
});
console.log(res);
有了容器,后端用什么编程语言都是可以的,就看自己擅长啥了, Python 绝对没问题,而且官方有 Django 模版,一键部署。
方法二、微信的云函数中转
优点:不需要域名备案,有一定的免费额度。
缺点:自己配置服务器
所谓云函数,就是运行在腾讯云端的 Node.js 函数,只有计算逻辑,可以无缝访问云数据库进行数据存取。
小程序端这样调用云函数:
wx.cloud.callFunction({
// 要调用的云函数名称
name: 'dailyexam',
// 传递给云函数的event参数
data: {
x: 1,
y: 2,
}
}).then(res => {
// output: res.result === 3
}).catch(err => {
// handle error
})
Node.js 函数其实就是异步的 javascript 函数,在云函数里面,我们可以请求自建服务器上的服务,这样域名就不需要备案了,比如下面的代码中,域名 somenzz.cn 是没有备案的。
云函数端这样调用自建 API 服务:
免费额度通常很少,数据库日读取次数不能超过 500,写次数不能超过 300。
因为自建服务,自然可以用 Python 开发。
方法三:自建服务器,备案域名
优点:省钱,访问量越大越省钱。
缺点:需要备案域名。
不使用云函数和云托管,那就只能在小程序端使用 wx.request 函数来请求自建服务:
wx.request({
url: 'example.php', //仅为示例,并非真实的接口地址
data: {
x: '',
y: ''
},
header: {
'content-type': 'application/json' // 默认值
},
success (res) {
console.log(res.data)
}
})
而 wx.request 函数有使用限制,如下:
通常你需要国内的服务器,然后备案域名,而备案,通常会劝退很大一部分开发者。
因为自建服务器,当然可以用 Python 开发啦。
最后的话
本文分享了三种 Python 作为小程序后端的实施方法,而域名备案是很慢的,介于此,我推荐前两种方法,感谢各位朋友支持。
参考资料
[1]
微信的云托管: https://cloud.weixin.qq.com/cloudrun?utm_source=idecloudconsole
[2]
微信的云函数中转: https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/capabilities.html#云函数
来源:https://blog.csdn.net/somenzz/article/details/124486955


猜你喜欢
- 本人电脑上的Python为3.5,安装在Windows上,虽然安装过程中选择了pip,但是在命令行输入pip后仍然不能成功,尝试一下方法,终
- vue在data中定义图片相对路径:data() { return { active: 1, ico
- 简单的一个例子,是以前用Dephi写的,前不久刚实现了一个在Python中使用Delphi控件来编写界面程序,于是趁热写一个类似的的查询方案
- Lists列表可以包含不同类型的元素,甚至是Lists,但是通常是同一个类型的。if __name__ == '__main__
- 一丶为什么需要事务隔离级别mysql是一个客户端/服务端软件,对于同一个服务器来说,可以有多个客户端进行连接,每一个客户端进行连接之后就形成
- golang 字符串 int uint int64 uint64 互转字符串 转 intintNum, _ = strconv.Atoi(i
- 最近在调代码,碰到幂函数、指数函数,总是提示ValueError: math domain errorValueError: negativ
- 本文实例讲述了java 数据库连接与增删改查操作。分享给大家供大家参考,具体如下:1、设置数据库的基本配置信息package mysql;/
- 本文实例讲述了Python面向对象class类属性及子类用法。分享给大家供大家参考,具体如下:class类属性class Foo(objec
- YUI Compressor 压缩 JavaScript 的内容包括:移除注释移除额外的空格细微优化标识符替换(Identifier Rep
- function getExplorerInfo() { var explorer = window.navigator.user
- 一、property() 函数讲解了解 @property 装饰器之前,我们首先要了解内置函数的 property()。class prop
- 简单说操作的步骤:1.连接数据库2.将SQL语句发送到数据库3.执行SQL语句这里举个例子:在一个数据库中有个students表,表中有学号
- 本文细致的为大家分享了Bootstrap轮播插件简单实例,供大家参考,具体内容如下使用Bootstrap的轮播插件可以向站点添加滑块,内容可
- 本文实现用python编写一个带界面的计算器小程序,当然这个计算器功能很简单,只能进行一些简单的数学运算,很适合初学者,希望能给大家带来一些
- 本文实例讲述了python实现中文输出的两种方法。分享给大家供大家参考。具体如下:方法一:用encode和decode如:import os
- 这里有numpy数组的相关介绍https://www.jb51.net/article/130657.htm排序numpy与python列表
- 在前一文中记述了Access启动不了,或者出现“正在准备安装……”的问题,今天则找到了Access对控件支持的问题。本来Access、Exc
- Gzip是什么复制大神们的解释吧:GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们
- str_split不支持中文,利用mb_xx函数实现个/** * Convert a string to an array * @param