curl --header "Authorization: Token d91b1d68292ce1f7fd7af7f2ce916288f8bd5dc9" <https://owlbot.info/api/v4/dictionary/owl> -s | json_pp

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/abe49aa4-8669-467b-a9c4-f08d0aaca4be/Screen_Shot_2021-06-07_at_4.10.19_PM.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8905684e-6406-4d64-88be-1c4dd8ddcb7f/Screen_Shot_2021-06-07_at_4.10.38_PM.png

detail page

@app.route('/detail/<keyword>')
def detail(keyword):
    # API에서 단어 뜻 찾아서 결과 보내기
    r = requests.get(f"<https://owlbot.info/api/v4/dictionary/{keyword}>",
                     headers={"Authorization": "Token d91b1d68292ce1f7fd7af7f2ce916288f8bd5dc9"})
    result = r.json()
    print(result)

    return render_template("detail.html", word=keyword, result=result)
<div class="container">
        <div class="d-flex justify-content-between align-items-end">
            <div>
                <h1 id="word" style="display: inline;">{{ result['word'] }}</h1>
                {% if result['pronunciation'] != None %}
                    <h5 id="pronunciation" style="display: inline;">/{{ result['pronunciation'] }}/</h5>
                {% endif %}
            </div>
            <button id="btn-save" class="btn btn-outline-sparta btn-lg"><i class="fa fa-floppy-o" aria-hidden="true"></i></button>
            <button id="btn-delete" class="btn btn-sparta btn-lg"><i class="fa fa-trash-o" aria-hidden="true"></i></button>
        </div>
        <hr>
        <div id="definitions">
            {% for definition in result['definitions'] %}

            <div style="padding:10px">
                <i>{{ definition['type'] }}</i>
                <br>{{ definition['definition'].encode('ascii', 'ignore').decode('utf-8') }}<br>
                {% if definition['example'] != None %}
                    <span class="example">{{ definition['example'].encode('ascii', 'ignore').decode('utf-8')|safe }}</span>
                    <!-- |safe: if html, print all -->
                    <!-- .encode('ascii', 'ignore').decode('utf-8'): convert to ascii, if not, do not print -->
                {% endif %}
            </div>

            {% endfor %}
        </div>
    </div>

|safe: if html, print all

.encode('ascii', 'ignore').decode('utf-8'): convert to ascii, if not, do not print

Save, Delete

있는 단어인지, 없는 단어인지 먼저 확인하고, status를 new 또는 old로 전달

app.py

@app.route('/detail/<keyword>')
def detail(keyword):
    status_receive = request.args.get("status_give")

    # API에서 단어 뜻 찾아서 결과 보내기
    r = requests.get(f"<https://owlbot.info/api/v4/dictionary/{keyword}>",
                     headers={"Authorization": "Token d91b1d68292ce1f7fd7af7f2ce916288f8bd5dc9"})
    result = r.json()
    print(result)

    return render_template("detail.html", word=keyword, result=result, status=status_receive)