Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将html下拉选项作为api调用Django传递_Python_Django_Api - Fatal编程技术网

Python 将html下拉选项作为api调用Django传递

Python 将html下拉选项作为api调用Django传递,python,django,api,Python,Django,Api,试图构建一个简单的Django应用程序,用户可以在其中输入文本搜索条件并从新闻提供者的下拉列表中进行选择,然后这些提供者作为api调用传递(最终目的地是新闻api) views.py def api_request(request): search_term = request.POST.get('textfield') source = request.POST.get('list_providers') url = 'https://newsapi.org/v2/ev

试图构建一个简单的Django应用程序,用户可以在其中输入文本搜索条件并从新闻提供者的下拉列表中进行选择,然后这些提供者作为api调用传递(最终目的地是新闻api)

views.py

def api_request(request):
    search_term = request.POST.get('textfield')
    source = request.POST.get('list_providers')
    url = 'https://newsapi.org/v2/everything?'
    parameters = {
        'q': '%s' % search_term,
        'sources': '%s' % source,
    }

    response = requests.get(url, params=parameters)
    response_json = response.json()
    articles = response_json['articles']

return render(request, 'news.html', context={"articles": articles, "search_term": search_term, "source": source})
home.html

{% block content %}
  <form method="POST">
      {% csrf_token %}
      <input type="text" name="textfield", placeholder="Enter search criteria">
      <br/>
      <select name = "list_providers">
               <option value = "option1">Option 1</option>
               <option value = "option2">Option 2</option>
               <option value = "option3">Option 3</option>
      </select>
      <br/>
      <button type="submit">Search</button>
  </form>

  {% if search_term & sources %}
    {% for title, author, date, des in mylist %}
    <h3>Title:</h3> {{title}}
    <h4>Published by:</h4> {{author}}
    <h4>Published at:</h4> {{date}}
    <h4>Summary:</h4> {{des}}
    {{value | linebreaks}}
    <br/>

    {% endfor %}
  {% endif %}
{% endblock %}
我已经能够无误地通过多个文本输入标准,并通过测试调用确认参数的语法正确,因此我相信问题可能出在下拉列表的默认选择标准中

KeyError at /
'articles'