How do I return a list as a variable in Python and use in Jinja2?

前端 未结 3 1772
盖世英雄少女心
盖世英雄少女心 2021-02-05 18:45

I am a very young programmer and I am trying to do something in Python but I\'m stuck. I have a list of users in Couchdb (using python couchdb library & Flask framework) who

3条回答
  •  耶瑟儿~
    2021-02-05 19:36

    Assuming you have a model such as:

    class User(Document):
        email = TextField()
    

    You can use the static method load of the User class

    users = [User.load(db, uid) for uid in db]
    

    Now you can do this:

    for user in users:
        print user.id, user.email  
    

    But you're using it in flask so, in your view you can send this list of users to your template using something like this:

    from flask import render_template
    @app.route("/users")
    def show_users():
        users = [User.load(db, uid) for uid in db]
        return render_template('users.html', users=users)
    

    Now in the users.html jinja2 template the following will output a dropdown listbox of each user's e-mail

    
    

    Also, are you using the Flask-CouchDB extension? It might be helpful in abstracting out some of the low level couchdb coding: http://packages.python.org/Flask-CouchDB/

    Disclaimer: The code above wasn't tested, but should work fine. I don't know much about CouchDB, but I am familiar with Flask. Also, I obviously didn't include a full Flask/CouchDB application here, so bits of code are missing.

提交回复
热议问题