2013-06-18 42 views
1

我被要求创建一个简单的瓶应用程序,它存储只是一个单一的文本 场,在一个单一的网页,并在该用户应该看到一个形式与“消息“ ”字段。下面的表格应该是 数据库中现有消息的列表。当用户在“消息”字段中输入内容并提交表单时,应该将“消息”保存到SQLite中的表中。 AND保存消息后,用户应回到带有表单和消息列表的页面。如何使用表单提交保存信息在数据库

我坚持在一个点 我不能够将邮件提交 我的页面不检索从已经被存储在数据库中,而我创造它的数据库消息。

但有人可以请指导对提交填好了表单信息的代码。 我message.html代码:

{% 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="" method='POST'> 
<dl> 
    <dt>Message: 
    <dd><input type="text" name=msg_msg maxlength=80 style="width:300px">*Maximum Length = 80 
</dl> 
<input type=submit value="Submit Message"> 

</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 %} 



and my routes.py code for this is: 


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

@app.route('/message', methods=['GET', 'POST']) 
    def message_1(): 
    error = None 
    if request.method == 'POST': 
    for request.form['input_msg'] = text: 
     g.db = connect_db() 
     cur = g.db.execute('insert into msg_msg from msg') 
     message = [dict(msg_id=row[0], msg_msg=row[1]) for row in cur.fetchall()] 
     g.db.close() 
     return render_template('message.html', message=message) 

     #error = 'Invalid Entry, Please Try Again.' 
else: 
# session['logged_in'] = True 
    return redirect(url_for('message')) 
return render_template('message.html' , error=error) 

回答

1

使用1消息视图

@app.route('/message', methods=['GET', 'POST']) 
def message(): 
    cur = db.execute('select id,msg from msg_msg') 
    message = [dict(msg_id=row[0], msg_msg=row[1]) for row in cur.fetchall()] 
    if request.method == 'POST': 

     g.db = connect_db() 
     cur = g.db.execute('insert into msg_msg (msg) values (?)',request.form['input_msg']) 
     message = [dict(msg_id=row[0], msg_msg=row[1]) for row in cur.fetchall()] 
     g.db.close() 

    return render_template('message.html' , message = message) 

message.html

{% 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={{ url_for('message') }} method='POST'> 
<dl> 
<dt>Message: 
<dd><input type="text" name=msg_msg maxlength=80 style="width:300px"> 
</dl> 
<input type=submit value="Submit Message"> 

</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

但随后又怎么会在我的网页letme看到现有消息???? – Abhimanyu

+0

正确。更新答案 – codegeek

+0

嘿,我做了与你的代码 但现在我得到一个错误 “提供绑定的sqlite3.ProgrammingError 数字错误,当前语句使用1,并有25供电。” 现在我该如何解决这个问题??? / – Abhimanyu

相关问题