Отправка параметров URL в Python REST API с использованием Javascript - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь отправить параметры URL в API, который я написал для Python, используя Javascript. Мой код 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. Я перепробовал все в Интернете, но пока не могу понять.

1 Ответ

0 голосов
/ 11 февраля 2020

В коде 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...