python做微信小程序开发,python怎么开发小程序

打印 上一主题 下一主题

主题 529|帖子 529|积分 1587

大家好,小编为大家解答python做微信小程序开发的题目。很多人还不知道python怎么开发小程序,现在让我们一起来看看吧!


    本篇文章给大家谈谈python可以做小程序研发嘛,以及如何用python做小程序,盼望对各位有所帮助,不要忘了收藏本站喔。
  
  

           目录
    一、申请账号
    二、安装小程序开发情况并创建项目
    三、初识小程序项目结构
    四、开发小程序
    五、 安装Python开发情况并创建项目
    六、开发后端服务
    七、本地调试
    八、部署uWSGI Server
    九、部署Nginx并配置HTTPS
    十、上线小程序
   
    一、申请账号

          1.  进入小程序注册页根据指引填写信息和提交相应的资料,完成账号申请python高级工程师证怎么考。
    阐明: 假如跳转后页面出现错误,请刷新访问神码ai火车头伪原创插件怎么用。
   

    2.  使用申请的微信公众平台账号登录小程序后台,单击开发 > 开发设置,可以看到小程序的AppID,请记录AppID,后续操纵中需要使用。
   

    3.  在开发设置 > 服务器域名 > request合法域名中填入您的已备案域名。
    二、安装小程序开发情况并创建项目

    1.  安装Node.js开发情况,请到Node.js页面下载并安装Node.js情况。
    2.  下载并安装微信小程序开发工具。详细信息请拜见开发工具下载。
    3.  打开小程序开发工具,然后使用微信扫码登录。
    4.  单击加号创建微信小程序示例项目。
   

    5.  参考以下填写项目信息,最后单击新建
   
   

  • 项目名称:例如ECSAssistant。
  • 目录:例如D:\workspace\wechat\ECSAssistant。
  • AppID:小程序的唯一标识,从小程序控制台获取,拜见步骤一。
  • 开发模式:小程序。
  • 后端服务:不使用云服务。
   

    三、初识小程序项目结构

    生成的的小程序示例项目结构如下。
   
  1. ECSAssistant
  2. ├── app.js
  3. ├── app.json
  4. ├── app.wxss
  5. ├── pages
  6. │   ├── index
  7. │   │   ├── index.js
  8. │   │   ├── index.json
  9. │   │   ├── index.wxml
  10. │   │   └── index.wxss
  11. │   └── logs
  12. │       ├── logs.js
  13. │       ├── logs.json
  14. │       ├── logs.wxml
  15. │       └── logs.wxss
  16. ├── project.config.json
  17. ├── sitemap.json
  18. └── utils
  19.     └── util.js
复制代码
   可以看到小程序的项目结构中有三种前缀为app的文件,它们界说了小程序的一些全局配置。
   

  • app.json 是小程序的全局配置,用于配置小程序的页面列表、默认窗口标题、导航栏背景色等。更多请拜见全局配置。
  • app.acss 界说了全局样式,作用于当前小程序的所有页面。
  • app.js 用于注册小程序应用,可配置小程序的生命周期,声明全局数据,调用丰富的 API。
    小程序所有的页面文件都在pages/路径下,页面文件有四种文件范例,分别是.js.wxml.wcss、和.json后缀的文件。相比全局配置文件,页面配置文件只对当前页面生效。此中.wxml文件界说了当前页面的页面结构。小程序中的所有页面都需要在app.json文件中声明。更多请拜见代码构成。
    别的,项目顶层还有开发工具配置文件project.config.json和爬虫索引文件sitemap.json。
    四、开发小程序

    1.  编辑app.json文件,将小程序页面Title修改为ECS小助手,修改后的app.json文件内容如下。
        
  1. {
  2.   "pages":[
  3.     "pages/index/index",
  4.     "pages/logs/logs"
  5.   ],
  6.   "window":{
  7.     "backgroundTextStyle":"light",
  8.     "navigationBarBackgroundColor": "#fff",
  9.     "navigationBarTitleText": "ECS小助手",
  10.     "navigationBarTextStyle":"black"
  11.   },
  12.   "style": "v2",
  13.   "sitemapLocation": "sitemap.json"
  14. }
复制代码
       2.  编辑pages/index/index.wxml文件,界说index页面的页面结构,修改后的index.wxml文件内容如下。
        
  1. <view class='container'>
  2.   <input placeholder='请输入你的ECS实例ID' class='search-input' value='{{ inputValue }}' bindblur='bindblur'></input>
  3.   <view class='resultView' hidden='{{ showView }}'>
  4.     <text class='result'>CPU数:{{queryResult.Cpu}} 核</text>
  5.     <text class='result'>内存大小:{{queryResult.Memory}} MB</text>
  6.     <text class='result'>操作系统:{{queryResult.OSName}}</text>
  7.     <text class='result'>实例规格:{{queryResult.InstanceType}}</text>
  8.     <text class='result'>公网IP地址:{{queryResult.IpAddress}}</text>
  9.     <text class='result'>网络带宽:{{queryResult.InternetMaxBandwidthOut}} MB/s</text>
  10.     <text class='result'>在线状态:{{queryResult.instanceStatus == 'Running' ? '运行中':'已关机'}}</text>
  11.   </view>
  12. </view>
复制代码
       3.  编辑pages/index/index.wxss文件,界说index的页面样式,修改后的index.wxss文件内容如下。
        
  1. .search-input {
  2.   position: relative;
  3.   margin-bottom: 50rpx;
  4.   padding-left:80rpx;
  5.   line-height: 70rpx;
  6.   height: 80rpx;
  7.   box-sizing: border-box;
  8.   border: 2px solid #ff8f0e;
  9.   border-radius: 100rpx;
  10.   overflow: hidden;
  11.   text-overflow: ellipsis;
  12.   transition: border 0.2s;
  13. }
  14. .resultView {
  15.   margin-top: 70rpx;
  16. }
  17. .result {
  18.   position: relative;
  19.   left: 30rpx;
  20.   display: list-item;
  21.   font-size: small;
  22. }
复制代码
       4.  编辑pages/index/index.js文件,界说搜索框的失去焦点事件,修改后的index.js文件内容如下。
        
  1. Page({
  2.   data: {
  3.     queryResult: null,
  4.     showView: 'false',
  5.   },
  6.   bindblur: function(e) {
  7.     let that = this;
  8.     wx.request({
  9.       url: 'http://127.0.0.1:5000/ecs/getServerInfo',
  10.       method: 'GET',
  11.       data: {
  12.         instanceId: e.detail.value
  13.       },
  14.       success(res) {
  15.         if(res.statusCode == 200){
  16.           that.setData({
  17.             queryResult: res.data,
  18.             showView: !that.data.showView,
  19.           });
  20.         }else{
  21.           that.setData({
  22.             showView: 'false',
  23.           });
  24.           wx.showToast({
  25.             title: '请输入正确的实例ID',
  26.             duration: 1500,
  27.             icon: 'none',
  28.             mask: true
  29.           })
  30.         }
  31.       }
  32.     })
  33.   }
  34. })
复制代码
       阐明: 微信小程序提供了丰富的前端API和服务端API,您可以基于这些API来实现您的小程序功能,更多请拜见小程序 API 使用阐明。
   
         五、 安装Python开发情况并创建项目

             1.  下载安装Python开发包。
     2.  打开本地下令行终端,使用pip安装以下依赖。
     阐明: 按下快捷键win+r,在运行窗口输入powershell后回车可打开下令行终端。
         
  1. # 阿里云SDK核心库
  2. pip install aliyun-python-sdk-core
  3. # 阿里云ECS SDK
  4. pip install aliyun-python-sdk-ecs
  5. # 轻量级Web框架flask
  6. pip install flask
复制代码
         3.  下载安装Python开发的集成情况Pycharm。
     4.  打开PyCharm。
     5.  单击Create New Project
     

     6.  选择项目路径,然后单击Create完成项目创建。
     
           六、开发后端服务

                1.  右键单击PyCharm项目根目录,依次选择New > Python File
      2.  输入Python File文件名,例如:GetServerInfo,然后选择Python File完成文件创建。
      3.  在新建的Python文件中新增以下内容,并将代码中的accessKeyId、accessSecret修改为您自己的AK信息。
            
  1. # -*- coding: utf-8 -*-
  2. from flask import Flask, jsonify, request
  3. from aliyunsdkcore.client import AcsClient
  4. import json
  5. from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest, DescribeInstanceStatusRequest
  6. app = Flask(__name__)
  7. accessKeyId = 'LTAI4G4dnpbmKBCgug4*****'
  8. accessSecret = 'gBivN1nYujUGTBgM448Nt5xex*****'
  9. region = 'cn-shenzhen'
  10. client = AcsClient(accessKeyId, accessSecret, region)
  11. # 在app.route装饰器中声明响应的URL和请求方法
  12. @app.route('/ecs/getServerInfo', methods=['GET'])
  13. def getServerInfo():
  14.     # GET方式获取请求参数
  15.     instanceId = request.args.get("instanceId")
  16.     if instanceId is None:   
  17.         return "Invalid Parameter"
  18.     # 查询实例信息
  19.     describeInstancesRequest = DescribeInstancesRequest.DescribeInstancesRequest()
  20.     describeInstancesRequest.set_InstanceIds([instanceId])
  21.     describeInstancesResponse = client.do_action_with_exception(describeInstancesRequest)
  22.     # 返回数据为bytes类型,需要将bytes类型转换为str然后反序列化为json对象
  23.     describeInstancesResponse = json.loads(str(describeInstancesResponse, 'utf-8'))
  24.     instanceInfo = describeInstancesResponse['Instances']['Instance'][0]
  25.     # 查询实例状态
  26.     describeInstanceStatusRequest = DescribeInstanceStatusRequest.DescribeInstanceStatusRequest()
  27.     describeInstanceStatusRequest.set_InstanceIds([instanceId])
  28.     describeInstanceStatusResponse = client.do_action_with_exception(describeInstanceStatusRequest)
  29.     describeInstanceStatusResponse = json.loads(str(describeInstanceStatusResponse, 'utf-8'))
  30.     instanceStatus = describeInstanceStatusResponse['InstanceStatuses']['InstanceStatus'][0]['Status']
  31.     # 封装结果
  32.     result = {
  33.         # cpu数
  34.         'Cpu': instanceInfo['Cpu'],
  35.         # 内存大小
  36.         'Memory': instanceInfo['Memory'],
  37.         # 操作系统名称
  38.         'OSName': instanceInfo['OSName'],
  39.         # 实例规格
  40.         'InstanceType': instanceInfo['InstanceType'],
  41.         # 实例公网IP地址
  42.         'IpAddress': instanceInfo['PublicIpAddress']['IpAddress'][0],
  43.         # 公网出带宽最大值
  44.         'InternetMaxBandwidthOut': instanceInfo['InternetMaxBandwidthOut'],
  45.         # 实例状态
  46.         'instanceStatus': instanceStatus
  47.     }
  48.     return jsonify(result)
  49. if __name__ == "__main__":
  50.     app.run()
复制代码
           阐明: 您可以访问AccessKey 管理创建和查看您的AccessKey。代码中涉及到的API的更多参数阐明请拜见DescribeInstances和DescribeInstanceStatus。
      
      七、本地调试

      1.  本地运行后端服务。在GetServerInfo.py文件空白处右键单击选择Run 'GetServerInfo',或者使用快捷键Ctrl+Shift+F10快速运行Python文件。
      2.  关闭小程序开发者工具的HTTPS安全性校验。
    a. 单击工具栏设置 > 项目设置 > 本地设置
          b. 在本地设置中勾选不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书
      3.  接下来您可以调用本地后端服务进行小程序的调试。
             八、部署uWSGI Server

                   本教程使用的服务器操纵系统版本为Ubuntu Server 18.04 LTS,该版本内置了Python3情况。假如您在使用其他版本的操纵系统,例如CentOS6.x、CentOS7.x,需要您自行配置Python3情况。
       1.  在终端中输入下令ssh -V。
       假如显示SSH版本则表示已安装,如下图所示。
      

       假如未安装,请下载安装OpenSSH工具。
       2.  在终端中输入下令以下下令,将服务端程序上传到服务器上。
              
  1. scp D:\workspace\python\ECSAssistant\GetServerInfo.py root@123.123.123.123:/root/
复制代码
             阐明:
       scp下令的第一个参数为源文件路径,此处为本地文件路径;第二个参数分为三部门,分别是远程服务器的认证用户名、IP地址和要上传到的远程目录。
       3.  输入以下下令毗连服务器,然后根据提示输入您的服务器密码。
              
  1. ssh root@123.123.123.123
复制代码
             登录乐成后会显示如下信息。
      

       4.  执行以下下令安装Python依赖。
              
  1. # 阿里云SDK核心库
  2. pip3 install aliyun-python-sdk-core
  3. # 阿里云ECS SDK
  4. pip3 install aliyun-python-sdk-ecs
  5. # 轻量级Web框架flask
  6. pip3 install flask
  7. # Web Server
  8. pip3 install uwsgi
复制代码
             5.  新建uwsgi配置文件。
              
  1. mkdir /data&&cd /data &&vim uwsgi.ini
复制代码
             按下i键进入编辑模式,新增以下内容。
              
  1. [uwsgi]
  2. #uwsgi启动时所使用的地址和端口
  3. socket=127.0.0.1:5000
  4. #指向网站目录
  5. chdir=/data
  6. #python启动程序文件
  7. wsgi-file=GetServerInfo.py
  8. #python程序内用以启动的application变量名
  9. callable=app
  10. #处理器数
  11. processes=4
  12. #线程数
  13. threads=2
  14. #状态检测地址
  15. stats=127.0.0.1:9191
  16. #保存启动之后主进程的pid
  17. pidfile=uwsgi.pid
  18. #设置uwsgi后台运行,uwsgi.log保存日志信息 自动生成
  19. daemonize=uwsgi.log
复制代码
              编辑完成后按Esc键退出编辑模式,然后输入:wq退出编辑器。
       6.  运行uwsgi server。
              
  1. mv /root/GetServerInfo.py /data
  2. uwsgi uwsgi.ini
复制代码
             7.  执行以下下令验证HTTPS服务部署情况。
       阐明:        请将api.aliyuntest.com改为您的服务器域名。
               
  1. curl https://api.aliyuntest.com/ecs/getServerInfo
复制代码
               下令执行结果如下表示HTTPS服务部署乐成。
      

                        九、部署Nginx并配置HTTPS

             1.  付出宝小程序要求正式情况中小程序与服务端通讯必须使用HTTPS,所以您需要申请一个SSL证书。阿里云为个人开发者提供免费的SSL证书分发服务,请参考文档申请免费DV证书,申请一个SSL证书并进行域名验证。
     2.  SSL证书申请审核通过后,将证书上传到您的服务器上,证书文件包括一个.pem和一个.key文件。文件上传下令请拜见步骤9.2。
     3.  在服务器上执行以下下令安装Nginx。
         
  1. apt-get update
  2. apt-get -y install nginx
复制代码
         4.  新建Nginx配置文件。
         
  1. vim /etc/nginx/sites-available/app.example.com
复制代码
         您可以将文件名修改为自己的域名。在文件中新增以下内容。
     注意: 请更换下面文件内容中的域名和证书存放地址。
         
  1. server {
  2.     # ssl证书使用443
  3.     listen 443 ssl default_server;
  4.     # listen [::]:443 ssl default_server;
  5.     # 后面是域名
  6.     server_name app.example.com;
  7.     # 证书.pem的存放地址
  8.     ssl_certificate   /data/ssl/1752675_app.example.com.pem;
  9.     # 证书.key的存放地址
  10.     ssl_certificate_key  /data/ssl/1752675_app.example.com.key;
  11.     ssl_session_timeout  5m;
  12.     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  13.     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  14.     ssl_prefer_server_ciphers on;
  15.     root /var/www/html;
  16.     # Add index.php to the list if you are using PHP
  17.     index index.html index.htm index.nginx-debian.html;
  18.     server_name _;
  19.     location / {
  20.         # 转发端口
  21.         uwsgi_pass  127.0.0.1:5000;
  22.         include uwsgi_params;
  23.     }
  24. }
复制代码
         5.  将配置文件拷贝到/etc/nginx/sites-enabled/目录下。
         
  1. ln -s /etc/nginx/sites-available/app.example.com /etc/nginx/sites-enabled/app.example.com
复制代码
         6.  启动Nginx。
         
  1. service nginx start
复制代码
            十、上线小程序

    1.  请将小程序pages/index/index.js代码中的本地后端服务地址改为您的后端服务器域名,通讯协议改为HTTPS,例如:
   
  1. https://api.aliyuntest.com/ecs/getServiceInfo
复制代码
   

    2.  单击右上角工具栏上传,然后在弹出的对话框中单击上传,根据提示输入上传版本号并完成上传。
   

    上传乐成后会弹出如下提示。
   

    3.  在付出宝开放平台中,单击开发服务 > 版本管理,查看已上传的开发版本。
   

    4.  单击提交审核,填写审核信息。
    5.  审核通过后,管理员的微信中会收到小程序通过审核的关照。在审核版本右边单击上线,就可以在微信客户端中查看小程序了。 上架之后即为线上版本。有关小程序生命周期的更多信息请拜见小程序协同工作和发布。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

水军大提督

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表