python - 从本地客户端计算机向 Ubuntu 服务器上的 Flask 服务器发送和接收数据

标签 python flask

有人可以帮我解答我的疑问吗?

在我的本地计算机上,我有一个用 Python 实现的服务器和客户端。 JSON 数据从客户端发送到服务器,服务器从中解析所需的数据并将结果作为 JSON 文件发送回客户端。这在我的本地机器上运行良好。我现在想在Ubuntu服务器上实现这个flask服务器,然后想要发送和接收数据。我正在尝试使用 mod_wsgi,如

中所述

https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps

我仍然无法将数据返回到我的本地计算机。这是我的代码:

客户端.py

import sys
import json
import requests
import time
import os
import glob

data_location = 'C:\\Users\\cathy\\Desktop\\data'  # folder containing all the data        
for root, directories, files in os.walk(data_location):
    for directory  in directories:
        loc = (data_location + '/' + directory + '/*')
        all_files = glob.glob(loc)
        for filename in all_files:
            f=open(filename)
            f=f.read().splitlines()
            payload = {'input': f}
            s = json.dumps(payload)
            #res = requests.post("http://127.0.0.1:5000/my_data/", json=s).json()
            res = requests.post("http://12.345.678.890/my_data/", json=s).json()
            #time.sleep(10)
            if res['employee_id']:
                print(res['employee_id'])
            if res['name']:
                print(res['name'])

服务器.py

from flask import Flask
from flask import request
import json
import re
import sys
import os
import time
from parsers import id_parser, name_parser
import spacy
import re
from datetime import datetime#
nlp = spacy.load('en_core_web_lg')
import glob
app = Flask(__name__) 


@app.route('/my_data/', methods = ['POST'])
def parsing_data():
    jsondata = request.get_json()
    data = json.loads(jsondata)
    requiredData=data['input']
    employee_id_=id_parser(requiredData)
    name=name_parser(requiredData)

    result = {'employee_id_': employee_id_, 'name':name}
    return json.dumps(result)


if __name__ == '__main__':
    app.run(debug=True)

最佳答案

尝试使用与 Flask 兼容的 Flask jsonify 方法,而不是 json.dump()

#......
from flask import jsonify
#......


@app.route('/my_data/', methods = ['POST'])
def parsing_data():
    #.....

    result = {'employee_id_': employee_id_, 'name':name}
    return jsonify(result)

我不确定它是否有帮助,但尝试一下。 :)

关于python - 从本地客户端计算机向 Ubuntu 服务器上的 Flask 服务器发送和接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52751900/

相关文章:

python - 如何在 Python JWT 中 token 过期时提取 JWT token 有效负载

python - 二维数组中的 NaN 插值。人口稀少

用于检查网站标签的 Python 脚本

python - flask子函数未产生结果

python - flask 蓝图索引URL不断添加斜杠

python - 为什么 request.method 没有被调用?

python - 上载1GB或更大的文件

python - Python 3.5.1 Shell 中的简单 http 服务器

python - 如何将泰米尔语unicode值数组转换为带有空格的python中的泰米尔语字符串?

python - pandas 计算列中相同元素的数量,如果数量很小则删除