Django微信小程序后台开发教程

摘要:
--index.wxml--˃cal{{result}}index.wxss/**index.wxss**/.input{border:1pxsolidblack;margin-bottom:5px;}index.js//index.js//获取应用实例constapp=getApp()Page3在服务器配置hellodjango在服务器安装python3和pip3环境,并安装djangopip3installdjango创建django项目django-adminstartprojectcalculatorcdcalculator修改calculator/settings.py中的ALLOWED_HOSTS=[]为ALLOWED_HOSTS=['*']运行hellodjango项目cdcalculatorpython3manage.pyrunserver0.0.0.0:8000访问http://服务器ip:8000可以看到下图:4实现计算器接口创建djangoapppython3manage.pystartappCalculateApi在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处理。fromdjango.contribimportadminfromdjango.urlsimportpathfromdjango.conf.urlsimporturl,includeurlpatterns=[path,url,]在CalculateApi中新建urls.py文件,处理/calculate接口。fromdjango.conf.urlsimporturlfrom.importviewsurlpatterns=[url]在CalculateApi/views.py文件中添加calculate函数用于计算求值并返回。fromdjango.httpimportHttpResponsedefcalculate:formula=request.GET['formula']try:result=evalexcept:result='Errorformula'returnHttpResponse再次运行服务器,访问http://服务器ip:8000/calculate?5配置服务器将后端与微信小程序连接由于微信要求使用https协议进行通讯,我们使用nginx+uwsgi+django来配置https服务器。

本文链接:https://blog.csdn.net/qq_43467898/article/details/83187698
Django微信小程序后台开发教程
1 申请小程序,创建hello world小程序
2 添加交互框和按钮
3 在服务器配置hello django
4 实现计算器接口
5 配置服务器将后端与微信小程序连接
5.1 uwsgi配置
5.2 http协议(80端口)下的nginx配置
5.3 https协议(443端口)下的nginx配置
5.4 配置微信小程序的服务器信息
1 申请小程序,创建hello world小程序

Django微信小程序后台开发教程第1张

Django微信小程序后台开发教程第2张

Django微信小程序后台开发教程第3张

2 添加交互框和按钮
  • index. wxml
<!--index.wxml-->
<view class="container">
  <input type="text"   bindinput='input'/>
  <button bindtap="calculate">cal</button>
  <view>{{ result }}</view>
</view>
  • 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可以看到下图:

Django微信小程序后台开发教程第4张

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。

Django微信小程序后台开发教程第5张

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微信小程序后台开发教程第6张

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

Django微信小程序后台开发教程第7张

--

免责声明:文章转载自《Django微信小程序后台开发教程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用asmfd绑定磁盘日期类型存储成字符串类型的格式问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Django的celery配置(包括定时任务、队列)

一、安装celery Django项目不需要安装celery这个包,可以直接使用django-celery这个包,,先来安装它,在终端中输入: pip install django-celery 二、安装rabbitmq,建立celery队列 我做的项目用的就是rabbitmq,按道理来说,也是可以用redis作为消息队列的,但是rabbitmq更好,此...

Django知识总结(一)

壹 ● 有关http协议 一 ● 全称 超文本传输协议(HyperText Transfer Protocol) 二 ● 协议 双方遵循的规范 http协议是属于应用层的协议(还有ftp, smtp等), 即浏览器请求消息和服务器响应消息的一系列规则 三 ● http协议的特性 http是无状态、无连接的协议(stateless, c...

微信小程序 生命周期函数详解

微信小程序 生命周期函数 小程序中 判断当前首页是从其他页面返回,还是由入口打开 由于小程序的数据在我们退出小程序时并没有得到释放,因此再次点击开来数据依然没有变成初始化 解决方法:在小程序 data 数据中声明一个变量 isClose 默认为 true 用于判断 是否为从入口打开,当点击跳转页面或者关闭小程序的时候,会触发 OnHide 函数在此函数中将...

Django -- class Meta:详解

模型元数据是“任何不是字段的数据”,比如排序选项(ordering),数据库表名(db_table)或者人类可读的单复数名称(verbose_name和verbose_name_plural)。在模型中添加class Meta是完全可选的,所有选项都不是必须的。 classBook(models.Model): name =models.CharF...

Django 表操作-表之间的关系(建立在MySQL上)

Django 表操作-表之间的关系(建立在MySQL上) 数据表之间的关系有:一对多,多对多和一对一,在Django项目中做好建立表关系的准备 数据表:book,book_detail,author,publish 数据关系: 多对多:book和author 一对多:book和publish 一对一:book和book_detail 所有外键推荐建立在查询...

Django之F和Q查询等其他查询

  1. 内容回顾   1. 外键的查询操作 1. 正向查找(详见day69内容回顾时间.py)    1. 基于对象的查询(SQL:子查询)    2. 基于双下划线的跨表查询(SQL:join)   2. 反向查找(详见day69内容回顾时间.py)   1. 基于对象的查询   2. 基于双下划线的跨表查询   2. 多对多关系  ManyToM...