1 申请小程序,创建hello world小程序

2 添加交互框和按钮

index. wxml

cal

{{ result }}

index.wxss

/**index.wxss**/

.input {

border: 1px solid black;

margin-bottom: 5px;

}

index.js

//index.js

//获取应用实例

const app = getApp()

Page({

data: {

result: "暂无结果",

formula: ''

},

//事件处理函数

calculate: function () {

wx.request({

url: 'https://shatter.xin/calculate',

data: {

formula: this.data.formula

},

success: res => {

if (res.statusCode == 200) {

this.setData({

result: res.data

})

}

}

})

},

input: function (e) {

this.setData({

formula: e.detail.value

})

}

})

3 在服务器配置hello django

在服务器安装python3和pip3环境,并安装django

pip3 install django

创建django项目

django-admin startproject calculator

cd calculator

修改calculator/settings.py中的ALLOWED_HOSTS = []为ALLOWED_HOSTS = ['*']

运行hello django项目

cd calculator

python3 manage.py runserver 0.0.0.0:8000

访问http://服务器ip:8000可以看到下图:

4 实现计算器接口

创建django app

python3 manage.py startapp CalculateApi

在calculator/settings.py的INSTALLED_APPS中添加CalculateApi如下:

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'CalculateApi'

]

在calculator/urls.py中将url转发给CalculateApi处理。

from django.contrib import admin

from django.urls import path

from django.conf.urls import url, include

urlpatterns = [

path('admin/', admin.site.urls),

url('^', include('CalculateApi.urls')),

]

在CalculateApi中新建urls.py文件,处理/calculate接口。

from django.conf.urls import url

from . import views

urlpatterns = [

url('calculate', views.calculate)

]

在CalculateApi/views.py文件中添加calculate函数用于计算求值并返回。

from django.http import HttpResponse

def calculate(request):

formula = request.GET['formula']

try:

result = eval(formula, {})

except:

result = 'Error formula'

return HttpResponse(result)

再次运行服务器,访问http://服务器ip:8000/calculate?formula=2*3-5即可得到结果1。

5 配置服务器将后端与微信小程序连接

由于微信要求使用https协议进行通讯,我们使用nginx + uwsgi + django来配置https服务器。

5.1 uwsgi配置

安装uwsgi

pip3 install uwsgi

配置django项目的uwsgi.ini,在calculator文件夹中新建uwsgi.ini文件

touch uwsgi.ini

vi uwsgi.ini

输入以下配置

[uwsgi]

# django项目监听的socket文件(可以使用端口代替)

socket = ./calculator.sock

# django项目所在目录

chdir = .

# django项目wsgi文件

wsgi-file = ./calculator/wsgi.py

master = true

processes = 2

threads = 4

vacuum = true

# 通过touch reload可以重启uwsgi服务器

touch-reload = ./reload

# 日志输出

daemonize = calculator.log

运行uwsgi服务器

uwsgi --ini uwsgi.ini

touch reload

5.2 http协议(80端口)下的nginx配置

安装nginx

sudo apt-get install nginx

cd /etc/nginx

修改nginx用户

vi nginx.conf

将第一行修改为

user root;

添加80端口的配置文件

cd conf.d

sudo touch calculator.conf

sudo vi calculator.conf

填入以下配置:

server{

listen 80;

server_name 服务器ip;

charset UTF-8;

client_max_body_size 75M;

location ~ ^/calculate {

// replace "path" to the path of your project

uwsgi_pass unix:///"path"/calculator/calculator.sock;

include /etc/nginx/uwsgi_params;

}

}

重启nginx服务器

sudo service nginx restart

访问服务器的80端口即可访问calculate接口,如http://服务器ip/calculate?formula=2*3-4

5.3 https协议(443端口)下的nginx配置

如果有自己的域名和ssl证书,将calculator.conf配置文件修改如下:

server{

listen 443;

server_name your.domain;

ssl on;

ssl_certificate path/to/your/ssl.pem;

ssl_certificate_key path/to/your/ssl.key;

ssl_session_timeout 5m;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

charset UTF-8;

client_max_body_size 75M;

location ~ ^/calculate {

uwsgi_pass unix:///path/to/calculator/calculator.sock;

include /etc/nginx/uwsgi_params;

}

}

重启nginx服务器,访问服务器的443端口即可访问calculate接口,如https://服务器域名/calculate?formula=2*3-4

如果你只有自己的域名而没有ssl证书,可以去申请免费的ssl证书或者参考此网址配置(https://certbot.eff.org/#ubuntuxenial-nginx)。

如果你没有自己的域名甚至没有自己的服务器,请出门右转阿里云或左转腾讯云自行购买。

5.4 配置微信小程序的服务器信息

运行小程序,一个简单的计算器就写完啦。

到此这篇关于Django微信小程序后台开发教程的实现的文章就介绍到这了,更多相关Django小程序后台开发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

python开发微信小程序-Django微信小程序后台开发教程的实现相关推荐

  1. 微信小程序客服系统 php后台开发代码

    一.在小程序后台配置参数. 配置的时候会验证服务器,将一下php代码保存放到服务器上就可以通过验证. 二.服务器上的php代码. <?phpheader('Content-type:text') ...

  2. python软件开发的一般流程-django最快程序开发流程详解

    1.建立工程 在工程目录下打开cmd,输入以下命令.其中mysite是项目名称. django-admin startproject mysite 命令运行完后,在该目录下会出现一个名为mysite的 ...

  3. python爬虫与django_请问django和爬虫程序如何整合?

    Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py ...

  4. 用python控制钉钉软件_Python—实现钉钉后台开发

    二.实现钉钉免登流程 免登流程分四步:1.前端获取钉钉免登授权码code:2.后端获取access_token:3.使用授权码code和access_token换取用户userid:4.通过acces ...

  5. 实施和开发哪个前景好_web前端与java后台开发哪个前景、待遇好?

    小项目开发速度最重要,所以过程式的JavaScript最流行.大型项目维护性和扩展性重要,所以oop.mv*式的模式合适,所以js上的各式框架也是层出不穷,针对这一现状,目前js标准和各框架都在改变. ...

  6. C++后台开发学习路线(已签腾讯后台开发)

    找完工作后一直想找时间写点东西,由于在忙各种事情,一直拖到现在.作为一个19届的老油条,趁在毕业之前,将我的学习总结分享给大家,希望对正在找实习或者找工作的同学有所帮助. 个人介绍 首先介绍下自己吧, ...

  7. 微信小程序后台开发详解

    微信小程序后台开发 前言 开发环境 开发流程 项目整体结构 接口开发 项目部署 ip映射 Nginx反向代理 gunicorn+super多进程开启服务+进程监控 ssl证书 小程序常用功能 微信支付 ...

  8. 如何开发一个个人微信小程序,微信小程序开发入门教程

    做任何程序开发要首先找到其官方文档,我们先来看看其有哪些官方文档. 微信小程序开发文档链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/index.html, ...

  9. 【Java后台开发规范】--- 圈复杂度

    文章目录 前言 其他类型的规范 圈复杂度 提炼方法 if.else 卫语句 去else 策略模式 switch 循环嵌套 其他建议 前言 做Java开发的,大多数可能都有看过阿里的Java后台开发手册 ...

最新文章

  1. Server Error: 0×80070543,无法取得服务器的状态(role 和 features)
  2. oracle怎么捕获表上的DML语句(不包括select)语句)
  3. Qt QProces的使用
  4. python基础学习_35岁零基础学习Python编程是否能学得会并用得上
  5. 1112: 进制转换(函数专题)
  6. OJ(Online Judge)系统汇总
  7. 拳王虚拟项目公社:网上比较容易挣到钱方式?虚拟资源项目是赚钱的最佳选择
  8. dbeaver默认值怎么设置_电脑没声音怎么办,峰哥教你如何解决
  9. python语法类似php吗_深入学习PHP还是Python
  10. python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数
  11. Qt——菜单栏、工具栏、状态栏
  12. mysql慢查询优化
  13. 概率论的基本概念——《概率论与数理统计》第一章学习报告
  14. 2035年进入现代化交通强国行列
  15. 【计算机网络】透明网桥:逆向学习算法逐步建立转发表(例题详细解析)
  16. QQ文件自动接收 重命名 建立文件夹 官方内测版本
  17. 饿狼传说 | 千锋JavaScript教程千呼万唤已出来
  18. 基于单片机的模拟电磁曲炮设计
  19. 中国半导体工业测试设备市场深度研究分析报告
  20. 苹果语音输入最新资讯

热门文章

  1. 攻击链路识别——CAPEC(共享攻击模式的公共标准)、MAEC(恶意软件行为特征)和ATTCK(APT攻击链路上的子场景非常细)...
  2. MongoDB 3.0 WiredTiger Compression and Performance
  3. java-com-util-common-service:BaseService.java
  4. 个性化选修——软件工程相关笔记
  5. myeclipse10安装了activiti插件后创建BPMN 文件时报错,
  6. (转载)你好,C++(17)0.1*10不等于1.0——4.1.4 关系操作符4.1.5 逻辑操作符
  7. 获取DataTable前几条数据
  8. python中requests.session的妙用
  9. hbase全分布安装配置
  10. 实例化Bean的方法(基于xml配置)-http://blog.csdn.net/shymi1991/article/details/48153293