python 调用百度翻译接口,使用flask 提供接口,实现线上翻译功能

#conding=utf-8
from flask import Flask, redirect, url_for, request, render_template, send_from_directory
import json
import requests
import random
import urllib
import hashlib
import time
app = Flask(__name__)

@app.route('/',methods=["POST"])
def fanyi_interface():
    src = request.form

    from_lang = src["from_lang"]
    to_lang = src["to_lang"]
    msg = src["msg"]
    res = baidu_t(from_lang,to_lang,msg)
    return json.dumps(res)

LAST_TIME = 0
def baidu_t(from_lang,to_lang,msg):
    global LAST_TIME
    # Control QPS=1
    if round(time.time()) - LAST_TIME == 1:
        time.sleep(1)
    appid = '******'
    secret_key = '******'
    url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
    from_lang = from_lang  # 原文语种
    to_lang = to_lang  # 译文语种
    salt = random.randint(32768, 65536)
    sign = appid + msg + str(salt) + secret_key
    sign = hashlib.md5(sign.encode()).hexdigest()

    data = {
    "from":from_lang,
    "to": to_lang,
    "q": msg,
    "appid":appid,
    "salt":salt,
    "sign": sign,

    }
    headers = {
        "Content-Type": "application/x-www-form-urlencoded"
    }
    LAST_TIME = round(time.time())
    res = requests.post(url=url,data=data,headers=headers)
    print(res.json())
    return res.json()

if __name__ == '__main__':
    # while True:
    #     main()
    # language is
    # 自动检测	auto
    # 中文	zh
    # 英语	en
    # 繁体中文	cht
    # baidu_t(from_lang="zh",to_lang="cht",msg="公鸡")

    app.run(debug=True)

  

posted @ 2021-03-18 11:03  RoyFans  阅读(380)  评论(0编辑  收藏  举报