基于腾讯云服务器部署微信小程序后台服务(Python+Django)


Posted in Python onMay 08, 2019

一 前言

微信小程序,相信大家早已熟知,它是一种无需下载安装即可使用的轻型应用,具有跨平台和接近 Native App 性能体验的优势。从开发模式上说,它是前后端分离的,微信小程序负责实现前端应用,后端服务可以使用任何你说熟知的开发语言,如 PHP 、 NodeJs 、 Java 、 C# 、 Python 等,因而,微信小程序的开发文档主要是围绕 WXML 、 WXSS 等前端框架、组件或样式布局进行讲解,几乎看不到后端技术的身影。本文主要介绍如何在腾讯云服务器上部署 Python+Django 实现的微信小程序后台服务,对整个部署过程和涉及的事件有所了解即可,无需关注具体细节。

二 部署前准备

部署前的准备工作比较耗时,可能这也是很多微信小程序个人开发者会感到头疼的地方 …

1. 购买云主机

开发的微信小程序应用带后台服务的,要考虑购买云主机,可选服务提供商挺多的,如腾讯云、阿里云、百度云等,根据个人需要选购即可,腾讯云主机相对便宜(西南地区 - 成都,主机相对其他区域便宜一点);

2. 域名申请\解析\备案

A.   域名申请

购买域名,最好是云主机在哪里买,域名就在哪里买吧,也省了域名转入的事儿,比如主机、域名都在腾讯云购买;

B.   域名解析

购买的云主机会有一个公网IP,通过将域名与ip地址绑定,可以实现通过域名访问服务。如腾讯云主机域名解析配置方式为:

登录腾讯云控制台---> 进入域名页面--->在域名上点击[解析]--> 添加解析记录

C.   域名备案

这个最蛋疼! 腾讯云提交备案信息,如个人信息、住址信息、×××信息、居住证信息、照片视频等材料;

这个最耗时! 腾讯云审核1个工作日,管局审核理论上 20 个工作日左右(可能会快几天) ;

这个是必须的! 微信小程序后台域名必须备案,没法绕过,看开发文档的明确说明:

基于腾讯云服务器部署微信小程序后台服务(Python+Django) 

3. 申请SSL证书\配置启用https访问

A. 腾讯云提供了ssl证书的免费申请,具体可以查看腾讯云相关文档,大致流程为:

登录腾讯云-->ssl证书管理-->申请证书(免费)-->等待审核( 一个工作日内完成审核,审核结果将以短信、邮件及站内信的方式通知您。一般半个小时即可审核通过

B. 配置启用https

证书审批结果会以短信通知,审批通过后,可以在控制台下载证书文件,且在apache中安装配置( 记得配置后重启apache服务

4. 配置小程序服务器域名

域名备案通过后,登录微信公众平台小程序,配置服务器域名,大致流程是:开发 -- 开发设置 - 服务器域名 - 开始配置,填写备案的域名;

三 部署Apache+mod_wsgi+Django

经过前期的准备,已经有可以运行后台服务的主机和备案的域名,且支持https协议,接下来就需要将开发好的后台服务部署到云主机,以便为微信小程序提供后台API 访问。

1. Apache 安装配置

我的腾讯云服务器使用的是 windows 2k8 R2 系统,在 Apache 官网下载对应的版本,解压,配置 httpd.conf ,使用类似 httpd -k install -n " Apache2.4 " 的命令 可以 将 apache 注册成 windows 服务;

2. 安装 mod_wsgi

下载与 Python 版本对应的 mod_wsgi ,使用 pip install 安装,并记录安装成功后出现的配置信息,以备后续 httpd.conf 配置;

3. 配置 Django 项目

部署 Django 项目,配置 httpd.conf ,重启 apache 服务,如果配置无异常,通过配置的域名应该可以正确获得后台响应数据,后台接口数据一般以 json 格式返回。

httpd.conf 配置举例如下,配置时注意依据实际路径修改:

#安装wsgi模块后,mod_wsgi-express module-config命令输出的三行信息,直接复制过来
LoadFile C:/python36/python36.dll
LoadModule wsgi_module c:/users/administrator/.virtualenvs/example-qwbwsvwe/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win32.pyd
WSGIPythonHome c:/users/administrator/.virtualenvs/example-qwbwsvwe
#设置工程中的wsgi路径
WSGIScriptAlias / C:\Dev\example\webApp\webApp\wsgi.py
#设置工程路径
WSGIPythonPath C:\Dev\example\webApp
#设置wsgi路径
<Directory C:\Dev\example\webApp\webApp>
 <Files wsgi.py>
  Require all granted
 </Files>
</Directory>
#设置静态文件路径
Alias /static C:\Dev\example\webApp\static
<Directory C:\Dev\example\webApp\static> 
 AllowOverride None 
 Options None 
 Require all granted 
</Directory>

四 总结

如果开发的微信小程序需要后台服务支持,域名备案是一个耗时等待的过程,因而,可以提前发起备案申请;后台服务部署涉及的细节较多,都可以单独领出来写配置文档,但配置相对比较容易,另外,考虑后台服务器选择种类众多,全部写出来,篇幅居多,参考性可能也不大,所以,只列出大致流程,对整个部署过程和涉及的事件有所了解即可,实际应用中还要具体问题具体分析。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
MySQL适配器PyMySQL详解
Sep 20 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
Python实现自定义函数的5种常见形式分析
Jun 16 Python
Python2实现的图片文本识别功能详解
Jul 11 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
Aug 02 Python
python创建n行m列数组示例
Dec 02 Python
python中如何使用insert函数
Jan 09 Python
python连接PostgreSQL过程解析
Feb 09 Python
利用python在excel中画图的实现方法
Mar 17 Python
Python-typing: 类型标注与支持 Any类型详解
May 10 Python
python解析照片拍摄时间进行图片整理
Jul 23 Python
python中正则表达式与模式匹配
May 07 #Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 #Python
python对象与json相互转换的方法
May 07 #Python
python使用threading.Condition交替打印两个字符
May 07 #Python
python实现银联支付和支付宝支付接入
May 07 #Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
May 07 #Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 #Python
You might like
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
js的一些常用方法小结
2011/06/29 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
第六篇Bootstrap表格样式介绍
2016/06/21 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
python time模块用法实例详解
2014/09/11 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
战友聚会邀请函
2014/01/18 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
银行授权委托书格式
2014/10/10 职场文书
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS