小程序代码怎么用,微信小程序代码编写教程
因为我无能为力,我写前端,发布小程序,调用后端接口,写后端,写数据库,构建云服务,一直保持未完成。
一、已有的基础
我是19年3月写的小程序《英语四六级算分器》。第一页我注册了百度下的微信小程序,上线了第一版,包括百度下的前置按钮和布局。图1和图2(电脑页面)非常简单,容易上手。
上线后最高访问量几百,尤其是考四六级的那几天。平时很少有人用。虽然有投放广告的权限,但并不是为了用户体验而投放的。我没钱投资服务器,也不想吸引眼球。因为我想在今年新冠肺炎灾难期间进行优化,所以我有了图3的页面。但问题是,听力资源从哪里来?一开始在网上搜听力,提出要求,得到音频地址,用小程序引用。后来发现不现实。首先,人力资源的使用总是有风险的。第二,没有特别完整的音频。有些还是错的。
解决方法:为了解决这个问题,我做了一个微信官方账号(虽然没有用户Gg……),花几块钱从一条鱼那里买了一个完整的语音和问题的原始文档。然后整理了几天,写了文章的声音。这相当于把资源传递给了微信服务器。在浏览器中打开自己的微信微信官方账号文章,或者挂机请求,或者加入小程序。现在出现了图3(监控页面)。
二、进阶优化
1.ajax介绍:今年想再给小程序加翻译。我想知道这个怎么加。经过调查发现,百度、谷歌、有道等人提供了免费接口。也就是说,人家有服务器,对外开放功能,那通话就结束了。那就又有问题了。我只会按键等简单的前端。电话呢?要想用小程序调用,首先要掌握简单的主页调用,即ajax,然后查别人的代码,创建百度翻译的功能。详见https://blog.csdn.net/Gao _小齐/article/detaax。没你想的那么复杂。直接请求url,成功返回后到达成功方法。简单解释如下。不用那么高级,用就行。
2.后来发现只能翻译简单的单词。扩展知识需要企业的应用,才能使用。还有,我不想放小程序,所以暂时不优化。但是学了ajax之后,想做二手平台发布,前端基础只能做一点。做二手出版,也学后端
三、django后端搭建
1.制作流程:所谓的java,流程比较大,很难得到各种和调用,需要在python上操作。姜戈很受欢迎。就像按照教程做,但是不能安装第三方插件,修改配置回不去,不能重建N个进程,不知道而放弃做mysql模型,不能中途切换到python等等。
2.界面完整。diango做完之后,写后端接口。通过使用url.py直接公开接口,调用其他views.py实现。终于实现了自己的第一个界面。访问url后,可以打印后端返回的json数据。时间也是各种漏洞。返回字符混淆、数据格式错误、url正确等不一致问题。
3.数据库:不能直接给数据。总是动态地从数据库中读取。因此,在本地构建mysql。在这段时间内,mysql可能会检索到密码,但它找不到各种密码。在线教程总有sql错误。今天下午也做了这道题。最后求助公司后端开发解决。剩下的也就释然了。数据库构建,表构建,字段设计,主键的varchar int str正在进行中。
4.数据库读取:django开发代码动态读取数据库,读取接口后返回。这就是后端的基本功能:
四、前后端联调
1.跨域:前端连接后端,所以存在跨域问题。之前只停留在概念上,现在终于知道什么是跨域了。虽然咨询了公司的前端工程师,但是很无奈,对于网络上组成各种URL的get请求参数也无能为力。然后,从后端开始。(前端和后端分开搭建也是有好处的。至少前端不会过后端的hhh。)后端允许跨域跨域,前端不报错。
五、一步步搭建微信小程序二手商城
1.前端和后端都有数据库。接下来就是在细节上堆砌代码,实现每个功能。要涉及数据库,生成用户、商品、数据库后发现变化时使用alter。
2.列表页面:绘制前端页面,自带后端数据,相关知识:获取被屏蔽在不同位置的资源。比如头像获取头部资源,商品描述的mysql资源等。获取图片(根据上传商品id的用户id和url访问服务器资源)、ajax的get和post请求、为了不获取这个而允许函数成功:res=)、图片位读取不足)。比如有的用户只上传一张图片,所以只显示一张图片)。而且域间安装后真的很好。如图所示设置)
但这只是权宜之计,不允许上线。
只能局部调整。
3.个人页面:页面其实很简单。检查是否登录,未登录时点击登录加载登录信息更新头像和昵称。然而,问题来了。不同用户登录,你怎么区分?
我过了很久才明白:原来人民的微信有一个openid来唯一标识每个用户,但是这个openid不会轻易给你:先申请secret,然后人民的腾讯会记录你的secret和appid(申请小程序时有appid)。你要把这个secret,appid,这个登录的代码,腾讯规范的这三个URL拼接起来。然后请求接口,人家会返回唯一的用户openid。有了这个opid,就很容易做到了,它将被存储在数据库中,唯一地标识当前用户。
4.买服务器:微信小程序有体验者,就是发布开发版,体验者可以看到。另外,为了测试的方便,它必须发布开发版本。但是发现连真机调试都不一样(手机连外网,无法访问本地服务器资源,就不用想了),请求的资源也无法获得。无奈,买了一个百度域名,然后各种配置nginx,以为这样就可以了。我花了很长时间才发现还差得很远,因为别人怎么在外网上找到你的本地ip?别人的nginx只能在你的本地上下文中本地和反向部署不同的服务器,所以你要想让互联网找到你的服务器就得弄一个公网ip,而你自己的电脑不太现实:不占用内存的话,你可能要面临通过公司外部内网的问题,这是绝对不可能的。不,买个服务器。
买了很久的腾讯云。一开始我懵懵懂懂,差点买了windows版,以为和我本地电脑一致,可以轻松部署。还好我及时刹车,买了ubuntu的(比centos的好),接着就是各种安装(很多都不需要安装,ubuntu自带mysql和python,反正版本错了我可以自己重装),终于可以开始了:
期间想用navicat远程连接腾讯云上的mysql,然后可以继续本地操作。我在网上说我会在服务器上修改mysql下的配置,然后会做各种修改。我试过所有方法都没有权限,各种chmod attr都不管用。我渐渐意识到,可能别人的服务器或者ubuntu默认是改不了的,就暂时放弃了,命令行建表引导数据。
5.域名和服务器绑定:域名是从百度云买的,服务器是从腾讯云买的,总觉得不会有连接。按照教程:https://www.cnblogs.com/yspace/p/10050452.htmls步骤,在百度云上解析域名,映射到腾讯和服务的公有ip:
那ping就不管用了,贝卡
7.改域名:百度云申请域名还是有问题的,因为好像只有申请域名不能备案(每次备案都表示没有可用的服务),无奈我又在腾讯云花十几块钱买了一个,现在刚红。购买后配置还是不行(网上很多人说等10分钟),其实没用。现在好像所有域名都要实名才能ping通(至少百度和腾讯都是实名才通过)。
实名完了,还有下一步:需要https请求配置到微信平台,也就是需要办证备案:(2020/04/09)
嗯,还在审核中。腾讯要24小时审核,之后可能就没必要管理局备案了:
8.登录优化:详见https://blog.csdn.net/gao_xiao_qi/article/details/105441855.
为了调试加密,您需要安装pip安装加密包。百度下载的话,安装这个包的时候会报错,所以要换成pycryptodome。
接下来就是报错:小demo直接解析成功,会在django报错,所以卸载,重装,或者报错。后来发现是python版本问题,装错了地方(甚至在同一个项目下)。安装两个版本后,仍然报告了错误。最后把鸡眼都删了,只装了django目前用的then和32bit版本,然后不知怎么就好了。原因应该是两者的冲突。换句话说,demo虽然在django项目里,但是默认加载了另一个版本的python,所以误导了方向。(2020/4/10)
接下来是域名审核:腾讯的域名客服说明。个人申请域名不能有“xxx平台”之类的名称,否则会被屏蔽(企业当然可以,但经营范围也要包含或相关)。而且需要重新上传各种文件,然后到管理局备案。
9.地图
微信小程序当然是腾讯地图最便捷的接入方式。参考http://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodSearch,官方网站,我发现很多东西需要补充。终于找到了一位大神的博客:https://blog.csdn.net/yu17310133443/article/details/88991021稍微修改一下就可以用了(2020 . 5 . 3)
10.从主页上的下拉菜单中选择:
一开始用的是微信自带的拾音器地图:https://developers . weixin . QQ . com/mini program/dev/component/map . html,但是太低了。况且百度发现没有办法触发它的picker直接弹出穿越点击区域(因为这个区域是写在picker里面而不是外面的),而且就算算出来也不灵活不好看,所以过了很久我终于放弃了(2020
后来,参考了https://www.jianshu.com/p/d0b067e68c8e,下载后的源代码,我本来想都没想就来白嫖了。后来发现没办法满足需求,因为我的“区域”要三列,源代码只有两列。换了差不多半天。刚开始觉得很难改,但是改了之后发现他的代码也懂了,功能也能实现了,我也得到了新的知识。
其实他做了一个组件,然后在指数里引用,挺好的。我改了一下原代码:如果二级目录下没有三级目录,直接回去关闭下拉即可;如果有第三级目录,打开第三级,选择第三级并返回到菜单标题。(2020/5/5)
接下来要做的就是把地图的面积放进去。
10.发布页面:涉及的知识点:表单提交、用户信息值传递、数据库插入。
未完待续。
六、心得:
1.罗马不是一天建成的swdfn一下子做大功能不太现实,很容易半途而废。所以先做一个简单的,上网或者用。有了信心,以后再补充想法也不迟。
2.难题每天都存在。如果你不能解决它们,那就等待。也许第二天你会突发灵感,你可以用新的方法解决它们。
3.优化方向:python直接操作数据库不方便,维护困难。渐渐地,我意识到django的“模式”是一条出路,后面还要优化。
4.java的增删查应该不难。部署springboot应该够了。以后再改革优化吧。
5.这个入门水平在专业程序员面前是小儿科,但是对于一个swdfn来说,从零开始的过程是非常值得纪念的,hhhh
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。