我试图创建一个从外部 API 获取数据的程序。
这是我的结构:
主.py
模板
index.html
guess.html
这里是我的index.html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Website</title>
</head>
<body>
<h1>My Web Site</h1>
</body>
</html>
这是我的guess.html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Guess</title>
</head>
<body>
<h1>Hey!, {{ person_name }}</h1>
<h2>I think you are {{ gender }}.</h2>
<h3>And maybe {{ age }} years old.</h3>
</body>
</html>
这是我的 main.py 代码:
from flask import Flask, url_for, render_template
import request
app = Flask(__name__)
@app.route("/")
def welcome():
return render_template("index.html")
@app.route("/guess/<name>")
def guess(name):
gender_url = f"https://api.genderize.io?name={name}"
gender_response = request.get(gender_url)
gender_data = gender_response.json()
gender = gender_data["gender"]
age_url = f"https://api.agify.io?name={name}&country_id=US"
age_response = request.get(age_url)
age_data = age_response.json()
age = age_data["age"]
return render_template("guess.html", name=name, gender=gender, age=age)
if __name__ == "__main__":
app.run(debug=True)
我尝试了这些,但没有用,我不明白我的错误是什么,所以如果你帮助我,我会很高兴,谢谢你的考虑
您的代码似乎有错字。您导入了
request
模块而不是 requests
,这导致了错误。
试试这个:
from flask import Flask, url_for, render_template
import requests # corrected import
app = Flask(__name__)
@app.route("/")
def welcome():
return render_template("index.html")
@app.route("/guess/<name>")
def guess(name):
gender_url = f"https://api.genderize.io?name={name}"
gender_response = requests.get(gender_url) # corrected call to requests.get()
gender_data = gender_response.json()
gender = gender_data["gender"]
age_url = f"https://api.agify.io?name={name}&country_id=US"
age_response = requests.get(age_url) # corrected call to requests.get()
age_data = age_response.json()
age = age_data["age"]
return render_template("guess.html", person_name=name, gender=gender, age=age) # changed name to person_name
if __name__ == "__main__":
app.run(debug=True)