小编bob*_*wal的帖子

Flask-auth,Principal和Flask Security

任何人都可以判断这3个扩展之间是否存在根本区别,或者它们是否都做类似的事情?我一直在阅读文档,似乎有很多交叉.我猜一些只是提供更多的功能.

我想在我的应用中添加用户角色,以便某些用户具有某些权限.即level1用户可以创建5个资源,level2用户可以创建10个等等.我一直在寻找滚动我自己,它似乎并不太棘手.我正在考虑使用这个http://flask.pocoo.org/snippets/98/的装饰器,这个解决方案会有任何安全问题吗?我已经在使用Flask-login了,所以我将它与它集成.

flask flask-security flask-principal

10
推荐指数
1
解决办法
4970
查看次数

如何使用Jinja2迭代WTForms FieldList

正如标题所说,这就是我所拥有的:

form = F(obj = myobject)
myfieldlist= FieldList(FormField(form))

{% for subfield in form.myfieldlist %}
    {{ subfield.field }}
    {{ subfield.label }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

没有输出任何想法?此外,还不完全确定是否需要FormField.谢谢

jinja2 wtforms

9
推荐指数
1
解决办法
4671
查看次数

Flask-SQLAlchemy在单行上迭代列值

我是Flask和Python的新手,所以请提前道歉.我正在使用Flask-SQLAlchemy返回数据库行,这一切都正常:

customer = Customers.query.filter_by(cat_id = page).first()
return render_template('test.html',
    customer = customer
    )
Run Code Online (Sandbox Code Playgroud)

我的问题是我试图弄清楚如何使用循环在我的jinja模板中显示此行的列值.这是解决此问题的最佳方法吗?我得到了"对象不可迭代"的错误,我有点理解,但我不知道如何解决它.

在我目前正在使用的模板中:

{{customer.id}}
{{customer.name}}
{{customer.area}}
etc.
Run Code Online (Sandbox Code Playgroud)

但我想做这样的事情:

{% for item in customer %}
    {{item[column]}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

查询可以转换为字典吗?

我一直在搜索,试图弄清楚没有运气,这让我觉得我可能走错了路.

任何建议都非常感谢.


更新:
我认为这是进步.主要的变化是在views.py中,我已经添加了.__dict__一些来自我读过__dict__的内容的SQLAlchemy对象.for模板循环现在输出列值,但它也输出许多其他不需要的东西.反正有没有清理它?

models.py

class Customers(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    cust_name = db.Column(db.String(64))
    cust_area = db.Column(db.String(64))
    cat_id = db.Column(db.Integer(8), index = True)
Run Code Online (Sandbox Code Playgroud)

views.py

customer = Customers.query.filter_by(cat_id = page).first()
return render_template('test.html',
    customer = customer.__dict__
    )
Run Code Online (Sandbox Code Playgroud)

的test.html

{% for key, value in customer.items() %}
    {{ …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy

4
推荐指数
1
解决办法
6378
查看次数