📅  最后修改于: 2023-12-03 15:36:27.907000             🧑  作者: Mango
本文介绍如何使用 Flask 框架实现一个简单的维基百科搜索应用程序。通过该应用程序,用户可以在页面上输入关键字,并将其发送给维基百科的API来搜索相关文章标题。
在开始构建此应用程序之前,您需要安装Python和Flask框架。您可以使用pip来安装Flask,只需在终端中运行以下命令即可:
pip install Flask
from flask import Flask, render_template, request
import wikipedia
app = Flask(__name__)
@app.route('/')
def home():
return render_template('home.html')
@app.route('/results', methods=['POST'])
def results():
query = request.form['query']
search_results = wikipedia.search(query)
return render_template('results.html', search_results=search_results)
if __name__ == '__main__':
app.run(debug=True)
代码解释:
首先我们导入了Flask和wikipedia模块:
from flask import Flask, render_template, request
import wikipedia
然后,我们初始化应用程序:
app = Flask(__name__)
我们创建一个名为“home”的路由,这是该应用程序的主页路由,它返回一个HTML模板:
@app.route('/')
def home():
return render_template('home.html')
到此为止,我们已经创建了主页路由。我们现在需要添加一个新的路由以处理用户的搜索请求。我们将路由称为“results”:
@app.route('/results', methods=['POST'])
def results():
query = request.form['query']
search_results = wikipedia.search(query)
return render_template('results.html', search_results=search_results)
在该路由的代码中,我们首先从客户端获取查询参数。然后,我们使用wikipedia搜索方法来搜索相关文章标题,并将其保存在一个名为search_results的变量中。最后,我们将它们传递给名为“results.html”的另一个HTML模板,以在用户的页面上显示搜索结果。
我们在应用程序的尾部检查,如果该代码是直接运行的,则启动应用程序:
if __name__ == '__main__':
app.run(debug=True)
我们需要创建两个HTML模板:
home.html:
<!DOCTYPE html>
<html>
<head>
<title>Search Wikipedia</title>
</head>
<body>
<form action="{{ url_for('results') }}" method="post">
<input type="text" name="query" placeholder="Search Wikipedia...">
<button type="submit">Search</button>
</form>
</body>
</html>
results.html:
<!DOCTYPE html>
<html>
<head>
<title>Search Results</title>
</head>
<body>
<h1>Search Results</h1>
<ul>
{% for result in search_results %}
<li><a href="{{ wikipedia.page(result).url }}" target="_blank">{{ result }}</a></li>
{% endfor %}
</ul>
</body>
</html>
这些模板使用Flask的Jinja2模板引擎来渲染HTML。在home.html模板中,我们使用一个表单,以便用户输入查询,并在提交查询时将数据发送到search的POST路由。在results.html模板中,我们迭代搜索结果并将它们显示为一组链接。
要启动搜索应用程序,请执行以下命令:
python app.py
然后,您可以在浏览器中打开http://127.0.0.1:5000/,输入关键字并单击“搜索”按钮,以查看与该关键字相关的维基百科文章标题。
在本文中,我们了解了如何使用Flask框架和Python在Web应用程序中实现一个简单的维基百科搜索应用程序。在以后的工作中,我们可以扩展该应用程序,以便搜索维基百科中的具体文章,同时在结果页面上显示文章的内容。