海洋之歌 發表於 2021-7-16 14:22:00

【学习记录】微信小程序: 后端开发

<p></p><div class="toc"><div class="toc-container-header">目录</div><ul><li>服务端后台接口开发实战<ul><li>推荐工具</li><li>网络请求基本知识</li><li>MySQL</li><li>php</li><li>thinkPHP</li><li>后台接口<ul><li>测试接口</li><li>用户的注册接口</li><li>用户的登录接口</li><li>发布新树洞接口</li><li>获取所有树洞接口</li><li>得到某一用户的所有树洞</li><li>点赞接口</li><li>删除指定树洞接口</li></ul></li><li>SVN</li><li>微信小程序API补充</li><li>配置服务器域名</li><li>对接注册接口</li><li>测试、上传、发布</li></ul></li></ul></div><p></p>
<h2 id="服务端后台接口开发实战">服务端后台接口开发实战</h2>
<h3 id="推荐工具">推荐工具</h3>
<ul>
<li>代码编辑器:Sublime</li>
<li>本地运行环境:phpstudy (windows)</li>
<li>接口测试工具:postman</li>
<li>线上服务器:新浪云 SAE</li>
<li>代码版本控制器:tortoise svn、PHP storm</li>
</ul>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716094839839-340191071.jpg">
<p>Download - Sublime Text</p>
<p>sublime text3入门教程</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716095139975-324689254.jpg">
<p>PhpStorm</p>
<p>PhpStorm的简单使用教程</p>
<p>PhpStorm中如何配置SVN,详细操作方法</p>
<p>IntelliJ IDEA设置TortoiseSVN插件(Cannot run program "svn")</p>
<p>svn 安装目录 没有 svn.exe</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716095408142-1062828162.jpg">
<p>小皮面板(phpstudy) </p>
<p>phpstudy使用说明教程</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716095930917-832973408.jpg">
<blockquote>
<p>使用Mac系统的朋友可以自行探索~</p>
</blockquote>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716100033168-1315985741.jpg">
<p>Postman</p>
<p>Postman使用详解</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716100619050-1028015339.jpg">
<p>云应用 SAE</p>
<p>新浪SAE快速上手教程</p>
<blockquote>
<p>微信小程序的后台需要设置支持https,并且认证过的服务器域名。</p>
</blockquote>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716101038185-106604437.jpg">
<p>TortoiseSVN 64位下载</p>
<p>新浪云 - 使用SVN客户端</p>
<h3 id="网络请求基本知识">网络请求基本知识</h3>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716102142191-1101355113.jpg">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716102143584-520661147.jpg">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716102150993-190400539.jpg">
<p>HTTP 方法:GET 对比 POST</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716102154337-324856200.jpg">
<p>JSON与XML的区别比较</p>
<h3 id="mysql">MySQL</h3>
<p>MySQL 教程</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716102904750-261777364.jpg">
<p>phpMyAdmin使用教程</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716103316363-590980737.png">
<blockquote>
<p>登录MySQL</p>
<p><code>mysql -h localhost -u root -p</code></p>
<p><code>mysql -uroot -p</code></p>
</blockquote>
<p>后面就跟着视频建表~</p>
<h3 id="php">php</h3>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716112128837-1858181443.jpg">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716112132164-1993097309.jpg">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716112135782-1443752478.jpg">
<p>PHP 教程</p>
<h3 id="thinkphp">thinkPHP</h3>
<p>ThinkPHP框架</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716150300578-1940019360.png">
<p>所有的代码都是首先经过index.php文件,然后再由这个文件分发到具体的文件夹。</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716151709292-501648306.png">
<ul>
<li>ThinkPHP是一个类库</li>
<li>Public是公共文件</li>
<li>Application是应用(自己写的代码)
<ul>
<li>Common公共
<ul>
<li>Common
<ul>
<li>function.php里可以定义一些公共的函数</li>
</ul>
</li>
<li>Conf
<ul>
<li>config.php公共配置</li>
</ul>
</li>
</ul>
</li>
<li>Home模块
<ul>
<li>Common放模块下面的一些公共代码</li>
<li>Conf放文件夹的配置文件,以数组的形式进行配置
<ul>
<li>config.php放Home模块独有的配置</li>
</ul>
</li>
<li>Controller文件夹里面可以写各种类,每一种类里面可以写很多方式</li>
<li>Model文件夹里面放一些模型文件</li>
<li>View放一些HTML文档,用于网站开发</li>
</ul>
</li>
</ul>
</li>
</ul>
<blockquote>
<p>自己要写的是Application-&gt;Home-&gt;Controller模块</p>
</blockquote>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716151750774-1458693556.png">
<p>Controller里面所有的类文件,固定的写法都必须是IndexController.class.php</p>
<p>Controller.class.php是固定的写法,只有Index是我们自己命名的。</p>
<p>访问方法:<code>localhost/treehole/index.php/Home/Index/test</code></p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716152903771-2006449241.jpg">
<p>Home表示属于哪个模块</p>
<p>Index表示属于哪个类文件</p>
<p>test表示属于哪个fanction函数</p>
<p>ThinkPHP3.2.3快速入门</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716153448810-779091579.jpg">
<p>若操作成功,返回新增数据的id。</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716154039522-453673108.png">
<p>操作数据库前,先修改配置文件。</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716154333828-184348571.jpg">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716155319093-349543797.jpg">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716155629083-820200598.jpg">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716155940197-2109409105.jpg">
<h3 id="后台接口">后台接口</h3>
<h4 id="测试接口">测试接口</h4>
<pre><code class="language-php">&lt;?php

namespace Home\Controller; //命名空间

use Think\Controller; //使用了什么样的类
class TestController extends BaseController
{ //TestController是当前代码的名字

        public function test()
        {
                echo 123;
        }

        public function insert_test()
        {
                //实例化数据表
                $Message = M('Message');

                //组装插入的数据
                $data = array(); //声明一个空数组
                $data['user_id'] = 5;
                $data['username'] = '小明';
                $data['face_url'] = 'xxx.jpg';
                $data['content'] = '今天是晴天。';
                $data['total_likes'] = 0;
                $data['send_timestamp'] = time();

                //插入数据
                $result = $Message-&gt;add($data); //add函数是封装好的
                var_dump($Message-&gt;getLastSql()); //打印SQL语句
                var_dump($result);
        }

        public function select_test()
        {
                //实例化数据库表
                $Message = M('Message');

                //设置查询条件
                $where = array();
                $where['user_id'] = 5;

                //查询数据
                $all_messages = $Message-&gt;where($where)-&gt;select();

                //箭头的意思是调用它的函数
                //thinkPHP可以连续调用函数

                // var_dump($all_messages);
                dump($all_messages);

                //只打印id和username
                $all_messages = $Message-&gt;where($where)-&gt;field('id,username')-&gt;select();
                dump($all_messages);
                dump($Message-&gt;getLastSql());
        }

        public function find_test()
        {
                //实例化数据库表
                $Message = M('Message');

                //设置查询条件
                $where = array();
                $where['user_id'] = 5;

                //查询数据
                $all_messages = $Message-&gt;where($where)-&gt;select();
                dump($all_messages);
                dump($Message-&gt;getLastSql());

                $all_messages = $Message-&gt;where($where)-&gt;find();
                dump($all_messages);
                dump($Message-&gt;getLastSql());
        }

        public function save_test()
        {
                //实例化数据表
                $Message = M('Message');

                //设置要修改的条件
                $where = array();
                $where['id'] = 4;

                //要保存的数据
                $data = array();
                $data['total_likes'] = 123;

                //保存
                $result = $Message-&gt;where($where)-&gt;save($data);
                dump($result);
        }

        public function delete_test()
        {
                //实例化数据表
                $Message = M('Message');

                //设置条件
                $where = array();
                $where['id'] = 4;
                // $where['user_id'] = 3;

                //删除
                $result = $Message-&gt;where($where)-&gt;delete();
                dump($result);
                dump($Message-&gt;getLastSql());
        }
}
</code></pre>
<h4 id="用户的注册接口">用户的注册接口</h4>
<ul>
<li>接收数据</li>
<li>校验数据</li>
<li>查询数据库</li>
<li>插入数据库</li>
<li>组装数据</li>
<li>返回数据</li>
</ul>
<pre><code class="language-php">class UserController extends BaseController
{ //UserController是当前代码的名字

        /**
       *
       * 用户注册
       * @return
       */
        public function sign()
        {

                // 校验参数是否存在
                if (!$_POST['username']) {

                        $return_data = array();
                        $return_data['error_code'] = 1;
                        $return_data['msg'] = '参数不足: username';
                        //msg是给前端开发人员看的,告诉开发人员每个数字代表什么意思
            
                        $this-&gt;ajaxReturn($return_data);
                        //如果要把数据返回给前端,都需要用$this-&gt;ajaxReturn
                        //ajaxReturn意思是以ajax的方式把数据返回前端去
                }

                if (!$_POST['phone']) {

                        $return_data = array();
                        $return_data['error_code'] = 1;
                        $return_data['msg'] = '参数不足: phone';

                        $this-&gt;ajaxReturn($return_data);
                }

                if (!$_POST['password']) {

                        $return_data = array();
                        $return_data['error_code'] = 1;
                        $return_data['msg'] = '参数不足: password';

                        $this-&gt;ajaxReturn($return_data);
                }

                if (!$_POST['password_again']) {

                        $return_data = array();
                        $return_data['error_code'] = 1;
                        $return_data['msg'] = '参数不足: password_again';

                        $this-&gt;ajaxReturn($return_data);
                }

                // 检验两次密码是否输入一致
                if ($_POST['password'] != $_POST['password_again']) {

                        $return_data = array();
                        $return_data['error_code'] = 2;
                        $return_data['msg'] = '两次密码不一致';

                        $this-&gt;ajaxReturn($return_data);
                }

                // 检验手机号是否已经被注册

                $User = M('User');

                // 构造查询条件
                $where = array();
                $where['phone'] = $_POST['phone'];

                //因为只需要查出一个,所以用find比较好
                $user = $User-&gt;where($where)-&gt;find();

                if ($user) {

                        // 如果存在该手机号的用户,则提示
                        // 不再允许重复注册该手机号

                        $return_data = array();
                        $return_data['error_code'] = 3;
                        $return_data['msg'] = '该手机号已被注册';

                        $this-&gt;ajaxReturn($return_data);
                } else {

                        // 如果用户尚未注册,则注册
                        // 构建插入的数据

                        $data = array();
                        $data['username'] = $_POST['username'];
                        $data['phone'] = $_POST['phone'];
                        // $data['password'] = md5($_POST['password']);
                        // 密码,用md5函数进行加密,得到32位字符串
                        $data['password'] = $_POST['password'];
                        $data['face_url'] = $_POST['face_url'];

                        // dump($data);

                        // 插入数据
                        $result = $User-&gt;add($data); // add函数添加数据成功之后,返回的就是该条数据的id

                        if ($result) { //if语句中只要$result有值,就是非零非空

                                // 插入数据成功
                                $return_data = array();
                                $return_data['error_code'] = 0;
                                $return_data['msg'] = '注册成功';
                                $return_data['data']['user_id'] = $result;
                                $return_data['data']['username'] = $_POST['username'];
                                $return_data['data']['phone'] = $_POST['phone'];
                                $return_data['data']['face_url'] = $_POST['face_url'];

                                $this-&gt;ajaxReturn($return_data);
                        } else {

                                // 插入数据执行失败
                                $return_data = array();
                                $return_data['error_code'] = 4;
                                $return_data['msg'] = '注册失败';

                                $this-&gt;ajaxReturn($return_data);
                        }
                }
                // dump($_POST);
        }
</code></pre>
<p>使用postman测试该接口,传参数是在Body-&gt;form-data</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716203456262-230189355.png">
<h4 id="用户的登录接口">用户的登录接口</h4>
<ul>
<li>接收数据</li>
<li>处理数据</li>
<li>返回结果</li>
</ul>
<pre><code class="language-php">/**
       * 用户登录
       * @return
       */
        public function login()
        {

                // 校验参数是否存在
                if (!$_POST['phone']) {

                        $return_data = array();
                        $return_data['error_code'] = 1;
                        $return_data['msg'] = '参数不足: phone';

                        $this-&gt;ajaxReturn($return_data);
                }

                if (!$_POST['password']) {

                        $return_data = array();
                        $return_data['error_code'] = 1;
                        $return_data['msg'] = '参数不足: password';

                        $this-&gt;ajaxReturn($return_data);
                }

                // 查询用户
                $User = M('User');

                $where = array();
                $where['phone'] = $_POST['phone'];

                $user = $User-&gt;where($where)-&gt;find();

                if ($user) {

                        // 如果查询到该手机号用户
                        // dump($user);

                        // if (md5($_POST['password']) != $user['password']) {
                        if($_POST['password'] != $user['password']){
                                $return_data = array();
                                $return_data['error_code'] = 3;
                                $return_data['msg'] = '密码不正确,请重新输入';

                                $this-&gt;ajaxReturn($return_data);
                        } else {
                                // 如果密码一样

                                $return_data = array();
                                $return_data['error_code'] = 0;
                                $return_data['msg'] = '登陆成功';
                                $return_data['data']['user_id'] = $user['id'];
                                $return_data['data']['username'] = $user['username'];
                                $return_data['data']['phone'] = $user['phone'];
                                $return_data['data']['face_url'] = $user['face_url'];

                                $this-&gt;ajaxReturn($return_data);
                        }
                } else {

                        $return_data = array();
                        $return_data['error_code'] = 2;
                        $return_data['msg'] = '不存在该手机号用户,请注册';

                        $this-&gt;ajaxReturn($return_data);
                }

                dump($_POST);
        }
</code></pre>
<h4 id="发布新树洞接口">发布新树洞接口</h4>
<pre><code class="language-php">/**
   * 发布新树洞
   * @return
   */
    public function publish_new_message()
    {

      // 校验参数是否存在
      if (!$_POST['user_id']) {

            $return_data = array();
            $return_data['error_code'] = 1;
            $return_data['msg'] = '参数不足: user_id';

            $this-&gt;ajaxReturn($return_data);
      }

      if (!$_POST['username']) {

            $return_data = array();
            $return_data['error_code'] = 1;
            $return_data['msg'] = '参数不足: username';

            $this-&gt;ajaxReturn($return_data);
      }

      if (!$_POST['face_url']) {

            $return_data = array();
            $return_data['error_code'] = 1;
            $return_data['msg'] = '参数不足: face_url';

            $this-&gt;ajaxReturn($return_data);
      }

      if (!$_POST['content']) {

            $return_data = array();
            $return_data['error_code'] = 1;
            $return_data['msg'] = '参数不足: content';

            $this-&gt;ajaxReturn($return_data);
      }

      $Message = M('Message');

      // 设置要插入的数据
      $data = array();
      $data['user_id'] = $_POST['user_id'];
      $data['username'] = $_POST['username'];
      $data['face_url'] = $_POST['face_url'];
      $data['content'] = $_POST['content'];
      $data['total_likes'] = 0;
      $data['send_timestamp'] = time();

      //插入数据
      $result = $Message-&gt;add($data);

      if ($result) {

            $return_data = array();
            $return_data['error_code'] = 0;
            $return_data['msg'] = '数据添加成功';

            $this-&gt;ajaxReturn($return_data);
      } else {

            $return_data = array();
            $return_data['error_code'] = 2;
            $return_data['msg'] = '数据添加失败';

            $this-&gt;ajaxReturn($return_data);
      }
    }
</code></pre>
<h4 id="获取所有树洞接口">获取所有树洞接口</h4>
<pre><code class="language-php">/**
   * 得到所有树洞
   * @return
   */
    public function get_all_messages()
    {

      // 实例化数据表
      $Message = M('Message');

      // 设置查询条件

      // 按照时间倒序获取所有树洞
      // 这里的时间和id是同一个
      //desc递减
      //asc递增
      $all_messages = $Message-&gt;order('id desc')-&gt;select();

      // dump($all_messages);

      // 将所有的时间戳转换为2021-03-13 08:38:53
      // php里面的循环使用foreach
      foreach ($all_messages as $key =&gt; $message) {

            $all_messages[$key]['send_timestamp'] = date('Y-m-d H:i:s', $message['send_timestamp']);
      }

      $return_data = array();
      $return_data['error_code'] = 0;
      $return_data['msg'] = '数据获取成功';
      $return_data['data'] = $all_messages;

      $this-&gt;ajaxReturn($return_data);

      // dump($all_messages);
    }
</code></pre>
<h4 id="得到某一用户的所有树洞">得到某一用户的所有树洞</h4>
<pre><code class="language-php">/**
   * 得到某一用户的所有树洞
   * @return
   */
    public function get_one_user_all_messages()
    {

      // 校验参数是否存在
      if (!$_POST['user_id']) {

            $return_data = array();
            $return_data['error_code'] = 1;
            $return_data['msg'] = '参数不足: user_id';

            $this-&gt;ajaxReturn($return_data);
      }

      // 实例化数据表
      $Message = M('Message');

      // 设置查询条件
      $where = array();
      $where['user_id'] = $_POST['user_id'];

      $message = $Message-&gt;where($where)-&gt;select();
      if (!$message) {

            $return_data = array();
            $return_data['error_code'] = 2;
            $return_data['msg'] = '数据获取失败';

            $this-&gt;ajaxReturn($return_data);
      } else {

            $return_data = array();
            $return_data['error_code'] = 0;
            $return_data['msg'] = '数据获取成功';
            $return_data['data'] = $message;

            $this-&gt;ajaxReturn($return_data);
      }
    }
</code></pre>
<h4 id="点赞接口">点赞接口</h4>
<pre><code class="language-php">/**
   * 点赞数增加
   * @return
   */
    public function do_like()
    {

      // 校验参数
      if (!$_POST['message_id']) {

            $return_data = array();
            $return_data['error_code'] = 1;
            $return_data['msg'] = '参数不足: message_id';

            $this-&gt;ajaxReturn($return_data);
      }

      if (!$_POST['user_id']) {

            $return_data = array();
            $return_data['error_code'] = 1;
            $return_data['msg'] = '参数不足: user_id';

            $this-&gt;ajaxReturn($return_data);
      }

      // dump($_POST);

      $Message = M('Message');

      // 查询条件
      $where = array();
      $where['id'] = $_POST['message_id'];

      $message = $Message-&gt;where($where)-&gt;find();

      // 判断是否存在该条树洞
      if (!$message) {

            $return_data = array();
            $return_data['error_code'] = 2;
            $return_data['msg'] = '指定的树洞不存在';

            $this-&gt;ajaxReturn($return_data);
      }

      // dump($message);

      $data = array();
      $data['total_likes'] = $message['total_likes'] + 1;

      // 构造要保存的条件
      $where = array();
      $where['id'] = $_POST['message_id'];

      $result = $Message-&gt;where($where)-&gt;save($data);

      if ($result) {

            $return_data = array();
            $return_data['error_code'] = 0;
            $return_data['msg'] = '数据保存成功';
            $return_data['data']['message_id'] = $_POST['message_id'];
            $return_data['data']['total_likes'] = $data['total_likes'];

            $this-&gt;ajaxReturn($return_data);
      } else {

            $return_data = array();
            $return_data['error_code'] = 2;
            $return_data['msg'] = '数据保存失败';

            $this-&gt;ajaxReturn($return_data);
      }
    }
</code></pre>
<h4 id="删除指定树洞接口">删除指定树洞接口</h4>
<pre><code class="language-php">/**
   * 删除指定树洞接口
   * @return
   */
    public function delete_message()
    {

      // 校验参数
      if (!$_POST['message_id']) {

            $return_data = array();
            $return_data['error_code'] = 1;
            $return_data['msg'] = '参数不足: message_id';

            $this-&gt;ajaxReturn($return_data);
      }

      if (!$_POST['user_id']) {

            $return_data = array();
            $return_data['error_code'] = 1;
            $return_data['msg'] = '参数不足: user_id';

            $this-&gt;ajaxReturn($return_data);
      }

      $Message = M('Message');

      //设置条件
      $where = array();
      $where['id'] = $_POST['message_id'];
      $where['user_id'] = $_POST['user_id'];

      $message = $Message-&gt;where($where)-&gt;find();

      if (!$message) {

            $return_data = array();
            $return_data['error_code'] = 2;
            $return_data['msg'] = '指定的数据查询不存在';

            $this-&gt;ajaxReturn($return_data);
      } else {

            $message_id = $message['id'];

            $message = $Message-&gt;where($where)-&gt;delete();

            $return_data = array();
            $return_data['error_code'] = 0;
            $return_data['msg'] = '数据删除成功';
            $return_data['message_id'] =$message_id;

            $this-&gt;ajaxReturn($return_data);
      }
    }
</code></pre>
<h3 id="svn">SVN</h3>
<p>一种代码版本控制器,可以多人协作开发。</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716172046146-497947839.jpg">
<ol>
<li>进到这里,获取SVN仓库地址</li>
</ol>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716172344652-887797621.png">
<ol start="2">
<li>打开网站根目录</li>
</ol>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716172535783-125893016.png">
<ol start="3">
<li>右键,点击SVN检出,将刚才获取到的地址粘贴到这</li>
</ol>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716172733826-546025491.png">
<ol start="4">
<li>点击确定,就把代码从新浪云更新到本地了</li>
</ol>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716172843800-1606051954.png">
<ol start="5">
<li>成功后,文件前面都有一个绿色的对号</li>
</ol>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716173052927-33845421.png">
<ol start="6">
<li>输入<code>http://zzdxyyf.saelinzi.com/zzdxyyf/1/treehole1/index.php/Home/Index/test</code>,输出<code>int(666)</code></li>
</ol>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716174512218-1933591301.png">
<ol start="7">
<li>修改本地代码,看到文件夹图标上有个警告,右键文件夹,点击SVN提交。</li>
</ol>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716174627017-2120569488.png">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716174648882-1572011466.png">
<ol start="8">
<li>可以看到修改前后的变化</li>
</ol>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716174758987-875485624.png">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716174830265-1319131550.png">
<ol start="9">
<li>点击确定,提交完成,刷新网页,看到输出变为<code>int(999)</code></li>
</ol>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716212408127-1203556947.jpg">
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716212414353-728037560.jpg">
<h3 id="配置服务器域名">配置服务器域名</h3>
<p>服务器域名保存成功之后,小程序就可以和服务器进行通信了。</p>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716213054786-100412195.png">
<h3 id="对接注册接口">对接注册接口</h3>
<blockquote>
<p>这部分内容,由于没有购买域名,目前也没有精力继续搞了,所以先把一些课程的知识点记录一下。</p>
</blockquote>
<ol>
<li>数据传递</li>
<li>API调用发起网络请求</li>
<li>接口回调处理</li>
<li>全局数据交互</li>
</ol>
<p>postman</p>
<ul>
<li>在POST方式下参数要写在Body中</li>
<li>在GET方式下参数要写在Params中</li>
</ul>
<p>线上服务器的域名最好保存在全局变量中。</p>
<p>“=”赋值的方式,并不会触发前端页面的刷新。</p>
<h3 id="测试上传发布">测试、上传、发布</h3>
<img src="https://img2020.cnblogs.com/blog/1555613/202107/1555613-20210716215255462-2081538944.jpg"><br><br>
来源:https://www.cnblogs.com/zhulu506/p/15019903.html
頁: [1]
查看完整版本: 【学习记录】微信小程序: 后端开发