48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from rest_framework.decorators import permission_classes
|
|
from rest_framework.permissions import AllowAny
|
|
from rest_framework.views import APIView
|
|
|
|
from rest_framework.response import Response
|
|
from rest_framework import status
|
|
|
|
import requests
|
|
import json
|
|
|
|
import requests
|
|
import random
|
|
import json
|
|
from hashlib import md5
|
|
|
|
|
|
def make_md5(s, encoding='utf-8'):
|
|
return md5(s.encode(encoding)).hexdigest()
|
|
|
|
@permission_classes([AllowAny])
|
|
class BaiduFanyiView(APIView):
|
|
def post(self, request):
|
|
print(request.data)
|
|
|
|
# Set your own appid/appkey.
|
|
appid = '20220718001275847'
|
|
appkey = 'CJHmvf7qGs3szQy32cMg'
|
|
|
|
from_lang = 'en'
|
|
to_lang = 'zh'
|
|
|
|
endpoint = 'http://api.fanyi.baidu.com'
|
|
path = '/api/trans/vip/translate'
|
|
url = endpoint + path
|
|
|
|
query = request.data['q']
|
|
|
|
salt = random.randint(32768, 65536)
|
|
sign = make_md5(appid + query + str(salt) + appkey)
|
|
|
|
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
|
|
payload = {'appid': appid, 'q': query, 'from': from_lang, 'to': to_lang, 'salt': salt, 'sign': sign}
|
|
|
|
r = requests.post(url, params=payload, headers=headers)
|
|
result = r.json()
|
|
|
|
|
|
return Response(result, status=status.HTTP_200_OK) |