2017-01-18 5 views
0

저는 Flask를 사용하고 있으며 양식 부분 중 하나가 채워지지 않은 경우 오류를 표시하려고합니다. 테스트 할 때 이 (모든 양식 부분을 채우십시오), 오류가 발생합니다 : "TypeError : redirect() 예기치 않은 키워드 인수가 '오류'". 내가 도대체 ​​뭘 잘못하고있는 겁니까?Python : TypeError : redirect() 예상치 못한 키워드 인수 'error'가 발생했습니다.

플라스크 코드 :

@app.route('/crudcourse', methods = ['POST']) 
def crudcourse(): 
db = get_db() 
error = None 

button = request.form['submitcourse'] 

coursename = request.form['coursename'] 
description = request.form['description'] 

if coursename != None or description != None: 
    error = 'Vul alle velden in aub' 
else: 
    if button == 'Toevoegen': 
     db.execute('insert into courses (coursename, description) 
     values(?, ?)', coursename, description) 
     db.commit() 
     flash('Gegevens sucessvol toegevoegd') 

    elif button == 'Updaten': 
     db.execute('update courses set coursename=?, description=? where 
     coursename=? or description=?', 
     coursename, description, coursename, description) 
     db.commit() 
     flash('Gegevens sucessvol geupdate') 

    elif button == 'Verwijderen': 
     db.execute('delete from courses where coursename=? or 
     description=?', coursename, description) 
     db.commit() 
     flash('Gegevens sucessvol verwijderd') 

return redirect('/intranet/richtingen.html', error=error) 

HTML 코드 : 나는 당신이 언급하고있는 리디렉션 방법은 플라스크 라이브러리, flask.redirect에서 제공되는 하나라고 추측하고있어

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Home</title> 
    <link rel="stylesheet" type="text/css" href="templates/style.css"> 
</head> 

<body> 

{% if error %} 
<p class=error><strong>Error:</strong> {{ error }} 
{% endif %} 

{% for message in get_flashed_messages() %} 
<div class=flash>{{ message }}</div> 
{% endfor %} 

    <div id="courses"> 
     <form action="/crudcourse" method="post"> 
      <p>Naam<input type="text" name="coursename"></p> 
      <p>Beschrijving 
       <textarea name="description" cols="50" rows="4"> 
       </textarea></p> 

      <input type="submit" name="submitcourse" value="Toevoegen"> 
      </input> 
      <input type="submit" name="submitcourse" value="Updaten"> 
      </input> 
      <input type="submit" name="submitcourse" value="Verwijderen"> 
      </input> 
     </form> 
    </div> 

    </body> 
</html> 
+2

붙여 넣기 여기 이미지의 코드는 더 쉽게 읽을 수 있습니다. – Arman

+0

글쎄, 오류 메시지가 충분히 명확하지 않습니까? 'redirect' 객체는 키워드 인자'error'로 무엇을해야할지 모릅니다. API 문서 참조 : http://flask.pocoo.org/docs/0.12/api/#flask.redirect – Mikk

+0

@Arman 코드를 붙여 넣었습니다 –

답변

0

. 즉 다음과 같이 가져올 수 : 이것이 사실

from flask import redirect 

경우 오류 메시지가 TypeError: redirect() got an unexpected keyword argument 'error'을 말하고,이 리디렉션 방법은 오류 인수를 고려하지 않습니다.

너무 경우 /intranet/richtingen.html 페이지로 잠재적 인 오류를 전달하는 것입니다 싶은 것 같다 - 내가 대신 URL에 쿼리 문자열에 그렇게 추천 할 것입니다 다음과 같이 :

return redirect('/intranet/richtingen.html?error=%s' % error) 
+0

그게 내가하고 싶은 것입니다. 하지만 솔루션 자체를 찾은 것 같아요. render_template 대신 리디렉션을 사용하고있었습니다. 도와 주셔서 감사합니다 –

관련 문제