基于腾讯云服务器部署微信小程序后台服务(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 相关文章推荐
python获取文件版本信息、公司名和产品名的方法
Oct 05 Python
Python验证码识别处理实例
Dec 28 Python
Python制作刷网页流量工具
Apr 23 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
python样条插值的实现代码
Dec 17 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
通过 Django Pagination 实现简单分页功能
Nov 11 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
解决python对齐错误的方法
Jul 16 Python
idea2020手动安装python插件的实现方法
Jul 17 Python
matplotlib交互式数据光标mpldatacursor的实现
Feb 03 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
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
jquery 笔记 事件
2011/11/02 Javascript
子页向父页传值示例
2013/11/27 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
基于jQuery实现可编辑的表格
2019/12/11 jQuery
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
python使用PyGame模块播放声音的方法
2015/05/20 Python
Python中super()函数简介及用法分享
2016/07/11 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
pip命令无法使用的解决方法
2018/06/12 Python
Python登录注册验证功能实现
2018/06/18 Python
Python中@property的理解和使用示例
2019/06/11 Python
深入学习python多线程与GIL
2019/08/26 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
激励员工的口号
2014/06/16 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书