""" Flask example using Requests library syntax to build a Wikipedia API query - no templates, just raw HTML written straight into the browser. This code was partly written by ChatGPT. """ from flask import Flask, jsonify, request, redirect, url_for import random, requests app = Flask(__name__) # list of random topics mylist = ["David Bowie", "Marie Curie", "foobar", "Blade Runner", "Sherlock Holmes", "API", "Vespa", "St. Augustine, Florida", "arrabbiata"] @app.route('/', methods=['GET', 'POST']) def index(): # filling the form input and Return/Enter will submit a POST request if request.method == 'POST': page_title = request.form['userinput'] return redirect( url_for('get_main_points', page_title=page_title) ) # or a GET request writes this to the browser pagename = random.choice(mylist) html = "

Wikipedia API calls

    " html += "
  1. Click to see " html += pagename html += " info

  2. " html += "Or you can type any name: " html += "
    " html += "
" return html @app.route('/get_main_points/', methods=['GET']) def get_main_points(page_title): # set up API request endpoint = 'https://en.wikipedia.org/w/api.php' params = { 'action': 'query', 'format': 'json', 'titles': page_title, 'prop': 'extracts', 'explaintext': True, 'exsectionformat': 'wiki', 'redirects': True, 'exsentences': 3 # get first 3 sentences of the page } # make API request - using Requests library response = requests.get(endpoint, params=params).json() # extract main points from API response page_id = list(response['query']['pages'].keys())[0] page_title = response['query']['pages'][page_id]['title'] page_extract = response['query']['pages'][page_id]['extract'] # return main points as JSON response # return jsonify({ # 'page_title': page_title, # 'page_extract': page_extract # }) heading = '

' + page_title + '

' text = '

' + page_extract + '

' link = '

Return to index

' return heading + text + link if __name__ == '__main__': # app.run(debug=True) app.run(host='0.0.0.0', port=4999, debug=True)