国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python可以做小程序研發(fā)嘛,如何用python做小程序

這篇具有很好參考價值的文章主要介紹了python可以做小程序研發(fā)嘛,如何用python做小程序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本篇文章給大家談?wù)刾ython可以做小程序研發(fā)嘛,以及如何用python做小程序,希望對各位有所幫助,不要忘了收藏本站喔。

python小程序,python

目錄

一、申請賬號

二、安裝小程序開發(fā)環(huán)境并創(chuàng)建項目

三、初識小程序項目結(jié)構(gòu)

四、開發(fā)小程序

五、 安裝Python開發(fā)環(huán)境并創(chuàng)建項目

六、開發(fā)后端服務(wù)

七、本地調(diào)試

八、部署uWSGI Server

九、部署Nginx并配置HTTPS

十、上線小程序


一、申請賬號

1.? 進入小程序注冊頁根據(jù)指引填寫信息和提交相應(yīng)的資料,完成賬號申請。

說明:?如果跳轉(zhuǎn)后頁面出現(xiàn)錯誤,請刷新訪問神碼ai火車頭偽原創(chuàng)插件怎么用。

python小程序,python

2.? 使用申請的微信公眾平臺賬號登錄小程序后臺,單擊開發(fā)?>?開發(fā)設(shè)置,可以看到小程序的AppID,請記錄AppID,后續(xù)操作中需要使用。

python小程序,python

3.? 在開發(fā)設(shè)置?>?服務(wù)器域名?>?request合法域名中填入您的已備案域名。

二、安裝小程序開發(fā)環(huán)境并創(chuàng)建項目

1.? 安裝Node.js開發(fā)環(huán)境,請到Node.js頁面下載并安裝Node.js環(huán)境。

2.? 下載并安裝微信小程序開發(fā)工具。詳細信息請參見開發(fā)工具下載。

3.? 打開小程序開發(fā)工具,然后使用微信掃碼登錄。

4.? 單擊加號創(chuàng)建微信小程序示例項目。

python小程序,python

5.? 參考以下填寫項目信息,最后單擊新建。

  • 項目名稱:例如ECSAssistant。
  • 目錄:例如D:\workspace\wechat\ECSAssistant。
  • AppID:小程序的唯一標識,從小程序控制臺獲取,參見步驟一。
  • 開發(fā)模式:小程序。
  • 后端服務(wù):不使用云服務(wù)。

python小程序,python

三、初識小程序項目結(jié)構(gòu)

生成的的小程序示例項目結(jié)構(gòu)如下。

ECSAssistant
├── app.js
├── app.json
├── app.wxss
├── pages
│   ├── index
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   └── logs
│       ├── logs.js
│       ├── logs.json
│       ├── logs.wxml
│       └── logs.wxss
├── project.config.json
├── sitemap.json
└── utils
    └── util.js

可以看到小程序的項目結(jié)構(gòu)中有三種前綴為app的文件,它們定義了小程序的一些全局配置。

  • app.json 是小程序的全局配置,用于配置小程序的頁面列表、默認窗口標題、導(dǎo)航欄背景色等。更多請參見全局配置。
  • app.acss 定義了全局樣式,作用于當前小程序的所有頁面。
  • app.js 用于注冊小程序應(yīng)用,可配置小程序的生命周期,聲明全局數(shù)據(jù),調(diào)用豐富的 API。

小程序所有的頁面文件都在pages/路徑下,頁面文件有四種文件類型,分別是.js、.wxml.wcss、和.json后綴的文件。相比全局配置文件,頁面配置文件只對當前頁面生效。其中.wxml文件定義了當前頁面的頁面結(jié)構(gòu)。小程序中的所有頁面都需要在app.json文件中聲明。更多請參見代碼構(gòu)成。

此外,項目頂層還有開發(fā)工具配置文件project.config.json和爬蟲索引文件sitemap.json。

四、開發(fā)小程序

1.? 編輯app.json文件,將小程序頁面Title修改為ECS小助手,修改后的app.json文件內(nèi)容如下。

{
  "pages":[
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "ECS小助手",
    "navigationBarTextStyle":"black"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"
}

2.? 編輯pages/index/index.wxml文件,定義index頁面的頁面結(jié)構(gòu),修改后的index.wxml文件內(nèi)容如下。

<view class='container'>
  <input placeholder='請輸入你的ECS實例ID' class='search-input' value='{{ inputValue }}' bindblur='bindblur'></input>
  <view class='resultView' hidden='{{ showView }}'>
    <text class='result'>CPU數(shù):{{queryResult.Cpu}} 核</text>
    <text class='result'>內(nèi)存大小:{{queryResult.Memory}} MB</text>
    <text class='result'>操作系統(tǒng):{{queryResult.OSName}}</text>
    <text class='result'>實例規(guī)格:{{queryResult.InstanceType}}</text>
    <text class='result'>公網(wǎng)IP地址:{{queryResult.IpAddress}}</text>
    <text class='result'>網(wǎng)絡(luò)帶寬:{{queryResult.InternetMaxBandwidthOut}} MB/s</text>
    <text class='result'>在線狀態(tài):{{queryResult.instanceStatus == 'Running' ? '運行中':'已關(guān)機'}}</text>
  </view>
</view>

3.? 編輯pages/index/index.wxss文件,定義index的頁面樣式,修改后的index.wxss文件內(nèi)容如下。

.search-input {
  position: relative;
  margin-bottom: 50rpx;
  padding-left:80rpx;
  line-height: 70rpx;
  height: 80rpx;
  box-sizing: border-box;
  border: 2px solid #ff8f0e;
  border-radius: 100rpx;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: border 0.2s;
}

.resultView {
  margin-top: 70rpx;
}
.result {
  position: relative;
  left: 30rpx;
  display: list-item;
  font-size: small;
}

4.? 編輯pages/index/index.js文件,定義搜索框的失去焦點事件,修改后的index.js文件內(nèi)容如下。

Page({
  data: {
    queryResult: null,
    showView: 'false',
  },


  bindblur: function(e) {
    let that = this;
    wx.request({
      url: 'http://127.0.0.1:5000/ecs/getServerInfo',
      method: 'GET',
      data: {
        instanceId: e.detail.value
      },
      success(res) {
        if(res.statusCode == 200){
          that.setData({
            queryResult: res.data,
            showView: !that.data.showView,
          });
        }else{
          that.setData({
            showView: 'false',
          });
          wx.showToast({
            title: '請輸入正確的實例ID',
            duration: 1500,
            icon: 'none',
            mask: true
          })
        }
      }

    })
  }
})

說明:?微信小程序提供了豐富的前端API和服務(wù)端API,您可以基于這些API來實現(xiàn)您的小程序功能,更多請參見小程序 API 使用說明。

五、 安裝Python開發(fā)環(huán)境并創(chuàng)建項目

1.? 下載安裝Python開發(fā)包。

2.? 打開本地命令行終端,使用pip安裝以下依賴。

說明:?按下快捷鍵win+r,在運行窗口輸入powershell后回車可打開命令行終端。

# 阿里云SDK核心庫
pip install aliyun-python-sdk-core
# 阿里云ECS SDK
pip install aliyun-python-sdk-ecs
# 輕量級Web框架flask
pip install flask

3.? 下載安裝Python開發(fā)的集成環(huán)境Pycharm。

4.? 打開PyCharm。

5.? 單擊Create New Project。

python小程序,python

6.? 選擇項目路徑,然后單擊Create完成項目創(chuàng)建。

六、開發(fā)后端服務(wù)

1.? 右鍵單擊PyCharm項目根目錄,依次選擇New?>?Python File。

2.? 輸入Python File文件名,例如:GetServerInfo,然后選擇Python File完成文件創(chuàng)建。

3.? 在新建的Python文件中新增以下內(nèi)容,并將代碼中的accessKeyId、accessSecret修改為您自己的AK信息。

# -*- coding: utf-8 -*-
from flask import Flask, jsonify, request
from aliyunsdkcore.client import AcsClient
import json
from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest, DescribeInstanceStatusRequest

app = Flask(__name__)

accessKeyId = 'LTAI4G4dnpbmKBCgug4*****'
accessSecret = 'gBivN1nYujUGTBgM448Nt5xex*****'
region = 'cn-shenzhen'
client = AcsClient(accessKeyId, accessSecret, region)

# 在app.route裝飾器中聲明響應(yīng)的URL和請求方法
@app.route('/ecs/getServerInfo', methods=['GET'])
def getServerInfo():
    # GET方式獲取請求參數(shù)
    instanceId = request.args.get("instanceId")
    if instanceId is None:    
        return "Invalid Parameter"
    # 查詢實例信息
    describeInstancesRequest = DescribeInstancesRequest.DescribeInstancesRequest()
    describeInstancesRequest.set_InstanceIds([instanceId])
    describeInstancesResponse = client.do_action_with_exception(describeInstancesRequest)
    # 返回數(shù)據(jù)為bytes類型,需要將bytes類型轉(zhuǎn)換為str然后反序列化為json對象
    describeInstancesResponse = json.loads(str(describeInstancesResponse, 'utf-8'))
    instanceInfo = describeInstancesResponse['Instances']['Instance'][0]

    # 查詢實例狀態(tài)
    describeInstanceStatusRequest = DescribeInstanceStatusRequest.DescribeInstanceStatusRequest()
    describeInstanceStatusRequest.set_InstanceIds([instanceId])
    describeInstanceStatusResponse = client.do_action_with_exception(describeInstanceStatusRequest)
    describeInstanceStatusResponse = json.loads(str(describeInstanceStatusResponse, 'utf-8'))
    instanceStatus = describeInstanceStatusResponse['InstanceStatuses']['InstanceStatus'][0]['Status']

    # 封裝結(jié)果
    result = {
        # cpu數(shù)
        'Cpu': instanceInfo['Cpu'],
        # 內(nèi)存大小
        'Memory': instanceInfo['Memory'],
        # 操作系統(tǒng)名稱
        'OSName': instanceInfo['OSName'],
        # 實例規(guī)格
        'InstanceType': instanceInfo['InstanceType'],
        # 實例公網(wǎng)IP地址
        'IpAddress': instanceInfo['PublicIpAddress']['IpAddress'][0],
        # 公網(wǎng)出帶寬最大值
        'InternetMaxBandwidthOut': instanceInfo['InternetMaxBandwidthOut'],
        # 實例狀態(tài)
        'instanceStatus': instanceStatus
    }
    return jsonify(result)


if __name__ == "__main__":
    app.run()

說明:?您可以訪問AccessKey 管理創(chuàng)建和查看您的AccessKey。代碼中涉及到的API的更多參數(shù)說明請參見DescribeInstances和DescribeInstanceStatus。

七、本地調(diào)試

1.? 本地運行后端服務(wù)。在GetServerInfo.py文件空白處右鍵單擊選擇Run 'GetServerInfo',或者使用快捷鍵Ctrl+Shift+F10快速運行Python文件。

2.? 關(guān)閉小程序開發(fā)者工具的HTTPS安全性校驗。
? ? a. 單擊工具欄設(shè)置?>?項目設(shè)置?>?本地設(shè)置。

? ? b. 在本地設(shè)置中勾選不校驗合法域名、web-view(業(yè)務(wù)域名)、TLS版本以及HTTPS證書。

3.? 接下來您可以調(diào)用本地后端服務(wù)進行小程序的調(diào)試。

八、部署uWSGI Server

本教程使用的服務(wù)器操作系統(tǒng)版本為Ubuntu Server 18.04 LTS,該版本內(nèi)置了Python3環(huán)境。如果您在使用其他版本的操作系統(tǒng),例如CentOS6.x、CentOS7.x,需要您自行配置Python3環(huán)境。

1.? 在終端中輸入命令ssh -V。

如果顯示SSH版本則表示已安裝,如下圖所示。

python小程序,python

如果未安裝,請下載安裝OpenSSH工具。

2.? 在終端中輸入命令以下命令,將服務(wù)端程序上傳到服務(wù)器上。

scp D:\workspace\python\ECSAssistant\GetServerInfo.py root@123.123.123.123:/root/

說明:

scp命令的第一個參數(shù)為源文件路徑,此處為本地文件路徑;第二個參數(shù)分為三部分,分別是遠程服務(wù)器的認證用戶名、IP地址和要上傳到的遠程目錄。

3.? 輸入以下命令連接服務(wù)器,然后根據(jù)提示輸入您的服務(wù)器密碼。

ssh root@123.123.123.123

登錄成功后會顯示如下信息。

python小程序,python

4.? 執(zhí)行以下命令安裝Python依賴。

# 阿里云SDK核心庫
pip3 install aliyun-python-sdk-core
# 阿里云ECS SDK
pip3 install aliyun-python-sdk-ecs
# 輕量級Web框架flask
pip3 install flask
# Web Server
pip3 install uwsgi

5.? 新建uwsgi配置文件。

mkdir /data&&cd /data &&vim uwsgi.ini

按下i鍵進入編輯模式,新增以下內(nèi)容。

[uwsgi]
#uwsgi啟動時所使用的地址和端口
socket=127.0.0.1:5000
#指向網(wǎng)站目錄
chdir=/data

#python啟動程序文件
wsgi-file=GetServerInfo.py
#python程序內(nèi)用以啟動的application變量名
callable=app

#處理器數(shù)
processes=4

#線程數(shù)
threads=2

#狀態(tài)檢測地址
stats=127.0.0.1:9191

#保存啟動之后主進程的pid
pidfile=uwsgi.pid

#設(shè)置uwsgi后臺運行,uwsgi.log保存日志信息 自動生成
daemonize=uwsgi.log

?編輯完成后按Esc鍵退出編輯模式,然后輸入:wq退出編輯器。

6.? 運行uwsgi server。

mv /root/GetServerInfo.py /data
uwsgi uwsgi.ini

7.? 執(zhí)行以下命令驗證HTTPS服務(wù)部署情況。

說明:?

請將api.aliyuntest.com改為您的服務(wù)器域名。

?
curl https://api.aliyuntest.com/ecs/getServerInfo
?

命令執(zhí)行結(jié)果如下表示HTTPS服務(wù)部署成功。

python小程序,python

九、部署Nginx并配置HTTPS

1.? 支付寶小程序要求正式環(huán)境中小程序與服務(wù)端通信必須使用HTTPS,所以您需要申請一個SSL證書。阿里云為個人開發(fā)者提供免費的SSL證書分發(fā)服務(wù),請參考文檔申請免費DV證書,申請一個SSL證書并進行域名驗證。

2.? SSL證書申請審核通過后,將證書上傳到您的服務(wù)器上,證書文件包括一個.pem和一個.key文件。文件上傳命令請參見步驟9.2。

3.? 在服務(wù)器上執(zhí)行以下命令安裝Nginx。

apt-get update
apt-get -y install nginx

4.? 新建Nginx配置文件。

vim /etc/nginx/sites-available/app.example.com

您可以將文件名修改為自己的域名。在文件中新增以下內(nèi)容。

注意:?請?zhí)鎿Q下面文件內(nèi)容中的域名和證書存放地址。

server {
    # ssl證書使用443
    listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    # 后面是域名
    server_name app.example.com;

    # 證書.pem的存放地址
    ssl_certificate   /data/ssl/1752675_app.example.com.pem;
    # 證書.key的存放地址
    ssl_certificate_key  /data/ssl/1752675_app.example.com.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;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        # 轉(zhuǎn)發(fā)端口
        uwsgi_pass  127.0.0.1:5000;
        include uwsgi_params;
    }
}

5.? 將配置文件拷貝到/etc/nginx/sites-enabled/目錄下。

ln -s /etc/nginx/sites-available/app.example.com /etc/nginx/sites-enabled/app.example.com

6.? 啟動Nginx。

service nginx start

十、上線小程序

1.? 請將小程序pages/index/index.js代碼中的本地后端服務(wù)地址改為您的后端服務(wù)器域名,通信協(xié)議改為HTTPS,例如:

https://api.aliyuntest.com/ecs/getServiceInfo

python小程序,python

2.? 單擊右上角工具欄上傳,然后在彈出的對話框中單擊上傳,根據(jù)提示輸入上傳版本號并完成上傳。

python小程序,python

上傳成功后會彈出如下提示。

python小程序,python

3.? 在支付寶開放平臺中,單擊開發(fā)服務(wù)?>?版本管理,查看已上傳的開發(fā)版本。

python小程序,python

4.? 單擊提交審核,填寫審核信息。

5.? 審核通過后,管理員的微信中會收到小程序通過審核的通知。在審核版本右邊單擊上線,就可以在微信客戶端中查看小程序了。 上架之后即為線上版本。有關(guān)小程序生命周期的更多信息請參見小程序協(xié)同工作和發(fā)布。文章來源地址http://www.zghlxwxcb.cn/news/detail-752433.html

目錄

一、申請賬號

二、安裝小程序開發(fā)環(huán)境并創(chuàng)建項目

三、初識小程序項目結(jié)構(gòu)

四、開發(fā)小程序

五、 安裝Python開發(fā)環(huán)境并創(chuàng)建項目

六、開發(fā)后端服務(wù)

七、本地調(diào)試

八、部署uWSGI Server

九、部署Nginx并配置HTTPS

十、上線小程序


一、申請賬號

1.? 進入小程序注冊頁根據(jù)指引填寫信息和提交相應(yīng)的資料,完成賬號申請。

說明:?如果跳轉(zhuǎn)后頁面出現(xiàn)錯誤,請刷新訪問神碼ai火車頭偽原創(chuàng)插件怎么用。

python小程序,python

2.? 使用申請的微信公眾平臺賬號登錄小程序后臺,單擊開發(fā)?>?開發(fā)設(shè)置,可以看到小程序的AppID,請記錄AppID,后續(xù)操作中需要使用。

python小程序,python

3.? 在開發(fā)設(shè)置?>?服務(wù)器域名?>?request合法域名中填入您的已備案域名。

二、安裝小程序開發(fā)環(huán)境并創(chuàng)建項目

1.? 安裝Node.js開發(fā)環(huán)境,請到Node.js頁面下載并安裝Node.js環(huán)境。

2.? 下載并安裝微信小程序開發(fā)工具。詳細信息請參見開發(fā)工具下載。

3.? 打開小程序開發(fā)工具,然后使用微信掃碼登錄。

4.? 單擊加號創(chuàng)建微信小程序示例項目。

python小程序,python

5.? 參考以下填寫項目信息,最后單擊新建。

  • 項目名稱:例如ECSAssistant。
  • 目錄:例如D:\workspace\wechat\ECSAssistant。
  • AppID:小程序的唯一標識,從小程序控制臺獲取,參見步驟一。
  • 開發(fā)模式:小程序。
  • 后端服務(wù):不使用云服務(wù)。

python小程序,python

三、初識小程序項目結(jié)構(gòu)

生成的的小程序示例項目結(jié)構(gòu)如下。

ECSAssistant
├── app.js
├── app.json
├── app.wxss
├── pages
│   ├── index
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   └── logs
│       ├── logs.js
│       ├── logs.json
│       ├── logs.wxml
│       └── logs.wxss
├── project.config.json
├── sitemap.json
└── utils
    └── util.js

可以看到小程序的項目結(jié)構(gòu)中有三種前綴為app的文件,它們定義了小程序的一些全局配置。

  • app.json 是小程序的全局配置,用于配置小程序的頁面列表、默認窗口標題、導(dǎo)航欄背景色等。更多請參見全局配置。
  • app.acss 定義了全局樣式,作用于當前小程序的所有頁面。
  • app.js 用于注冊小程序應(yīng)用,可配置小程序的生命周期,聲明全局數(shù)據(jù),調(diào)用豐富的 API。

小程序所有的頁面文件都在pages/路徑下,頁面文件有四種文件類型,分別是.js、.wxml、.wcss、和.json后綴的文件。相比全局配置文件,頁面配置文件只對當前頁面生效。其中.wxml文件定義了當前頁面的頁面結(jié)構(gòu)。小程序中的所有頁面都需要在app.json文件中聲明。更多請參見代碼構(gòu)成。

此外,項目頂層還有開發(fā)工具配置文件project.config.json和爬蟲索引文件sitemap.json。

四、開發(fā)小程序

1.? 編輯app.json文件,將小程序頁面Title修改為ECS小助手,修改后的app.json文件內(nèi)容如下。

{
  "pages":[
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "ECS小助手",
    "navigationBarTextStyle":"black"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"
}

2.? 編輯pages/index/index.wxml文件,定義index頁面的頁面結(jié)構(gòu),修改后的index.wxml文件內(nèi)容如下。

<view class='container'>
  <input placeholder='請輸入你的ECS實例ID' class='search-input' value='{{ inputValue }}' bindblur='bindblur'></input>
  <view class='resultView' hidden='{{ showView }}'>
    <text class='result'>CPU數(shù):{{queryResult.Cpu}} 核</text>
    <text class='result'>內(nèi)存大?。簕{queryResult.Memory}} MB</text>
    <text class='result'>操作系統(tǒng):{{queryResult.OSName}}</text>
    <text class='result'>實例規(guī)格:{{queryResult.InstanceType}}</text>
    <text class='result'>公網(wǎng)IP地址:{{queryResult.IpAddress}}</text>
    <text class='result'>網(wǎng)絡(luò)帶寬:{{queryResult.InternetMaxBandwidthOut}} MB/s</text>
    <text class='result'>在線狀態(tài):{{queryResult.instanceStatus == 'Running' ? '運行中':'已關(guān)機'}}</text>
  </view>
</view>

3.? 編輯pages/index/index.wxss文件,定義index的頁面樣式,修改后的index.wxss文件內(nèi)容如下。

.search-input {
  position: relative;
  margin-bottom: 50rpx;
  padding-left:80rpx;
  line-height: 70rpx;
  height: 80rpx;
  box-sizing: border-box;
  border: 2px solid #ff8f0e;
  border-radius: 100rpx;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: border 0.2s;
}

.resultView {
  margin-top: 70rpx;
}
.result {
  position: relative;
  left: 30rpx;
  display: list-item;
  font-size: small;
}

4.? 編輯pages/index/index.js文件,定義搜索框的失去焦點事件,修改后的index.js文件內(nèi)容如下。

Page({
  data: {
    queryResult: null,
    showView: 'false',
  },


  bindblur: function(e) {
    let that = this;
    wx.request({
      url: 'http://127.0.0.1:5000/ecs/getServerInfo',
      method: 'GET',
      data: {
        instanceId: e.detail.value
      },
      success(res) {
        if(res.statusCode == 200){
          that.setData({
            queryResult: res.data,
            showView: !that.data.showView,
          });
        }else{
          that.setData({
            showView: 'false',
          });
          wx.showToast({
            title: '請輸入正確的實例ID',
            duration: 1500,
            icon: 'none',
            mask: true
          })
        }
      }

    })
  }
})

說明:?微信小程序提供了豐富的前端API和服務(wù)端API,您可以基于這些API來實現(xiàn)您的小程序功能,更多請參見小程序 API 使用說明。

五、 安裝Python開發(fā)環(huán)境并創(chuàng)建項目

1.? 下載安裝Python開發(fā)包。

2.? 打開本地命令行終端,使用pip安裝以下依賴。

說明:?按下快捷鍵win+r,在運行窗口輸入powershell后回車可打開命令行終端。

# 阿里云SDK核心庫
pip install aliyun-python-sdk-core
# 阿里云ECS SDK
pip install aliyun-python-sdk-ecs
# 輕量級Web框架flask
pip install flask

3.? 下載安裝Python開發(fā)的集成環(huán)境Pycharm。

4.? 打開PyCharm。

5.? 單擊Create New Project

python小程序,python

6.? 選擇項目路徑,然后單擊Create完成項目創(chuàng)建。

六、開發(fā)后端服務(wù)

1.? 右鍵單擊PyCharm項目根目錄,依次選擇New?>?Python File。

2.? 輸入Python File文件名,例如:GetServerInfo,然后選擇Python File完成文件創(chuàng)建。

3.? 在新建的Python文件中新增以下內(nèi)容,并將代碼中的accessKeyId、accessSecret修改為您自己的AK信息。

# -*- coding: utf-8 -*-
from flask import Flask, jsonify, request
from aliyunsdkcore.client import AcsClient
import json
from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest, DescribeInstanceStatusRequest

app = Flask(__name__)

accessKeyId = 'LTAI4G4dnpbmKBCgug4*****'
accessSecret = 'gBivN1nYujUGTBgM448Nt5xex*****'
region = 'cn-shenzhen'
client = AcsClient(accessKeyId, accessSecret, region)

# 在app.route裝飾器中聲明響應(yīng)的URL和請求方法
@app.route('/ecs/getServerInfo', methods=['GET'])
def getServerInfo():
    # GET方式獲取請求參數(shù)
    instanceId = request.args.get("instanceId")
    if instanceId is None:    
        return "Invalid Parameter"
    # 查詢實例信息
    describeInstancesRequest = DescribeInstancesRequest.DescribeInstancesRequest()
    describeInstancesRequest.set_InstanceIds([instanceId])
    describeInstancesResponse = client.do_action_with_exception(describeInstancesRequest)
    # 返回數(shù)據(jù)為bytes類型,需要將bytes類型轉(zhuǎn)換為str然后反序列化為json對象
    describeInstancesResponse = json.loads(str(describeInstancesResponse, 'utf-8'))
    instanceInfo = describeInstancesResponse['Instances']['Instance'][0]

    # 查詢實例狀態(tài)
    describeInstanceStatusRequest = DescribeInstanceStatusRequest.DescribeInstanceStatusRequest()
    describeInstanceStatusRequest.set_InstanceIds([instanceId])
    describeInstanceStatusResponse = client.do_action_with_exception(describeInstanceStatusRequest)
    describeInstanceStatusResponse = json.loads(str(describeInstanceStatusResponse, 'utf-8'))
    instanceStatus = describeInstanceStatusResponse['InstanceStatuses']['InstanceStatus'][0]['Status']

    # 封裝結(jié)果
    result = {
        # cpu數(shù)
        'Cpu': instanceInfo['Cpu'],
        # 內(nèi)存大小
        'Memory': instanceInfo['Memory'],
        # 操作系統(tǒng)名稱
        'OSName': instanceInfo['OSName'],
        # 實例規(guī)格
        'InstanceType': instanceInfo['InstanceType'],
        # 實例公網(wǎng)IP地址
        'IpAddress': instanceInfo['PublicIpAddress']['IpAddress'][0],
        # 公網(wǎng)出帶寬最大值
        'InternetMaxBandwidthOut': instanceInfo['InternetMaxBandwidthOut'],
        # 實例狀態(tài)
        'instanceStatus': instanceStatus
    }
    return jsonify(result)


if __name__ == "__main__":
    app.run()

說明:?您可以訪問AccessKey 管理創(chuàng)建和查看您的AccessKey。代碼中涉及到的API的更多參數(shù)說明請參見DescribeInstances和DescribeInstanceStatus。

七、本地調(diào)試

1.? 本地運行后端服務(wù)。在GetServerInfo.py文件空白處右鍵單擊選擇Run 'GetServerInfo',或者使用快捷鍵Ctrl+Shift+F10快速運行Python文件。

2.? 關(guān)閉小程序開發(fā)者工具的HTTPS安全性校驗。
? ? a. 單擊工具欄設(shè)置?>?項目設(shè)置?>?本地設(shè)置

? ? b. 在本地設(shè)置中勾選不校驗合法域名、web-view(業(yè)務(wù)域名)、TLS版本以及HTTPS證書。

3.? 接下來您可以調(diào)用本地后端服務(wù)進行小程序的調(diào)試。

八、部署uWSGI Server

本教程使用的服務(wù)器操作系統(tǒng)版本為Ubuntu Server 18.04 LTS,該版本內(nèi)置了Python3環(huán)境。如果您在使用其他版本的操作系統(tǒng),例如CentOS6.x、CentOS7.x,需要您自行配置Python3環(huán)境。

1.? 在終端中輸入命令ssh -V。

如果顯示SSH版本則表示已安裝,如下圖所示。

python小程序,python

如果未安裝,請下載安裝OpenSSH工具。

2.? 在終端中輸入命令以下命令,將服務(wù)端程序上傳到服務(wù)器上。

scp D:\workspace\python\ECSAssistant\GetServerInfo.py root@123.123.123.123:/root/

說明:

scp命令的第一個參數(shù)為源文件路徑,此處為本地文件路徑;第二個參數(shù)分為三部分,分別是遠程服務(wù)器的認證用戶名、IP地址和要上傳到的遠程目錄。

3.? 輸入以下命令連接服務(wù)器,然后根據(jù)提示輸入您的服務(wù)器密碼。

ssh root@123.123.123.123

登錄成功后會顯示如下信息。

python小程序,python

4.? 執(zhí)行以下命令安裝Python依賴。

# 阿里云SDK核心庫
pip3 install aliyun-python-sdk-core
# 阿里云ECS SDK
pip3 install aliyun-python-sdk-ecs
# 輕量級Web框架flask
pip3 install flask
# Web Server
pip3 install uwsgi

5.? 新建uwsgi配置文件。

mkdir /data&&cd /data &&vim uwsgi.ini

按下i鍵進入編輯模式,新增以下內(nèi)容。

[uwsgi]
#uwsgi啟動時所使用的地址和端口
socket=127.0.0.1:5000
#指向網(wǎng)站目錄
chdir=/data

#python啟動程序文件
wsgi-file=GetServerInfo.py
#python程序內(nèi)用以啟動的application變量名
callable=app

#處理器數(shù)
processes=4

#線程數(shù)
threads=2

#狀態(tài)檢測地址
stats=127.0.0.1:9191

#保存啟動之后主進程的pid
pidfile=uwsgi.pid

#設(shè)置uwsgi后臺運行,uwsgi.log保存日志信息 自動生成
daemonize=uwsgi.log

?編輯完成后按Esc鍵退出編輯模式,然后輸入:wq退出編輯器。

6.? 運行uwsgi server。

mv /root/GetServerInfo.py /data
uwsgi uwsgi.ini

7.? 執(zhí)行以下命令驗證HTTPS服務(wù)部署情況。

說明:?

請將api.aliyuntest.com改為您的服務(wù)器域名。

?
curl https://api.aliyuntest.com/ecs/getServerInfo
?

命令執(zhí)行結(jié)果如下表示HTTPS服務(wù)部署成功。

python小程序,python

九、部署Nginx并配置HTTPS

1.? 支付寶小程序要求正式環(huán)境中小程序與服務(wù)端通信必須使用HTTPS,所以您需要申請一個SSL證書。阿里云為個人開發(fā)者提供免費的SSL證書分發(fā)服務(wù),請參考文檔申請免費DV證書,申請一個SSL證書并進行域名驗證。

2.? SSL證書申請審核通過后,將證書上傳到您的服務(wù)器上,證書文件包括一個.pem和一個.key文件。文件上傳命令請參見步驟9.2。

3.? 在服務(wù)器上執(zhí)行以下命令安裝Nginx。

apt-get update
apt-get -y install nginx

4.? 新建Nginx配置文件。

vim /etc/nginx/sites-available/app.example.com

您可以將文件名修改為自己的域名。在文件中新增以下內(nèi)容。

注意:?請?zhí)鎿Q下面文件內(nèi)容中的域名和證書存放地址。

server {
    # ssl證書使用443
    listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    # 后面是域名
    server_name app.example.com;

    # 證書.pem的存放地址
    ssl_certificate   /data/ssl/1752675_app.example.com.pem;
    # 證書.key的存放地址
    ssl_certificate_key  /data/ssl/1752675_app.example.com.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;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        # 轉(zhuǎn)發(fā)端口
        uwsgi_pass  127.0.0.1:5000;
        include uwsgi_params;
    }
}

5.? 將配置文件拷貝到/etc/nginx/sites-enabled/目錄下。

ln -s /etc/nginx/sites-available/app.example.com /etc/nginx/sites-enabled/app.example.com

6.? 啟動Nginx。

service nginx start

十、上線小程序

1.? 請將小程序pages/index/index.js代碼中的本地后端服務(wù)地址改為您的后端服務(wù)器域名,通信協(xié)議改為HTTPS,例如:

https://api.aliyuntest.com/ecs/getServiceInfo

python小程序,python

2.? 單擊右上角工具欄上傳,然后在彈出的對話框中單擊上傳,根據(jù)提示輸入上傳版本號并完成上傳。

python小程序,python

上傳成功后會彈出如下提示。

python小程序,python

3.? 在支付寶開放平臺中,單擊開發(fā)服務(wù)?>?版本管理,查看已上傳的開發(fā)版本。

python小程序,python

4.? 單擊提交審核,填寫審核信息。

5.? 審核通過后,管理員的微信中會收到小程序通過審核的通知。在審核版本右邊單擊上線,就可以在微信客戶端中查看小程序了。 上架之后即為線上版本。有關(guān)小程序生命周期的更多信息請參見小程序協(xié)同工作和發(fā)布。

到了這里,關(guān)于python可以做小程序研發(fā)嘛,如何用python做小程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 微信小程序能用python寫嗎,可以用python做小程序嗎

    微信小程序能用python寫嗎,可以用python做小程序嗎

    大家好,小編來為大家解答以下問題,微信小程序用什么語言開發(fā)python,微信小程序可以用python開發(fā)嗎,現(xiàn)在讓我們一起來看看吧! 本篇文章給大家談?wù)動胮ython編寫一個小程序,以及如何用python做小軟件,希望對各位有所幫助,不要忘了收藏本站喔。 最近想學(xué)習(xí)利用Python進

    2024年02月03日
    瀏覽(26)
  • 畢業(yè)設(shè)計做小程序可以做什么,基于微信小程序的畢業(yè)設(shè)計題目

    博主介紹 :《Vue.js入門與商城開發(fā)實戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計教育和輔導(dǎo)。 所有項目都配有從入門到精通的基礎(chǔ)知識視頻課程,免費 項目配有對應(yīng)開發(fā)文檔、開題報告、任務(wù)書、PPT、論文模版

    2024年02月08日
    瀏覽(29)
  • 如何用手機編寫python代碼,手機上可以編寫python嗎

    如何用手機編寫python代碼,手機上可以編寫python嗎

    大家好,給大家分享一下手機有沒有可以編寫python的軟件下載,很多人還不知道這一點。下面詳細解釋一下。現(xiàn)在讓我們來看看! 這里介紹2個在可以在手機上編程Python的軟件,一個是QPython3,一個是Termux,其中QPython3集成了Python3解釋器,可以直接編寫運行Python程序,Termux類似

    2024年01月25日
    瀏覽(19)
  • 如何用python寫一個小程序,如何用python制作小程序

    如何用python寫一個小程序,如何用python制作小程序

    大家好,本文將圍繞用python編寫一個微信小程序展開說明,python制作小程序制作流程是一個很多人都想弄明白的事情,想搞清楚用python做一個微信小程序需要先了解以下幾個事情。 要用 Python 編寫小程序,您需要先確定您想要實現(xiàn)的功能或應(yīng)用程序。然后,您可以使用 Pytho

    2024年01月16日
    瀏覽(16)
  • 個人開發(fā)者還有必要做小程序嗎

    上次我更新了自己開發(fā)的小程序:一搜就學(xué)的收益,只有很少的收益,完全是出于自己的興趣做的,一開始是想著能夠躺著賺廣告費,多一份收入,但是實際情況卻打消了我繼續(xù)開發(fā)小程序的熱情,今天就來繼續(xù)深入談?wù)剛€人開發(fā)者還有沒有機會搞小程序賺到錢 如果你是一個

    2024年02月02日
    瀏覽(22)
  • 自己做小程序開個社區(qū)團購可行嗎?

    自己做小程序開個社區(qū)團購可行嗎?

    在如今的社交化時代,隨著社區(qū)經(jīng)濟的發(fā)展,越來越多的人開始探索社區(qū)團購的商業(yè)模式。而隨著小程序的普及,自己開發(fā)一個社區(qū)團購小程序也成為了一種可能。但是,自己做小程序開個社區(qū)團購真的可行嗎?我們來一起分析一下。 社區(qū)團購小程序是相對于傳統(tǒng)的超市、商

    2024年02月06日
    瀏覽(18)
  • 為什么說中小微做小程序就夠了?

    為什么說中小微做小程序就夠了?

    ? 中小微企業(yè)做小程序的優(yōu)勢在于: 費用低廉:相對于開發(fā)和維護App,小程序的開發(fā)成本和維護成本都較低,使得中小微企業(yè)可以以較少的資金和資源開展線上業(yè)務(wù)。 便于推廣:小程序可以通過微信的社交分享、公眾號導(dǎo)流等方式進行推廣,搭配出色的產(chǎn)品和服務(wù),可以更

    2024年02月16日
    瀏覽(8)
  • 如何用 python 設(shè)計一個兌獎程序?

    如何用 python 設(shè)計一個兌獎程序?

    ?? 個人網(wǎng)站:【海擁】【摸魚游戲】【神級源碼資源網(wǎng)】 ?? 前端學(xué)習(xí)課程:??【28個案例趣學(xué)前端】【400個JS面試題】 ?? 想尋找共同學(xué)習(xí)交流、摸魚劃水的小伙伴,請點擊【摸魚學(xué)習(xí)交流群】 設(shè)計一個兌獎程序通常需要考慮很多方面,包括獎品種類、兌獎規(guī)則、輸入輸出

    2024年02月02日
    瀏覽(29)
  • 如何用python搭建一個小程序

    要用 Python 搭建小程序,首先需要了解小程序的基本框架和構(gòu)建方式。 一種常用的方法是使用微信小程序框架,如微信小程序框架(mpvue)。這種框架可以使用 Vue.js 的語法來構(gòu)建小程序,并使用 Python 編寫后端邏輯。 步驟如下: 安裝 Node.js 和 Vue CLI。 使用 Vue CLI 創(chuàng)建一個新項目

    2024年02月12日
    瀏覽(22)
  • 用python編寫一個小程序,如何用python編寫軟件

    用python編寫一個小程序,如何用python編寫軟件

    大家好,給大家分享一下用python編寫一個小程序,很多人還不知道這一點。下面詳細解釋一下。現(xiàn)在讓我們來看看! 我想有人曲解意思了,人家說用python開發(fā)渣蔽一個手機app,不是說用手機敲寫python代碼,當然可以啊,只不過在電腦上開發(fā)的應(yīng)用軟件要進行打包什么的,才能

    2024年02月07日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包