๐ฉ๐ป Learn programming
[๋๋ง์ ๋จ์ด์ฅ] 10. ๋ชฉ๋กํ์ด์ง - ์ฌ์ ์ ์๋ ๋จ์ด์ผ ๋
๋ฐ๊ตฅ์
2022. 5. 4. 14:33
๋ฐ์ํ
โ API์์ ๋จ์ด ๋ป ์ฐพ์์ detail.html๋ก ๊ฒฐ๊ณผ ๋ณด๋ด๋ ์๋ฒ ํจ์ ๅ ง
r = requests.get(f"<https://owlbot.info/api/v4/dictionary/{keyword}>", headers={"Authorization": "Token [๋ดํ ํฐ]"})
result = r.json()
print(result)
- detail.html์ ๋ณด๋ด์ง๋ result๋ผ๋ ๊ฐ์ ์ฌ์ API์์ ์ฐพ์ ์ ์์ด์
- ‘์ ์๋ฅผ ์ฐพ์ ์ ์๋ค’๋ ๋ฉ์์ง ์ฆ, ๋ค๋ฅธ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ ๋๋ฌธ์ ์ฒ๋ฆฌํ์ง ๋ชปํด์ ์๋ฌ ๋ฐ์ !
- ์ด ๋ ์๋ฌ๋ฅผ ๋ณด์ฌ์ฃผ์ง ์๊ณ ๋จ์ด ๋ชฉ๋ก ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํ ํด์ผํจ
โ ๊ฐ์ ์ ๋ฐ์์์ ๋์ ์ํ์ฝ๋๊ฐ 200์ด๋ฏ๋ก 200์ด ์๋ ๋ ๋ฉ์ธํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํ ์ํค๊ณ ‘๋จ์ด๋ฅผ ์ฐพ์ ์ ์๋ค’๋ ๋ฉ์์ง ๋จ๊ฒจ์ฃผ๊ธฐ
if r.status_code != 200:
return redirect(url_for("main", msg="Word not found in dictionary; Try another word"))
โ โฌ๏ธ detail ํจ์ ์์ฑ
@app.route('/detail/')
def detail(keyword):
status_receive = request.args.get("status_give", "old")
r = requests.get(f"<https://owlbot.info/api/v4/dictionary/{keyword}>",
headers={"Authorization": "Token fa94f4b391cbaf92d16b54ca28dc8ea4b09dc478"})
if r.status_code != 200:
return redirect(url_for("main", msg="Word not found in dictionary; Try another word"))
result = r.json()
print(result)
return render_template("detail.html", word=keyword, result=result, status=status_receive)
โ โฌ๏ธ main ํจ์ ์์ฑ
- main ์ฌ์ ์ ์๋ ๋จ์ด์ผ ๊ฒฝ์ฐ, ๋ฉ์ธ ํ์ด์ง๋ฅผ ๋์์ผํ๊ธฐ ๋๋ฌธ์ ๋ฉ์ธ ํ์ด์ง์์ ‘๋จ์ด๋ฅผ ์ฐพ์ ์ ์๋ค’๋ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ค์ผํจ.
@app.route('/')
def main():
msg = request.args.get("msg") //msg๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์
# DB์์ ์ ์ฅ๋ ๋จ์ด ์ฐพ์์ HTML์ ๋ํ๋ด๊ธฐ
words = list(db.words.find({}, {"_id": False}))
return render_template("index.html", words=words, msg=msg)
โ msg๊ฐ None์ด ์๋๋ฉด alert์ ๋์
{% if msg %}
alert("{{ msg }}")
{% endif %}
๋ฐ์ํ