小编mal*_*wan的帖子

jsonify在Flask中的SQLAlchemy结果集

我正在尝试在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)

python sqlalchemy flask flask-sqlalchemy

112
推荐指数
7
解决办法
11万
查看次数

如何在SQLAlchemy查询中使用avg和sum

我正在尝试从我的数据集返回一个总计/平均行,其中包含某些字段的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)

python sqlalchemy flask flask-sqlalchemy

34
推荐指数
2
解决办法
3万
查看次数

node.js和浏览器javascript中的常用模块

我正在开发一个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目录中使用相同的文件?

javascript node.js

30
推荐指数
2
解决办法
7710
查看次数

如何在Python/SQLAlchemy/Flask中计算累积移动平均值

我会给出一些背景,这是有道理的.我在表(评级)中捕获产品的客户评级,并希望能够根据时间返回评级的累积移动平均值.

一个基本的例子是每天评分:

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中这样做呢?

任何和所有建议表示赞赏!

python sqlalchemy flask flask-sqlalchemy

8
推荐指数
1
解决办法
3222
查看次数

VSTS:推送到远程存储库时遇到错误:不是有效的引用'origin/development'

编辑 - 这个问题似乎已经(至少是暂时的)解决了 - 我不知道为什么我没有改变任何东西让它工作 - 如果再次破坏我会更新

我使用Git-TF(https://gittf.codeplex.com/)将我们现有的Team Foundation版本控制仓库移动到新的Git仓库(两个仓库都在同一个VSTS项目中).

这一切似乎都正常工作.但是现在我们有很多问题.

  • 尝试将更改从本地分支推送到远程分支会收到以下错误:

Error encountered while pushing to the remote repository: Not a valid reference 'origin/development'

  • 但是,使用"同步"命令可以正常工作并将更改成功推送到远程.
  • 也许是最大的问题 - 我们只能让Pull Request工作一次.现在每个Pull Request都会抛出405 error我们尝试做的所有事情(放弃/接受 - 它会抛出相同的405错误)

在此输入图像描述

编辑:用于设置Git仓库的步骤

  1. 在我的本地计算机上下载并安装了Git和Git-tf
  2. 通过git-tf在本地克隆TFVC repo
  3. 通过VSTS创建了一个新的Git Repo
  4. 在我的本地计算机上将新repo设置为remote
  5. 将完整的历史推向了Git Repo

一旦建立了Git回购,就采取了一些措施

  1. 从主人那里创建了一个开发分支
  2. 通过Vis Studio在本地检查开发分支
  3. 从本地开发分支创建了一个新的本地分支
  4. 做出改变和一些提交
  5. 将本地分支发布到远程
  6. 单击Vis Studio中的"创建拉取请求"
  7. 本地源分支:测试分支,远程目标:开发 - 然后单击"创建"
  8. 没有合并冲突,我审查自己的工作和接受 - 到目前为止很好
  9. 单击Complete Pull Request,选中"合并后删除分支",然后单击"完成合并"
  10. 这一次它真的有效......令人愤怒......过去两天它还没有奏效......

回到原点,直到我可以重复这个过程.

git visual-studio azure-devops

7
推荐指数
2
解决办法
1万
查看次数

CSS文本在OSX/Windows之间显示不同

编辑:此处示例: [已删除实例 - 问题已解答]

我试图以相同的方式显示此标题字体,它在操作系统之间显示不同.所有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显示

在此输入图像描述

编辑:此处示例: [已删除实例 - 问题已解答]

html css

6
推荐指数
1
解决办法
3310
查看次数

使用Flask/WTForms的多部分表单

我有一个多部分表单来生成 - 想一下类似的工作流程到购物车,你有一个表格的多个"部分"(例如细节,账单,支付等),一次显示一个.

关键细节:

  • 我有3个部分的表格
  • 这些部分必须按顺序完成,第2部分依赖第1部分的信息
  • 表单数据是无用的(例如将被丢弃),除非该人完成了FULL过程(第1,2和3节).

我考虑接近这个的方式:

  • 使用一个Route def并存储一个值request.args告诉我我在哪个"部分"然后render_template根据部分使用不同的Form模板.这感觉很糟糕......
  • 为每个部分设置不同的路径和视图.这感觉不对,我不得不阻止人们通过URL直接进入第2步
  • 将所有Sections放在一个表单上,使用Javascript隐藏一个表单的某些部分并在这些部分之间移动

在Flask/WTForms中实现这一目标的最佳方法是什么?我上面发布的方法似乎都没有,我毫不怀疑这是一个相当普遍的要求.

python flask wtforms flask-wtforms

5
推荐指数
1
解决办法
1918
查看次数