服务器上布置python问答接口

1.在本机上试运行 用flask布置本地访问和返回

@app.route('/', methods=['POST', 'GET'])
def get_text_input():
    # http://192.168.43.75:5002/?inputStr="神经病"
    # 如果遇到显示问题:下载QQ浏览器,将编码设置为utf-8
    text = request.args.get('inputStr')
    print(text)
    return aiqa(text)
if __name__ == "__main__":
#     # 这种是不太推荐的启动方式,我这只是做演示用,官方启动方式参见:http://flask.pocoo.org/docs/0.12/quickstart/#a-minimal-application
    app.run(host='0.0.0.0',debug=True)

结果:

image.png

2.布置到服务器上面 查看本机运行环境

python -m pip list

配置服务器环境

pip3 install py2neo==3.1.2
pip3 install jieba==0.39
pip3 install flask==0.11.1

3.把访问的端口改成本地的IP,其他服务器可以进行访问

app.run(host='192.168.0.74',port=50001,debug=True)

4.遇到的问题

  • 本地端口被占用 解决办法:
查看已经连接的服务端口(ESTABLISHED)

netstat -a

查看所有的服务端口(LISTEN,ESTABLISHED)

netstat -ap

查看指定端口,可以结合grep命令:

netstat -ap | grep 8080

 也可以使用lsof命令:

lsof -i:8888

若要关闭使用这个端口的程序,使用kill + 对应的pid

kill -9 PID号
查看端口
netstat -ap | grep 50001
结果:
tcp        0      0 192.168.0.74:50001      *:*                     LISTEN      43887/python3   

终结端口:

kill -9 43887
  • python3编码问题
UnicodeEncodeError 'ascii' codec can't encode characters in position 0-1

原因分析: https://blog.csdn.net/TH_NUM/article/details/80450607 解决办法: 运行代码时候前面加上:

PYTHONIOENCODING=utf-8 python your_script.py
  • ajax请求flask需要添加跨域请求
app = Flask(__name__)

# 跨域支持
def after_request(resp):
    resp.headers['Access-Control-Allow-Origin'] = '*'
    return resp

app.after_request(after_request)

网址:https://blog.zengrong.net/post/2615.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券