javascript - 使用 Javascript 将 URL 参数发送到 Python REST API
问题描述
我正在尝试使用 Javascript 将 URL 参数发送到我在 Python 上编写的 API。我的Javascript代码如下:
function createGetRequest() {
var request = new XMLHttpRequest();
request.open('GET', 'some-link/api/', true);
request.onload = function() {
var data = JSON.parse(this.response);
document.getElementById("idk").innerHTML = data.news.entry_news_item_title + "</br>" + data.news.entry_news_item_snippet + "</br>"
+ data.news.entry_news_item_url;
}
request.send();
}
我的 Python REST API 代码如下;
def index():
NewsFeed = feedparser.parse("https://trends.google.com.tr/trends/trendingsearches/daily/rss?geo=TR")
entry = NewsFeed.entries[0]
return {"news" : {"Status" : "OK",
"item" : entry['title'],
"entry_news_item_title" : entry['ht_news_item_title'],
"entry_news_item_snippet" : entry['ht_news_item_snippet'],
"entry_news_item_url" : entry['ht_news_item_url']}}
我希望能够从用户那里获取条目的索引,然后返回相应的条目。换句话说,我希望entry = NewsFeed.entries[0]
零件接受一个变量而不是一个 0。我已经在网上尝试了所有东西,但我似乎无法弄清楚。
解决方案
在您的 JavaScript 代码中,将条目添加到 GET 请求,如下所示:
function createGetRequest() {
// code to get number/id you are clicking on
entry_id = getEntryId();
var request = new XMLHttpRequest();
//After question marks you can input your GET request parameters
request.open('GET', `some-link/api/?entry=${entry_id}`, true); //I am using backticks as interpolation
request.onload = function() {
var data = JSON.parse(this.response);
document.getElementById("idk").innerHTML = data.news.entry_news_item_title + "</br>" + data.news.entry_news_item_snippet + "</br>"
+ data.news.entry_news_item_url;
}
request.send();
}
在您的 Python 代码中,您只需要从请求字符串中收集获取参数,如下所示:
# Add the request parameter to the function
def index(request):
NewsFeed = feedparser.parse("https://trends.google.com.tr/trends/trendingsearches/daily/rss?geo=TR")
# Get the parameter from request
# By using get function if you do not have a parameter with given key it will return None
entry_id = request.GET.get('entry')
if entry_id:
entry = NewsFeed.entries[entry_id]
return {"news" : {"Status" : "OK",
"item" : entry['title'],
"entry_news_item_title" : entry['ht_news_item_title'],
"entry_news_item_snippet" : entry['ht_news_item_snippet'],
"entry_news_item_url" : entry['ht_news_item_url']}}
else:
# Handle bad request
return {"news":None}
推荐阅读
- jhipster - Jhipster swagger ui - 权限
- global-payments-api - 全球支付,灯箱,我可以自己处理onClick动作吗?
- python - 如何在python3中同时运行多个任务?
- javascript - 从数组中选择一个随机 html 页面,但每个页面只有一次(加上前两页和最后两页应该一直相同)
- django - 在 Django_Restful_framework 中自定义 ElasticSearch 中的排序字段
- javascript - 对类组件使用 useEffect (或等效的)(制作加载屏幕)
- python - 使用 Beautiful Soup 向 tbody 添加新表
- python-3.x - 在这种情况下如何解决python gekko中超过最大迭代的问题(在正文中解释)?
- javascript - 如何使`JSInvokable`方法表现得像事件处理程序 - 渲染父组件
- c++ - 两个版本的程序根据输入参数不重复代码