如何在烧瓶中按字母顺序对帖子进行排序?

时间:2013-06-13 22:58:23

标签: python flask

我一直在关注Flask提供的教程。我试图改变一些事情并使其符合词汇表的标准。

我怀疑我的问题在于我的flaskr.py文件中的这行代码:

cur = db.execute('select title, text from entries order by id desc')

我之所以怀疑这是因为当我弄乱它时会破坏一切。同样,当我试图“整理”它所做的一切时,哦,并且它说按顺序下降...这主要是为什么。

我尝试的是:

@app.route('/order', methods=['POST'])
def order_entry():
    entries.sort()
    return entries

这可能是粗俗的,有点傻,但我对编程特别陌生。我在我的代码中找不到任何其他位置的条目。

我已经找到了按字母顺序组织字典的不同方法,但没有太多的运气使其工作。你可以说。

1 个答案:

答案 0 :(得分:1)

假设this是你正在关注的Flask教程,我认为你的功能缺少一些东西。 entries是某种全局变量,还是只删除了创建它的部分?我已经尝试将您的代码与教程中的一个示例结合起来,并添加了一些注释。

@app.route('/order', methods=['POST'])
def order_entry():
    # the following line creates a 'cursor' which you need to retrieve data
    # from the database
    cur = g.db.execute('select title, text from entries order by id desc')

    # the following line uses that cursor ("cur"), fetches the data, 
    # turns it into a (unsorted) list of dictionaries 
    entries = [dict(title=row[0], text=row[1]) for row in cur.fetchall()]

    # let's sort the list by the 'title' attribute now
    entries = sorted(entries, key=lambda d: d['title'])
    # or if you prefer, you could say: "entries.sort(key=lambda d:d['title']"

    # return the template with the sorted entries in
    return render_template('show_entries.html', entries=entries)

现在,我根本不认识Flask,但我认为这是你想要做的gist

你可能想要阅读一些Python教程(在处理Flask之前),因为有一些基本概念,一旦你掌握,我认为会让其他一切变得更容易。