我正在尝试在Flask/Python中jsonify一个SQLAlchemy结果集.
Flask邮件列表建议采用以下方法:http://librelist.com/browser//flask/2011/2/16/jsonify-sqlalchemy-pagination-collection-result/#04a0754b63387f87e59dda564bde426e:
return jsonify(json_list = qryresult)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
TypeError: <flaskext.sqlalchemy.BaseQuery object at 0x102c2df90>
is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
我在这里俯瞰什么?
我发现了这个问题:如何将SqlAlchemy结果序列化为JSON?这看起来非常相似但是我不知道Flask是否有一些魔力使其更容易,如邮件列表帖子所示.
编辑:为了澄清,这就是我的模型
class Rating(db.Model):
__tablename__ = 'rating'
id = db.Column(db.Integer, primary_key=True)
fullurl = db.Column(db.String())
url = db.Column(db.String())
comments = db.Column(db.Text)
overall = db.Column(db.Integer)
shipping = db.Column(db.Integer)
cost = db.Column(db.Integer)
honesty = db.Column(db.Integer)
communication = db.Column(db.Integer)
name = db.Column(db.String())
ipaddr = db.Column(db.String())
date = db.Column(db.String())
def __init__(self, fullurl, url, comments, overall, shipping, cost, honesty, communication, name, ipaddr, date): …Run Code Online (Sandbox Code Playgroud) 我正在尝试从我的数据集返回一个总计/平均行,其中包含某些字段的SUM和其他字段的AVG.
我可以在SQL中执行以下操作:
SELECT SUM(field1) as SumFld, AVG(field2) as AvgFld
FROM Rating WHERE url=[url_string]
Run Code Online (Sandbox Code Playgroud)
我将此转换为SQLAlchemy的尝试如下:
totals = Rating.query(func.avg(Rating.field2)).filter(Rating.url==url_string.netloc)
Run Code Online (Sandbox Code Playgroud)
但这是错误的:
TypeError: 'BaseQuery' object is not callable
Run Code Online (Sandbox Code Playgroud) 我正在开发一个node.js应用程序,我想在客户端使用我为node.js服务器创建的模块.
一个示例模块是circle.js:
var PI = Math.PI;
exports.area = function (r) {
return PI * r * r;
};
exports.circumference = function (r) {
return 2 * PI * r;
};
Run Code Online (Sandbox Code Playgroud)
而你做的很简单
var circle = require('./circle')
Run Code Online (Sandbox Code Playgroud)
在节点中使用它.
如何在我的客户端javascript的web目录中使用相同的文件?
我会给出一些背景,这是有道理的.我在表(评级)中捕获产品的客户评级,并希望能够根据时间返回评级的累积移动平均值.
一个基本的例子是每天评分:
02 FEB - Rating: 5 - Cum Avg: 5
03 FEB - Rating: 4 - Cum Avg: (5+4)/2 = 4.5
04 FEB - Rating: 1 - Cum Avg: (5+4+1)/3 = 3.3
05 FEB - Rating: 5 - Cum Avg: (5+4+1+5)/4 = 3.75
Etc...
Run Code Online (Sandbox Code Playgroud)
我试图想出一种不会可怕扩展的方法.
我目前的想法是,当一行插入到评级表中时,有一个函数被触发,该表根据该产品的前一行计算出Cum Avg
因此字段将是这样的:
TABLE: Rating
| RatingId | DateTime | ProdId | RatingVal | RatingCnt | CumAvg |
Run Code Online (Sandbox Code Playgroud)
但这似乎是存储数据的一种相当狡猾的方式.
完成此任务的方法是什么(或任何方式)?如果我要使用各种"触发器",你如何在SQLAlchemy中这样做呢?
任何和所有建议表示赞赏!
编辑 - 这个问题似乎已经(至少是暂时的)解决了 - 我不知道为什么我没有改变任何东西让它工作 - 如果再次破坏我会更新
我使用Git-TF(https://gittf.codeplex.com/)将我们现有的Team Foundation版本控制仓库移动到新的Git仓库(两个仓库都在同一个VSTS项目中).
这一切似乎都正常工作.但是现在我们有很多问题.
Error encountered while pushing to the remote repository: Not a valid reference 'origin/development'
405 error我们尝试做的所有事情(放弃/接受 - 它会抛出相同的405错误)编辑:用于设置Git仓库的步骤
一旦建立了Git回购,就采取了一些措施
回到原点,直到我可以重复这个过程.
编辑:此处示例: [已删除实例 - 问题已解答]
我试图以相同的方式显示此标题字体,它在操作系统之间显示不同.所有OSX和Ubuntu浏览器都显示相同,但是当我在Windows机器上测试时,它的显示方式不同.它在OSX上的显示方式是我希望它显示的方式(底部的一小部分隐藏在下部元素后面).
如果我更改CSS(添加填充或行高),它会修复它为Windows,但为OSX搞砸了.
是否存在一种解决方法,不需要通过javascript或其他东西将OS和浏览器特定的选择器放在页面中?我试图保持代码尽可能纯(即可能最少的hacky修复).
标头和H1的CSS:
#header {
height:70px;
overflow:hidden;
background-image: url('header-canvas2-bg.png');
background-repeat: repeat-x;
background-attachment: fixed;
}
#header h1 {
font-size: 100px;
font-family:'Josefin Sans';
text-align: left;
color:#ffffff;
}
Run Code Online (Sandbox Code Playgroud)
标题的HTML:
<head>
<link href='http://fonts.googleapis.com/css?family=Josefin+Sans:700' rel='stylesheet' type='text/css'>
<!--SNIP-->
</head>
<body>
<div id="header">
<h1><a href="#">testing font</a></h1>
</div>
<!--SNIP-->
</body>
Run Code Online (Sandbox Code Playgroud)
OSX上的Chrome显示

Win 7上的Chrome显示

编辑:此处示例: [已删除实例 - 问题已解答]
我有一个多部分表单来生成 - 想一下类似的工作流程到购物车,你有一个表格的多个"部分"(例如细节,账单,支付等),一次显示一个.
关键细节:
我考虑接近这个的方式:
def并存储一个值request.args告诉我我在哪个"部分"然后render_template根据部分使用不同的Form模板.这感觉很糟糕......在Flask/WTForms中实现这一目标的最佳方法是什么?我上面发布的方法似乎都没有,我毫不怀疑这是一个相当普遍的要求.
flask ×4
python ×4
sqlalchemy ×3
azure-devops ×1
css ×1
git ×1
html ×1
javascript ×1
node.js ×1
wtforms ×1