Python3 は flask を介してサービスの小さな例を構築します

59bdfd21e0f9395083fb39e718dc45d4.png

序文

多くの関数は呼び出しの便宜のためにサービスにパッケージ化されており、サーバーの関数または関数コードはリクエストを通じて呼び出されます。

ここでは主に、一般的に使用される flask フレームワークの小さな例を示します。

コードには 2 つの部分があります。

  1. サーバーサーバー

  2. クライアントリクエスト終了

主に python3 を実装して、flask を使用してサービスの実装、リクエストの取得と投稿、json 文字列の送信、md5 乱数の返しなどを行います。

コードを具体的に見てみましょう。これはテンプレートでもあり、コピーして使用する方法が一目でわかります。

自分で設計する必要がある主な点は、異なるルートが異なる機能を持つモジュールに対応し、各モジュールが主に json またはバイト形式で送信される受信リクエスト データの異なる形式に対応することです。

コード

サーバー.py

import os
import sys

curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)

from flask import Flask, request
import hashlib
import json
import time


def __make_random_id__():
    src = 'filed_46546546464631361sdfsdfgsdgfsdgdsgfsd' + str(time.time())
    m1 = hashlib.md5()
    m1.update(src.encode())
    return m1.hexdigest()


app = Flask(__name__)


# 装饰器的作用是将请求http://ip:端口/che的路由映射到函数def get()上去
@app.route('/che', methods=['GET'])
def get():
    if request.method == 'GET':
        print('get')
        return "get request success"


@app.route('/woniu', methods=['POST'])
def post():
    if request.method == 'POST':
        print("post")
        response_data = request.json.get('data')
        nums = response_data['nums']
        return_data = json.dumps({
            'nums': str(nums - 1),
            'id': __make_random_id__()
        })
        return return_data


if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8000, threaded=True)

client.py

import requests

if __name__ == '__main__':
    # get 请求
    url = "http://localhost:8000/che"
    r = requests.get(url)
    print(r.text)

    # post 请求
    url = "http://localhost:8000/woniu"
    data = {"nums": 1024}
    r = requests.post(url, json={"data": data})
    print(r.text)

結果

サーバー コードを実行し、次にサービスを実行し、次にクライアント コードを実行して、サービスの実行をシミュレートし、クライアントがリクエストを送信します。

サーバーは以下を実行します。a52455b1e3862f9ba480cd6c312e4d2a.png

クライアントは以下を実行します:

cd0cbddda8a2378ffc944dc17a7da682.png
推荐阅读:

我的2022届互联网校招分享

我的2021总结

浅谈算法岗和开发岗的区别

互联网校招研发薪资汇总
2022届互联网求职现状,金9银10快变成铜9铁10!!

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记

发送【AI四大名著】获取四本经典AI电子书

おすすめ

転載: blog.csdn.net/qq_33431368/article/details/131027502