javascript - Python-Requests,如何动态接收url?

标签 javascript python python-requests

我查遍了 Stack Overflow,但没有找到这个问题的答案。

Python 脚本如何根据 JavaScript 函数调用动态接收 URL?

例如,在这个Stack Overflow question 中(下面复制的代码)如果 python 文件的名称是 abc.py 并且我调用了,我如何动态接收 url(在本例中是硬编码的) xhttp = new XMLHttpRequest(); 然后
xhttp.open("GET", "abc.py?token=123", true); 在一些带有 javascript 的 html 文件中?

from urllib.parse import urlparse
from urllib.parse import parse_qs
from urllib.parse import urlencode

url = 'http://example.com?param1=a&token=TOKEN_TO_REPLACE&param2=c'

o = urlparse(url)
query = parse_qs(o.query)
if query.get('token'):
    query['token'] = ['NEW_TOKEN', ]
    new_query = urlencode(query, doseq=True)
    url.split('?')[0] + '?' + new_query

>>> http://example.com?param2=c&param1=a&token=NEW_TOKEN

最佳答案

您需要使用框架来执行此操作,没有网络/套接字功能的 python 脚本无法与前端(js 端)通信,下面是一个简单的后端,用于使用 bottle.py 接收您的 javascript 请求

这是一个简单的实现,它接收来自客户端的 POST 请求并执行您需要的逻辑,更新的 url 返回到调用代码。

请注意,请求是 POST,数据是带有 token 和 url 的 json

from bottle import post, run, request
import json

from urllib.parse import urlparse
from urllib.parse import parse_qs
from urllib.parse import urlencode


def replace_token(data):
    url = data['url']
    token = data['token']
    o = urlparse(url)
    query = parse_qs(o.query)
    if query.get('token'):
        query['token'] = [token]
        new_query = urlencode(query, doseq=True)
        return url.split('?')[0] + '?' + new_query



@post('/token')
def index():
    data = json.load(request.body)
    return replace_token(data)

run(host='localhost', port=8080, debug=True)

然后你可以通过简单地使用curl来测试它

curl -X POST http://localhost:8080/token -d '{"token":"NEW_TOKEN", "url":"http://example.com?param1=a&token=TOKEN_TO_REPLACE&param2=c"}'

关于javascript - Python-Requests,如何动态接收url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48019321/

相关文章:

python - numpy pad 是如何实现的(对于常量值)

python - 如果 csv 存储为变量,如何使用 pandas read_csv() 方法?

python - 调试python请求模块400错误

python - 请求模块中的数据有效负载?

javascript - 是否存在使用 reduce() 方法创建数组来存储名称 :value pairs? 的情况

javascript - 如何根据两个不同的环境更改图像 src 属性?

python - 使 "states"in transitions fsm package more "stateful"

python - 如何在Python中使用paramiko发送控制信号?

javascript - 在页面加载时清除/重新应用表排序器过滤

javascript - 我如何渲染和使用自定义 HTML 标签,例如 <g :plusone/>?