Flask:如何将 url 作为输入传递?
Flask: How to pass url as an input?
要求是将 url 作为输入传递给端点。
url 可能如下所示:
"google.com:443/something/something.html?q=go+lang"
如何将它作为 localhost:5001/api/google.com:443/something/something.html?q=go+lang
传递给我的 api get 方法
目前,我正在使用 Flask 和 Flask-restful
即使我将 url 编码为
google.com%3A443%2Fsomething%2Fsomething.html%3Fq%3Dgo%2Blang
然后传给我的api
api.add_resource(UrlInfo, '/api/<encoded_url>')
系统不会把它当作一个整体。它将对其进行解码 return 404
请问有没有合适的方法可以让url整体通过?
url 可能在路径中包含多个级别(斜线)。我该如何处理?
谢谢
尝试
api.add_resource(UrlInfo, '/api/<path:encoded_url>')
参考:https://flask.palletsprojects.com/en/1.1.x/quickstart/#variable-rules
这是我试过的,绝对有效:
route('/testurl/<path:input_url>')
def testurl(input_url):
return input_url
URL 调用:http://127.0.0.1:5000/codesubmission/testurl/http://www.google.com/testthisout/
所以,您只是想遍历 URL 列表?这就是全部?下面的示例代码和反馈。
from bs4 import BeautifulSoup as BS
import requests
import pandas as pd
url_list = ['http://www.no1.com',
'http://www.no2.com',
'http://www.no3.com']
for link in url_list:
要求是将 url 作为输入传递给端点。
url 可能如下所示:
"google.com:443/something/something.html?q=go+lang"
如何将它作为 localhost:5001/api/google.com:443/something/something.html?q=go+lang
目前,我正在使用 Flask 和 Flask-restful 即使我将 url 编码为
google.com%3A443%2Fsomething%2Fsomething.html%3Fq%3Dgo%2Blang
然后传给我的api
api.add_resource(UrlInfo, '/api/<encoded_url>')
系统不会把它当作一个整体。它将对其进行解码 return 404
请问有没有合适的方法可以让url整体通过? url 可能在路径中包含多个级别(斜线)。我该如何处理?
谢谢
尝试
api.add_resource(UrlInfo, '/api/<path:encoded_url>')
参考:https://flask.palletsprojects.com/en/1.1.x/quickstart/#variable-rules
这是我试过的,绝对有效:
route('/testurl/<path:input_url>')
def testurl(input_url):
return input_url
URL 调用:http://127.0.0.1:5000/codesubmission/testurl/http://www.google.com/testthisout/
所以,您只是想遍历 URL 列表?这就是全部?下面的示例代码和反馈。
from bs4 import BeautifulSoup as BS
import requests
import pandas as pd
url_list = ['http://www.no1.com',
'http://www.no2.com',
'http://www.no3.com']
for link in url_list: