나는 데이터를 스크레이퍼로 보내고 동시에 양식 입력에서 URL을 생성하는 양식 작업을하고 있습니다. 반환 된 템플릿은 완벽하게 작동하지만 URL 변경이 끝나면 전체 양식이 URL에 제공되므로 이유를 파악할 수 없습니다. 내가 같이하기를 원하는플라스크 형식의 URL 입력
http://localhost/options/%3Cinput%20id%3D%22symbol%22%20name%3D%22symbol%22%20type%3D%22text%22%20value%3D%22%22%3E
을 :
http://localhost/options/ABC
Form 클래스 :
class OptionsForm(Form):
symbol = StringField('Enter a ticker symbol:', validators=[Required(), Length(min=1, max=5)])
submit = SubmitField('Get Options Quotes')
조회수 :
URL은 다음과 같이 찾고 끝
# Where the form data ends up
@app.route('/options/<symbol>', methods=['GET', 'POST'])
def options(symbol):
# Created this try/except so I could test functionality - for example, I can do 'localhost/options/ABC' and it works
try:
symbol = request.form['symbol']
except:
pass
return render_template('options.html', symbol=symbol, company_data=OS.pull_data(symbol, name=True))
# Where the form lives
@app.route('/', methods=['GET', 'POST'])
def index():
form = OptionsForm()
print(form.errors)
if form.validate_on_submit():
return redirect(url_for('options', symbol=form.symbol.data))
return render_template('index.html', options_form=form)
,363,210
템플릿 : 어떤 도움을 주시면 감사하겠습니다
<div id="options_div">
<form method="POST" name="symbol_form" action="{{ url_for('options', symbol=options_form.symbol) }}">
{{ options_form.hidden_tag() }}
{{ options_form.symbol(size=10) }}
{{ options_form.submit(size=10) }}
</form>
.
그냥 샷을 주었지만 여전히 잘못된 URL을 제공합니다. 그래도 아이디어를 가져 주셔서 감사합니다. – brohemian
흠, 아마도 url_for 호출에서 symbol = options_form.symbol과 관련이 있습니다. 나는 전에 WTForms를 사용하지 않았지만 아마도 symbol = options_form.symbol.text 또는 .value 또는 something과 같을 필요가 있습니다. – pgorsira
WTForms에서 시도했습니다. 내가 그랬을 때, 폼 자체가있는 페이지 (인덱스 뷰)가로드되지 않습니다. - werkzeug.routing.BuildError 메시지를 받았습니다. 다른 아이디어? 어느 쪽이든, 이것을 고려할 시간을내어 다시 한번 감사드립니다. – brohemian