没有合适的资源?快使用搜索试试~ 我知道了~
首页Python Flask 搭建微信小程序后台详解
Python Flask 搭建微信小程序后台详解
4.6k 浏览量
更新于2023-05-26
评论 12
收藏 81KB PDF 举报
主要介绍了Python Flask 搭建微信小程序后台,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
资源详情
资源评论
资源推荐

Python Flask 搭建微信小程序后台详解搭建微信小程序后台详解
主要介绍了Python Flask 搭建微信小程序后台,文中通过示例代码介绍的非常详细,对大家的学习或者工作具
有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
前言:
近期需要开发一个打分的微信小程序,涉及到与后台服务器的数据交互,因为业务逻辑相对简单,故选择Python的轻量化web
框架Flask来搭建后台程序。因为是初次接触小程序,经过一番摸索和尝试,个人觉得的微信小程序与后台的交互有点像
ajax,所以有ajax开发经验的同学开发小程序应该很容易上手,因为本文着重讲解后台程序的搭建,所以,微信小程序的前端
开发将一笔带过,有兴趣学习小程序前端语言的同学可移步网易云课堂的一套快速入门课程《轻松玩转微信小程序》。
分三步讲解微信小程序与Python后台交互数据的全过程
小程序向后台服务器提交数据。微信小程序为数据提交开发了一个API,其实是一个js函数,详细介绍可参考官方API文档《微
信小程序API文档》。下面贴下我开发的项目的数据提交js代码。
wx.request({
url: 'https://我的后台服务器网址/score',
data: {
acc_nbr:JSON.stringify(acc_nbr),
grade1: JSON.stringify(grade1), //将数据格式转为JSON
grade2: JSON.stringify(grade2), //将数据格式转为JSON
grade3: JSON.stringify(grade3), //将数据格式转为JSON
txt1:JSON.stringify(txt1),
txt2:JSON.stringify(txt2),
txt3:JSON.stringify(txt3)
},
method: "POST",
header: {
'content-type': 'application/x-www-form-urlencoded',
'chartset': 'utf-8'
}
代码参数讲解:
url: 'https://我的后台服务器地址/score',url参数是数据提交的地址,有点像html里表单提交里的action,微信小程序对后台接
入的服务器要求很高,需要具备已备案的能够解析的https域名,我的服务器使用的阿里云,网站架构使用的是
Nginx+supervisor+gunicorn+flask经典Python_flask 部署架构,此架构的部署学习可移步我的云笔记flask部署。
data: data参数是要提交的数据,数据需要转换成json格式,使用JSON的stringify函数,可以看到data的数据类型是
JavaScript的对象类型,也就是俗称的键值对。
methon:是数据提交的请求方式,默认是post请求方式,后台在处理请求时会判断请求方式。
header:是数据的头文件,需要设置字符类型为utf-8,即'charset':'utf-8',防止传输中文数据时出现乱码。
wx.requset()函数被调用后,会向后台服务器发起数据的post请求,此时小程序会把data里的数据以post形式向url对应的服务
器提交,下面讲解第二部分也是本文重点,即后台服务器接受到小程序的请求后,怎么处理并返回信息
后台服务器处理请求并返回信息。后台服务器处理请求是使用的Python-flask的轻量化web框架,对于想学习flask的同学可以
移步flask的快速入门课程。下面贴下我开发的项目的后台处理部分的Python-flask代码。
# coding=utf8
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
reload(sys)
sys.setdefaultencoding(defaultencoding)
from flask import Flask,render_template,request,json
from DB import *
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html')
@app.route('/score',methods=['POST'])
def score():
in_acc_nbr = str(json.loads(request.values.get("acc_nbr")))
input_grade1=int(json.loads(request.values.get("grade1")))
input_grade2 = int(json.loads(request.values.get("grade2")))
input_grade3 = int(json.loads(request.values.get("grade3")))
input_txt1=str(json.loads(request.values.get("txt1")))
input_txt2=str(json.loads(request.values.get("txt2")))
input_txt3=str(json.loads(request.values.get("txt3")))
score_db=db('mysql数据库ip地址',3306,'数据库用户名','数据库密码','数据库','utf8')
conn=score_db.connect_db()
cursor=conn.cursor()


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0