파이썬 웹 입력처리

조회수 403회
@app.route("/users/<userid>", methods=["GET", "POST"])

def user(userid):

    if  not "id" in session:
        return redirect("/login")
    if request.method == "GET":
        user_info = fc.guild_user(session["id"], userid)
        if user_info == None:
            abort(404)
        return render_template("user.html", user=user_info)
    else:
        user_info = fc.guild_user(session["id"], userid)
        if user_info == None:
            abort(404)
        form = request.form
        if not "balance" in form:
            abort(400)
        if not form["balance"].isdigit():
            return "잔액은 숫자로만 입력해주세요."
        if not (0 < int(form["balance"]) <= 10000000):
            return "잔액은 1000만원까지 입력 가능합니다."
        con,cur = fc.start_db(session["id"])
        cur.execute("UPDATE users SET balance = ? WHERE id == ?;", (form["balance"], userid))
        con.commit()
        con.close()
        return "ok"

사이트에서 보면 0을 입력 후 저장하면 저 오류가 뜹니다.

제가 소스만 받아서 하는거라.. 어떻게해아할지 잘 모르겠습니다..

이미지

1 답변

  • 그야 당연히 0을 입력하면 "오류"가 나겠지요. 코드가 그렇게 돼 있는걸요. 저 "오류"를 안 보시려면 아래와 같이 고치시면 되긴 합니다.

    if not (0 <= int(form["balance"]) <= 10000000):
    

    근데 "잔액 0원으로 수정" 같은 처리는 아무래도 좀 위험한 것이라서, 서비스 기획의 차원에서 저게 정말 옳은지 잘 생각해 보시고, 응용해 보세요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)