http+pbインターフェース/jsonを呼び出してhttp/パッケージサービスの全流れをまとめてください.
2860 ワード
1.http+pbインターフェースを呼び出す
protobfulをダウンロードします
具体的な使用手順:1.まずプロファイルをprotocでpyファイルにコンパイルします.
具体的にはpythonコードを実行します.
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())