社区编辑申请
注册/登录
Python 作为小程序后端的三种方法
开发 前端
所谓云托管,就是一个 Docker 容器,你只需要弄一个仓库,可以 github, gitlab, gitee 中的任意一个建立仓库,写好 Dockerfile,上传到云托管,云托管会自动构建容器镜像并运行,运行容器的方式都是可以自定义的。

你好,我是征哥。微信的小程序是一个很不错的体验,简单,上手快,这几天也在学习使用小程序,自己总结了三种用 Python 作为小程序后端的方式,供你参考。

方法一、微信的云托管[1]。

优点:不需要购买服务器,不需要域名备案,按使用量计费,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 模版,一键部署。

方法二、微信的云函数中转[2]

优点:不需要域名备案,有一定的免费额度。

缺点:自己配置服务器

所谓云函数,就是运行在腾讯云端的 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 开发啦。

参考资料

[1]微信的云托管: https://cloud.weixin.qq.com/cloudrun?utm_source=idecloudconsole

[2]微信的云函数中转: https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/capabilities.html#云函数

责任编辑:武晓燕 来源: Python七号
相关推荐

2022-04-11 11:38:44

Python代码游戏

2022-04-19 08:29:12

Python机器学习

2022-05-03 22:25:57

Python浏览器语言

2022-05-17 09:14:50

聚类算法python

2022-05-10 07:24:19

2022-04-20 20:28:40

HDF 驱动框架鸿蒙操作系统

2022-04-13 08:00:00

Hilla开发Java

2022-05-11 12:12:32

ScapyPython网络包

2022-03-18 21:27:36

Python无代码

2022-05-03 23:44:21

Python动态链接库Ctypes

2022-05-16 09:34:17

Python可视化图表

2022-05-07 07:26:05

PyScriptHTMLPython 代码

2022-05-10 16:04:40

编程语言PythonC语言

2022-04-12 08:43:21

Python内置模块

2022-04-15 11:30:59

代码,Python保存视频

2022-05-02 16:27:01

JavaScriptHTMLPython

2022-04-13 18:12:37

TypeScriptPython开发

2022-03-17 08:30:28

Python私有属性私有方法

2022-04-15 10:11:03

机器学习scikit-lea

2022-04-19 14:41:29

Oracle数据库SQL

同话题下的热门内容

有人问,如何找到适合的Python库?提升Java字符串编码解码性能的技巧前端性能优化实战把反射用到出神入化JavaScript 代码越来越难读了 ...JavaScript 中 Fetch 是如何工作的ThreadLocal夺命11连问API类型和集成规范指南

编辑推荐

太厉害了,终于有人能把TCP/IP协议讲的明明白白了!牛人5次面试腾讯不成功的经验HBase原理–所有Region切分的细节都在这里了Javascript如何监听页面刷新和关闭事件如何搭建一个HTTPS服务端
我收藏的内容
点赞
收藏

51CTO技术栈公众号