所以,我搞砸了《星球大战》的swapi API,并将我的api搜索作为字符串呈现到html文件中,但是我似乎无法按行分隔字符串中的标题:
from flask import Flask, render_template, request, redirect
import requests
import json
import swapi
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
url = "https://swapi.co/api/"
star_wars_api = requests.get(url)
result = ''
if request.method == 'POST':
films = requests.get(star_wars_api.json()['films'])
if films.status_code == 200:
if request.form['search'] == "films":
film_json = films.json()
for film in film_json['results']:
result += str(film['title'])
return render_template('index.html', results=result)
else:
return render_template('index.html')
if __name__ == "__main__":
app.run(debug=True)
这里是HTML文件:
{% extends 'base.html'%}
{% block head %} {% endblock %}
{% block body %}
<form action="/" method="POST">
<label for="search">Search:</label>
<input class="form-control" type="text" name="search" id="search" placeholder="Search" aria-label="Search">
<br>
<input type="submit" value="Post">
</form>
<p> {{ results }}</p>
{% endblock %}
这里是输出:(在index.html
页面上]
“克隆人的新希望袭击幻影的威胁西斯的复仇绝地归来帝国反击原力觉醒”(无引号)
在HTML中,您必须使用<br>
而不是\n
在新行中放置文本。