我是 Python 新手,但我想快速理解它。目前我正在 Openshift 平台上开发 Flask+SQLAlchemy+PostgreSQL+jQuery。我发现很难在这里尝试使用这个 jQuery 插件 datatables.net:
http://datatables.net/release-datatables/examples/server_side/server_side.html
服务器端的例子是用 PHP 编写的,我可以很好地理解它,但是我在将它翻译成 Python 时遇到了问题。目前我对 Python Dict(据我所知与 JSON 相当)数据结构的理解并不好。
我现在正在翻译它,但如果你能告诉我正确的 python 代码来做这件事,我会很高兴
编辑 1 在 dict 上阅读和玩弄 Python 文档后,我可以使用常规 python dict + json.dumps() 构建准确的 JSON 数据:
@app.route ('/dataset/users')
def dataset_users():
data = {}
data['aaData']=[]
data['iTotalRecords']=3
data['sEcho']=1
data['iTotalDisplayRecords']=1
data['aaData'].append(['Gecko', 'FFox', 'Win', '1.1','A'])
data['aaData'].append(['Webkit', 'Safari', 'OSX', '3','B'])
data['aaData'].append(['IE', 'IE', 'Win', '2','C'])
return json.dumps(data)
现在正在使用 SQLAlchemy + Flask 对结果集进行 jsonify
编辑 2 这些是我当前的烧瓶 + sqlalchemy 代码,符合 jquery 数据表插件:
@app.route ('/dataset/users')
def dataset_users():
data = {}
data['iTotalRecords'] = 2
data['sEcho'] = 1
data['iTotalDisplayRecords'] = 2
aaData = []
users=models.Users.query.with_entities(
models.Users.id, models.Users.username,
models.Users.email).order_by(models.Users.username).all()
for user in users:
aaData.append([user.id, user.username, user.email, 'Modify'])
data['aaData']=aaData
return json.dumps(data)
我相信我们可以精简代码,使其不会使用 for 循环。任何的想法?