http+pbインターフェース/jsonを呼び出してhttp/パッケージサービスの全流れをまとめてください.


1.http+pbインターフェースを呼び出す
protobfulをダウンロードします
具体的な使用手順:1.まずプロファイルをprotocでpyファイルにコンパイルします.
protoc ./xxx.proto --python_out=./
2.test.pyファイルを作成し、生成したpb.2 pyファイルの着信パラメータクラスを呼び出して、パラメータクラスに戻ります.3.サーバー上でpython test.pyファイル
具体的にはpythonコードを実行します.
#-*-coding:utf-8-*-
syntax = "proto2";
#     pb.py  
import pb
import requests

URL = "http://ip:port/class"
#         
req = pb.Request()
req.business_id =bytes(101)
req.vid = bytes(''.encode('utf-8'))
req.title = bytes('')
#          
reqString= req.SerializeToString()
#    
res = requests.post(URL, data=reqString)
#         
target = pb.Response()
#      
target.ParseFromString(res.content)
#              
id=target.id
print(vid)
2.json httpサービスcmd命令を要求する:
curl -H "Content-Type: application/json" -X POST -d  '{ }'  http://ip:port/class
pythonコード:
①     json  
#   
req={
    }
URL = "http://%s:%d/class"%(host,port)
#    
res = requests.post(URL, json=req)
result = json.loads(res.text)

②  json      
url='http://ip:port/class'
values ={ }       #json 
dd = json.dumps(values)             #      JSON     
req = urllib2.Request(url, dd)       #            
response = urllib2.urlopen(req)       #       
print response.read()                    #             
3.パッケージサービス
from flask import Flask, request

app = Flask(__name__)

@app.route('/application', methods=['POST', 'GET'])
def main():
    pass
if __name__ == '__main__':
    app.run('0.0.0.0', 80)
付加:unicodeコードから中国語へ:
var=" "
var.encode().decode('utf8')

            "\\uXXXX" 、
t1  = eval(repr(t).replace("\\\\", "\\"))
画像はバイトストリーム形式に変わります.
from io import BytesIO
with open("xxx.jpg") as f:
    byte_image=BytesIO(f.read()).getvalue()
画像のbase 64フォーマット:
import base64
with open(file_path, "rb") as f:
     base64_data = base64.b64encode(f.read())
解析ピクチャURLアドレス:
from urllib import parse
parse.unquote("")
プロファイルを読み込み:
import configparser
cf = configparser.ConfigParser()
cf.read(file_path)
     :
cf.get("key1", "key2 ")

    ini.config  :
[key1]
key2=1000
ログ情報を追加
import logging
import traceback

#       
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

#       
handler_info = logging.FileHandler('info_log.txt')
handler_info.setLevel(logging.INFO)

#       
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler_info.setFormatter(formatter)
logger.addHandler(handler_info)

#      :
logger.info(traceback.format_exc())