2013-06-19 3 views
0

저는 하나의 텍스트 필드 만 저장하는 단일 Flask 응용 프로그램을 Creatng하고 단일 웹 페이지에서 "message"필드가있는 양식을보아야합니다. 양식 아래에는 데이터베이스의 기존 메시지 목록이 있어야합니다. 사용자가 "message"필드에 무언가를 입력하고 양식을 제출하면 "message"를 SQLite의 테이블에 저장해야합니다. 그리고 메시지가 저장되면 사용자는 양식 및 메시지 목록이있는 페이지로 돌아와야합니다.버튼이 데이터베이스에있는 메시지를 제출하지 않습니다.

메시지가 표시되지 않습니다. 내 페이지는 데이터베이스를 만들 때 데이터베이스에 이미 저장된 메시지를 검색합니다.

Please Please SOMEONE은 양식에 기입 된 메시지를 보내주십시오.

내 연결 코드는 다음과 같습니다

@app.route('/message') 
def message(): 
    g.db = connect_db() 
    cur = g.db.execute('select msg_msg from msg') 
    message = [dict(msg_msg=row[0]) for row in cur.fetchall()] 
    g.db.close() 
    return render_template('message.html', message=message) 

@app.route('/message', methods=['GET']) 
def button(): 
    if request.GET.get('Save').strip(): 
     new = request.GET.get('input_msg').strip() 
     g.db = connect_db() 
     cur = g.db.execute("INSERT INTO msg (msg_msg) VALUES (?)", (new)) 
     new_id = c.lastrowid 

     g.db.commit() 
     g.db.close() 

     return '<p>The new input_msg was inserted into the database, the ID is %s</p>' % new_id 
    else: 
     return render_template('message.html') 

및 페이지의 HTML 코드 당신은 수신 데이터를 처리하기 위해 POST를 사용할 필요가

{% extends "template.html "%} 
{% block content %} 

    <h2>You are in the Message Page</h2> 
    <br/> 
    <p><h4>In this page, You can view the Existing Messages and can also Submit your own message.</h4></p> 
<br/><br/> 

<h3>Enter Your Message:</h3><br/> 

<form action="/message" methods='GET'> 
<dl> 
    <dt>Message: 
    <dd><input type="text" name="input_msg" maxlength=80 style="width:300px">*Maximum Length = 80 
</dl> 
<input type=submit value="Save"> 

</form> 

<h3>The Existing Messages:</h3> 
{% for item in message %} 
Msg_ID: <B>"{{ item.msg_id }}"</B><br/>Message: {{ item.msg_msg }} <br/><br/> 
{% endfor %} 

{% endblock %} 
+0

올바르게 기억하면 GET이 암시됩니다. 귀하의 파견이 표준이 아니기 때문에 flask.pocoo.org를 방문하여 문서를 살펴 보는 것이 좋습니다. 기본 @app.route() 함수에서 모든 get 요청을 처리해야합니다. –

답변

0

입니다.

@app.route('/message', methods=['GET','POST']) 
if request.method='POST': 
    new = request.form['input_msg'].strip() 
    ... 
    return redirect(url_for('XXXX')) 
else: 
    ... 
    return render_template('message.html') 

하고 message.html 드 : 나는 당신이 당신의 코드가 표준이 아니기 때문에 flask docs를 읽을 필요가 있다고 제안

<form action='/message' method='post'> 
    <input type="text" name="input_msg" maxlength=80 style="width:300px"> 
    <input type="submit" value="Save"> 
</form> 

.