2017-12-03 14 views
0

플라스크 및 WT 양식을 사용하여 양식에서 사용자 입력을 얻고 사용자 입력을 다른 경로로 리디렉션하려고합니다. 입력에서 일부 데이터를 가져 오는 기능을 사용합니다.html을 html로 게시 한 후 사후 html을 사용합니다.

이 데이터를 WT 형식으로 사용하고 싶습니다. 일단 데이터를보고 괜찮은지 확인했습니다. 데이터베이스에 대한 새 항목으로 저장하고 싶습니다.

문제 : 양식을 게시 한 후 게시 요청으로 처리 할 수 ​​없습니다.

@app.route('/', method =[POST,GET]) 
def home(): 
    forms = inputForms(request.form) 
    if form_validate() and request.POST: 
     value=forms.input.data 
     redirect(url_for(/edit, value=value) 
    return render_template('input.html') -- Initial page where getting user input 
    @app.route('/edit', method =[POST,GET]) 
    def edit(value): 
     data= getdata(value) 
     if data == 'error': 
      return render_template('error.html') 
     else: 
      form=request.form(data=data) 
      return render_template('data.html', form=form 
      if form_validate() and request.POST: 
       save() 

양식을 어떻게 렌더링하는지보고 싶습니다. 어떻게 제출할 수 있습니까?

내가 양식을 얻을 수 있지만, 한 번 나는 당신의 의견을 바탕으로 저장 옵션

+0

, 난이 여전히 오며 'Post 그래서이 request.POST' 실패'하면 생각하지 않습니다 : 그래서 귀하의 경로를 가지고하는 것이 좋습니다 . – senaps

+0

응답 주셔서 감사합니다 당신은 뭔가 다른 방법으로 내가 파이썬뿐만 아니라 코딩에 새로운 제안 할 수 있습니다 – Rajesh

답변

0

에 앞서 움직일 수 아니다 돌아갈 수 있어요, 당신은 당신의 사후 조치를 변경할 수 있습니다. 귀하의 양식은 다른 경로로 POST입니다. 다음은 그 route에 대한 확인을 위해 당신의 기능을 이동할 수 있습니다, 템플릿에서 위의 사용

<form method="POST" action="{{url_for('edit')}}"> 
{{ form.csrf_token }} 
{{ form.name.label }} {{ form.name(size=20) }} 
<input type="submit" value="Go"> 

.

이렇게하면 edit 경로 내의 모든 것을 처리 할 수 ​​있습니다. home 경로를 변경하면 양식을 렌더링 할 수 있습니다.

@app.route('/', method =[POST,GET]) 
def home(): 
    forms = inputForms(request.form) 
    return render_template('input.html') 

당신은 당신의 routes에 대한 trailing slash이 있어야합니다. 당신이 redirect``를 통해`edit`의 FUNC에 도착하면

@app.route('/edit/', method =[POST,GET]) 
def edit(): 
    pass