微信小程序后端开发流程_微信小程序开发入门

微信小程序后端开发流程_微信小程序开发入门微信小程序开发流程记录一、代码处理(一)微信小程序(前端显示)微信小程序项目的架构部分特点说明(二)后台服务器(数据交互)需要的环境特别注意二、项目部署(一)Wampserver的设置(二)域名的获取(三)小程序官方网站上的设置一、代码处理最近一大学同窗开了家自习室,需要一个自习室的预约微信小程序,又恰好手上没有什么代码项目在写,本着少一事不如多一事的原则,尝试了第一次的微信小程序开发。白天要上班,只能利用晚上时间编写,反正他也不着急开业,于是前前后后用了大概半个月的时间,故做记录。刚开始写,确实没什

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、代码处理

最近一大学同窗开了家自习室,需要一个自习室的预约微信小程序,又恰好手上没有什么代码项目在写,本着少一事不如多一事的原则,尝试了第一次的微信小程序开发。白天要上班,只能利用晚上时间编写,反正他也不着急开业,于是前前后后用了大概半个月的时间,故做记录。
刚开始写,确实没什么经验,不知从何下手,每当这时,当然是坚持一个原则,划重点,开源无国界(天下代码一大抄)。当然,不管哪种语言,初学者都是从看会别人的代码开始的。
在这里,我不说明具体的代码,也不分析具体的代码,只大概分析一下,一个自习室预约软件的需求。总的来说,两点,前端微信小程序后台服务器

(一)微信小程序(前端显示)

前端显示当然是不可或缺的,如果是不需要与后台进行数据交换的小程序,也就只需要前端显示了。简单记录流程。

  1. 翻阅帮助文档,开发小程序的最重要的一个文档,是腾讯官方的《微信开放文档》,里面有非常详细的指南、框架以及各种开发说明。
  2. 选择开发工具,基本没得选,开发微信小程序,翻阅微信开放文档可知,基本就是“微信开发者工具”,文档里有传送口,传送你去下载页面,不支持linux系统,具体使用方法,自己探索,或者百度吧。
  3. 语言代码基础,微信小程序其实就是网页开发,用的也是js,json,wxml,wxss,对应网页开发的js,xml,css,语言几乎就是一模一样;
  4. 申请你的APPID,在小程序官方网站上申请,小程序网站,注册,登录,一套流程不说了。这个APPID是一个非常重要的身份认证信息,是开发者的身份认证ID,标识了这个小程序是谁开发的,很多地方都会用到,怎么获取,网上可以搜到很多教程,此处不表;
  5. 导入别人的项目,在微信开发者工具中的“项目”选择“导入项目”,目录选择你的项目位置,appid就是第4点中你申请的APPID。

微信小程序项目的架构

根据文件目录,简单介绍一下,开局几大板斧:

  1. app.js,这个是在进入微信小程序时,小程序启动阶段的运行的内容,里面最具特色的就是onLaunch(),这个函数就是启动函数,如果有什么需要跟着小程序启动运行的函数,都放在这下面。在这里面,会对一些全局变量,全局函数进行定义并赋初值,在后续每个js文档需要调用时,只需要在js开头加一句const app = getApp(),即可通过诸如app.globalData.imgUrl的形式,调用值。
  2. app.json也是一些全局的定义,需要将每一个page页在"pages": []中进行声明,在"window": {}中定义小程序的名称和背景颜色等一些参数,在"tabBar": {}中定义每个tab页的具体属性,另外,常见的定义,比如,如果你需要使用到导航定位,需要在这里定义一个"permission":{}相关的内容。
  3. app.wxss,就是小程序的一些全局的样式定义,我没怎么用到,看个人喜好。
  4. pages文件夹,这个文件夹下,就是小程序中显示的每一页的内容了,一般每一页的内容包含三个部分,即js(实现功能),wxml(实现页面布局),wxss(定义一些具体的样式)。

部分特点说明

微信小程序虽然类似于网页,但也有其特别之处,尤其是几点内容,需要特别说明。

  1. data中定义的变量,可以在js任意位置,通过this.data.变量名,进行调用。
  2. this.setData,这个函数是用来和前台进行数据交互用的,主要时用来往前台传送数据,采用键值对的方式传值,如this.setData({selstartTime: "11:00"}),,selstartTime则是王前台传的key值,“”中的时值。在前台接收通过{
    {selstartTime}}来取值。
    3.onLoad和onShow的区别,onload是页面初次加载时的动作,只运行一次,onshow是每次显示该页面时的动作,有些时候你通过退后按钮等回到该页面,onload就不会运行,onshow会运行。
  3. wx.navigateTo和wx.redirectTo和wx.switchTab的区别,navigateTo可以跳转至除tab页(就是主页左右切换时显示的几个页面)外的页面,跳转时仍保留原页面,不销毁,点击后退还能回到原页面,redirectTo也是跳转到tab页外的页面,但是跳转时,销毁原页面,不保留,点击后退,不能回到原页面,switchTab跳转至tab页。
  4. wx.request,访问后台方式,通过url进行访问。
  5. openID网络标识号的获取,这个是每个访问该小程序的用户的身份标识,每个用户都独一无二,获取这个openID号,需要通过request与后台联动获取。
  6. 在微信开发工具中,可以直接上传至微信小程序官网,提交为体验版。

(二)后台服务器(数据交互)

这部分内容,不是所有人都需要了解的,有些并不需要与后台进行数据交互的,不需要关注,如果需要交互的,则需要了解一下。

需要的环境

  1. Apache,这是为了部署网页用的,大家都晓得的,不多说。
  2. Mysql,这个就更熟悉了,非常常见的关系型数据库,存储数据用的,包括微信小程序很多的数据都需要与这个数据库进行操作,进行读写。
  3. 代码运行环境,这里语言不限制,常见的就是java和php,因为我借鉴的是人用的php,我只能硬着头皮用php了。
  4. Wampserver,上述三个环境,apache,mysql,php运行环境,看起来非常的繁琐,当然,如果您真的自己去一个一个的搭建环境,那可能会成未你前进路上的绊脚石。于是你会很惊喜的发现一个神器,Wampserver,简单安装,就能三位一体,一步到位。安装完以后,在安装目录下,会出现一个“wamp64”的文件夹(我选择的是64位),将你的php网页,放在该文件夹下的“www”文件夹下,即可。访问“http://localhost/weixin_yuyue/index.php”(weixin_yuyue即www文件夹下,你的工程文件夹的名),就能访问后台网页了。
  5. navicat,管理mysql数据库的常用软件了,不多说。

特别注意

  1. 后台访问网页和后台访问数据库是两回事,不过访问方法都一样都是的,通过http或者https访问后台。区别在于指向不同。
  2. 要获取访问用户的openid号,必须访问”https://api.weixin.qq.com/sns/jscode2session”;
   public function getOpenId(){ 
   
      $url="https://api.weixin.qq.com/sns/jscode2session";
       $appid='wxddd2d233413fb869';//小程序appid
       $secret='477fe8909d4ba0ff092bbd636becd45b';//小程序密钥
       $js_code=I('js_code');
       $sendurl= $url."?appid=".$appid."&secret=".$secret."&js_code=".$js_code."&grant_type=".$_GET['grant_type'];
       $result =json_decode(file_get_contents($sendurl));
       $session_key=$result->session_key;
       $openid=$result->openid;
       echo json_encode(array("openid"=>$openid,"session_key"=>$session_key));
   }
  1. 访问后台数据库的的类似的句式是“”,这一类句式可以看出来,访问的对应的controller是在“C:\wamp64\www\weixin_yuyue\Application\Api\Controller”(我的目录,各人有个人的目录,不尽相同)目录下,对应的XXXController.php中的内容。如“http://localhost/weixin_yuyue/index.php/Api/Orders/index”访问的对应的程序内容为UserController.class.php文件中的如下public function index()的函数内容,controller的使用,就这么简单说一下,不多说了。

二、项目部署

(一)Wampserver的设置

Wampserver默认是理想状态的,因此,需要修改Wampserver的配置为可允许外部访问,具体的方法上网可查。

(二)域名的获取

域名是申请获取的,而且需要具备http和https的权限,我在这里图个方便,用了花生壳的内网透传,下载了花生壳5的软件,再花了6+58=64元,搞定了一个永久的https加密域名,就可以使用这个域名了。使用花生壳软件时,有几个注意点。

  1. 必须用https或者http的域名,干脆一步到位,https吧,微信小程序访问后台,要求必须时https的协议,http只在调试时可用。
  2. 建议固定电脑的ip地址,这个ip是电脑再局域网内的ip地址,比如我的“192.168.1.4”,省的每次重启后,ip变化,又得更改设置,不然花生壳局域网映射不上。
  3. 获取了域名以后,原本的“localhost”的地方,就需要用你的域名替代进去,即可。

(三)小程序官方网站上的设置

登录小程序网页,登录后,有几个地方需要注意修改:

  1. “开发”–“开发设置”–“服务器域名”–“request合法域名”,添加你的域名到这里,表示这是一个允许通过的域名,不然你在微信体验版中,只能打开调试模式。或者在微信开发工具中,调试时,勾选“不校验域名XXXX”。
  2. “首页”–“小程序信息”,谨慎填写,很多都有限制修改次数。
  3. 小程序上传为体验版后,需要手动在“管理”–“版本管理”–“开发版本”中,设置为允许体验。然后能获取二维码,可以扫码申请体验,开发者通过即可。

最后,双手奉上我借鉴的源代码的链接,不知道这样是否违规,先试试吧,如果不可以,请作者联系我删除。微信小程序自习室预约代码下载地址

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193743.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • armv7和arm64区别(armv7s)

    目前ios的指令集有以下几种:armv6iPhoneiPhone2iPhone3G第一代和第二代iPodToucharmv7iPhone4iPhone4Sarmv7siPhone5iPhone5Carm64iPhone5SiPhone6iPhone6+================================================…

  • 低延迟视频传输_网络延时

    低延迟视频传输_网络延时微信后台如何应对像跨年,特殊时刻(比如2022年2月22日22时22分22秒)这样的朋友圈突发流量,可做如下策略(只是比如):优先让发一张图片的成功。九宫格只成功一部分,剩余的强有损压缩。朋友多的优先成功。(也可以反过来)设置三天可见的优先成功。(也可以反过来)年轻女性优先成功。(这个没毛病)历史点赞多的优先成功。(也可以反过来)头像穿西装打领带的经理统统失败。…在不影响P99用户体验的前提下,提供有损服务,保证核心可用性,这就是柔性。但数据传输的思维定势并不认可柔性。受TCP的影

  • C语言输出所有的水仙花数

    C语言输出所有的水仙花数输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为153=1³+5³+3³解题思路:水仙花数的解题思路是把给出的某个三位数的个位、十位、百位分别拆分,并求其立方和。程序能正常运行并准确输出“水仙花数”。定义i为水仙花数,运用for循环for(❶i=100;❷i<=999;❸i++)先执行❶,再执行❷判断条件是否满足,满足执行下列花括号,最后执行❸,一次循环结束;再执行❷判断条件是否满足,满足执行下列花括号,最后

  • internal server error原因及解决

    internal server error原因及解决常见的内部服务错误的原因有二,一是服务器资源紧张,二是文件权限错误。1.错误的原因一:服务器资源超载。服务器的资源超载:即同一时间内处理器有太多的进程需要处理的时候,会出现500错误。借助SSH,可

  • spring事务回滚机制_事务回滚失败

    spring事务回滚机制_事务回滚失败使用来配置自动回滚,可以配置在类上,也可以配置在方法上(作用域不同),但对final或private修饰的方法无效,且该类必须是受spring所管控的。若被配置的方法或类抛出了异常,则事务会被自动回滚,除非你在该方法中手动捕获了异常。可以使用来设定针对特定的异常进行事务回滚,如果不设置则默认会回滚RuntimeExceptionandError(参考自源码内文档)。通过注入来手动开启事务,手动回滚事务,用于抛出异常被catch后,进行手动回滚。…

    2022年10月21日
  • android studio toast不显示_androidtoast封装

    android studio toast不显示_androidtoast封装AndroidToast用于在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失。信息可以是简单的文本,也可以是复杂的图片及其他内容(显示一个view)。1.简单用法Toast.makeText(midlet.getApplicationContext(),”用户名不能为空”,Toast.LENGTH_LONG).show();2.自定义显示位置效果代码toast=Toast.mak…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号