300x250
작업 환경 : Visual Studio Code
버전 : Python 3.10.2 | flask 2.1.3
flask로 작성 중이고
templates/index.html
더보기
<!-- templates/index.html-->
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<link rel="stylesheet", href="{{ url_for("static", filename="css/index_css.css")}}">
<title>Hello, world!</title>
</head>
<body>
<div id="wrap">
<form action="/result" methods="POST">
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">크롤링할 키워드</label>
<input type="text" class="form-control" name="input1" placeholder="키워드을 입력하세요">
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">페이지수</label>
<input type="number" class="form-control" name="input2" placeholder="페이지수를 입력하세요">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</body>
</html>
템플릿에서 메인이 될 index.html은 부트 스트랩을 사용해 크롤링할 키워드와 페이지수를 입력받는
<input> 태그 두 개를 각각 input1, input2 이름을 주어 <form> 태그를 통해 /result로 보냅니다.
POST로요
app.py
더보기
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def hello():
return render_template('index.html')
@app.route('/result', methods=['GET','POST'])
def result():
print(request.form['input1'])
print(request.form['input2'])
return render_template("result.html")
if __name__ == "__main__":
app.run(debug=True)
flask 서버 코드입니다.
분명 request.form으로 input1, input2 폼 태그를 받아오는 게 맞게 작성된 것 같은데
/index에서 값을 <input> 태그에 전달해 /result로 이동하는 순간
BadRequestKeyError가 발생합니다.
게다가 app.py에서 POST 방식만을 작성해줬는데
@app.route('/result', methods=['POST'])
이렇게 작성하면
아예 URL 비허용 메시지가 나옵니다.
뭔가...... 문제인 거 같은데... 뭐가 문제인 걸까요...
무엇보다 값이 넘어가지를 않는 게 제일 어렵습니다.
폼 태그랑 넘겨주는 request.form의 이름값이 동일하게 작성된 상태인데,,
해결하면 추가로 작성하겠습니다.
300x250
'개발&코딩 > Flask' 카테고리의 다른 글
Flask 환경변수 설정과 애플리케이션 루트 변경하기 (0) | 2023.06.02 |
---|---|
app.post() 사용을 위한 flask 2 버전 사용법 (0) | 2022.11.01 |
플라스크 블루 프린트로 url 한 번에 관리 (4) | 2021.01.21 |
군대에서 웹 사이트 만들기#1 - Flask, 구름 IDE (2) | 2021.01.16 |
[Flask] Flask로 웹 페이지 제작하기 - 1 기초적인 설정과 사용법, Visual Studio Code와 Flask 설치법 // 개인프로젝트 (0) | 2020.09.02 |
댓글