Flask-Pymongo请求数据库

时间:2014-04-03 23:10:40

标签: flask jinja2 pymongo

我使用的是PyMongo,但我无法使用正确的语法将数据从HTML发送到我的NOSQL数据库。

此代码来自flask中的教程:

@app.route('/add', methods=['POST'])
def add_entry():
    if not session.get('logged_in'):
        abort(401)
    db = get_db()
    db.execute('insert into entries (title, text) values (?, ?)',
                 [request.form['title'], request.form['text']])
    db.commit()
    flash('New entry was successfully posted')
    return redirect(url_for('show_entries'))

这是我的代码:

@app.route('/add', methods=['POST'])
def add_entry():
    if not session.get('logged_in'):
        abort(401)
    db = get_db()
    title = request.form['title']
    text = request.form['text']
    g.pymongo_db.insert({
        'title': title,
        'text': text
    })
    flash('New entry was successfully posted')
    return redirect(url_for('show_entries'))

这里是show_entries.html,在教程中完全相同:

{% extends "layout.html" %}
{% block body %}
  {% if session.logged_in %}
    <form action="{{ url_for('add_entry') }}" method=post class=add-entry>
      <dl>
        <dt>Title:
        <dd><input type=text size=30 name=title>
        <dt>Text:
        <dd><textarea name=text rows=5 cols=40></textarea>
        <dd><input type=submit value=Share>
      </dl>
    </form>
  {% endif %}
  <ul class=entries>
  {% for entry in entries %}
    <li><h2>{{ entry.title }}</h2>{{ entry.text|safe }}
  {% else %}
    <li><em>Unbelievable.  No entries here so far</em>
  {% endfor %}
  </ul>
{% endblock %}

0 个答案:

没有答案