小编sil*_*ger的帖子

难以使用sqlalchemy marshmallow序列化地理列类型

我试图使用Marshmallow做反序列化和序列化SQLAlchemy对象,但在处理ORM中的Geography字段时遇到问题.

首先是模型:

class Address(db.Model, TableColumnsBase):
    __tablename__ = 'address'
    addressLine1 = db.Column(String(255), nullable=True, info="Street address, company name, c/o")
    addressLine2 = db.Column(String(255), nullable=True, info="Apartment, suite, unit, building floor, etc")
    countryCode = db.Column(String(255), nullable=True, info="Country code such as AU, US etc")
    suburb = db.Column(String(255), nullable=True, info="Users suburb such as Elizabeth Bay")
    postcode = db.Column(String(32), nullable=True, info="Users postcode such as 2011 for Elizabeth Bay")
    state = db.Column(String(64), info="State for user such as NSW")
    user_presence = one_to_many('UserPresence', backref = 'user', lazy='select', cascade='all, delete-orphan')

    location = …
Run Code Online (Sandbox Code Playgroud)

postgis sqlalchemy python-2.7 geoalchemy marshmallow

8
推荐指数
2
解决办法
1429
查看次数

在Heroku上使用kue-scheduler和ParseServer

在使用heroku redis插件在heroku上运行kue-scheduler时,虽然我可以让kue作业工作,但似乎kue-scheduler需要在heroku redis环境中不允许某些redis配置.有没有人在Heroku环境中成功运行kue-scheduler.这是我的index.js文件的开头:

var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var path = require('path');

var kue = require('kue-scheduler')
var queue = kue.createQueue({redis:
        'redis://h:***************@ec2-**-19-83-130.compute-1.amazonaws.com:23539'
        });

var job = queue.create('test', {
    title: 'Hello world'
  , to: 'j@example.com'
  , template: 'welcome-email'
}).save( function(err){
   if( !err ) console.log( job.id );
});

job.log('$Job %s run', job.id);

queue.every('30 seconds', job);

queue.process('test', function(job, done){
  test_function(job.data.title, done);
});

function test_function(title, done) {
  console.log('Ran test function with title %s', title)
  // email send stuff...
  done();
}
Run Code Online (Sandbox Code Playgroud)

这是错误.

2016-07-21T00:46:26.445297+00:00 …
Run Code Online (Sandbox Code Playgroud)

heroku redis parse-platform kue

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

Flask-SQLAlchemy 单元测试失败 InvalidRequestError: 表 '{table_name}' 已为此元数据实例定义

我正在使用 Flask、SQLAlchemy 构建 API 服务,最近还集成了 Flask-SQLAlchemy 扩展。虽然我可以独立运行应用程序并成功进行 API 调用,但在尝试运行单元测试时遇到了问题。我认为问题在于多次导入 db.Model 类型。

例外是这样的:

Error
Traceback (most recent call last):
  File "/Users/james/.pyenv/versions/2.7.10/lib/python2.7/unittest/case.py", line 322, in run
    self.setUp()
  File "/Users/james/Documents/workspace/trustmile-backend/trustmile/tests/test_users.py", line 28, in setUp
    from trustmile.app.users.model import User, ConsumerUser, CourierUser, AuthSession, Location, UserAddress, db
  File "/Users/james/Documents/workspace/trustmile-backend/trustmile/app/users/model.py", line 23, in <module>
    class User(db.Model, UniqueMixin, TableColumnsBase, References):
  File "/Users/james/.virtualenvs/trustmile-api-p2710/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py", line 536, in __init__
    DeclarativeMeta.__init__(self, name, bases, d)
  File "/Users/james/.virtualenvs/trustmile-api-p2710/lib/python2.7/site-packages/sqlalchemy/ext/declarative/api.py", line 55, in __init__
    _as_declarative(cls, classname, cls.__dict__)
  File "/Users/james/.virtualenvs/trustmile-api-p2710/lib/python2.7/site-packages/sqlalchemy/ext/declarative/base.py", line 88, in _as_declarative
    _MapperConfig.setup_mapping(cls, classname, dict_) …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy

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

附加到 SQLAlchemy 列表时出错

请注意,这不是此问题的副本

我只是想添加到在我的模型中的 one_to_many 关系中定义的列表,如下所示。这是我的模型:

class TrustmileDelivery(db.Model, UniqueMixin, TableColumnsBase):
    __tablename__ = 'trustmile_delivery'

    articles = one_to_many('Article', backref='delivery', lazy='select')
    # Problem with this is getting a cascade error
    neighbour = many_to_one('ConsumerUser', backref='trustmile_deliveries', lazy='select')
    courier_user = many_to_one('CourierUser', backref='deliveries', lazy='select')
    state = db.Column(db.String(255), )
Run Code Online (Sandbox Code Playgroud)

当我尝试通过以下方式创建时:

 @classmethod
    def create(cls, user, articles):
        return TrustmileDelivery(user, articles)
Run Code Online (Sandbox Code Playgroud)

INIT(..)函数是:

def __init__(self, courier_user, articles):
    self.courier_user = courier_user
    if len(articles):
        self.articles.append(articles)
Run Code Online (Sandbox Code Playgroud)

我得到以下堆栈跟踪:

Traceback (most recent call last):
  File "/Users/james/Documents/workspace/trustmile-backend/trustmile/tests/test_deliveries.py", line 66, in test_create_trustmile_delivery
    tm_delivery = TrustmileDelivery.create(courier_user, articles)
  File …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

从解析迁移中未定义_User表

明天宣布解析后,开始迁移到我自己的mongo数据库.

我已完成迁移操作并且数据似乎存在但是任何下划线表都不适用于Mongo shell.我并不特别熟练,但这就是我所看到的:

> show databases
local  0.078GB
test   0.203GB
> use test
switched to db test
> show collections
Chat
ChatStatus
Message
Session
SessionBooking
TrainerProfile
UserFavorite
_Cardinality
_Index
_Installation
_JobSchedule
_JobStatus
_PushStatus
_SCHEMA
_User
system.indexes
> users = db._User.find()
2016-02-09T01:07:31.394+0000 E QUERY    TypeError: Cannot call method 'find' of undefined
    at (shell):1:18
Run Code Online (Sandbox Code Playgroud)

我不确定为什么它呈现为未定义.非常感谢.

mongodb parse-platform

5
推荐指数
0
解决办法
915
查看次数

运行Flask容器时,没有来自pycharm概要分析的输出

运行PyCharm 4.5.3 Build#141.1899专业版并获得许可.我使用profiler命令运行Flask应用程序,使用类似于以下的配置:

python app.py
Run Code Online (Sandbox Code Playgroud)

看起来像:

def create_app():
app = Flask(__name__, static_folder='static')
app.register_blueprint(
    consumer_v1.bp,
    url_prefix='/consumer/v1')
return app

app = create_app()

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5001)
Run Code Online (Sandbox Code Playgroud)

当我转到"运行 - >配置文件应用程序"时,我在控制台上看到以下内容:

   /Users/james/.virtualenvs/trustmile-api/bin/python   /Applications/PyCharm.app/Contents/helpers/profiler/run_profiler.py 127.0.0.1 49537 /Users/james/Documents/workspace/trustmile-backend/trustmile/api_stubs/api_stubs/__init__.py
Starting cProfile profiler

2015-09-01 07:00:25,717 INFO  [werkzeug][MainThread]  * Running on http://0.0.0.0:5001/ (Press CTRL+C to quit)
2015-09-01 07:00:25,723 INFO  [werkzeug][MainThread]  * Restarting with stat
2015-09-01 07:00:32,801 INFO  [werkzeug][Thread-1] 127.0.0.1 - - [01/Sep/2015 07:00:32] "POST /consumer/v1/account/password HTTP/1.1" 403 -
Snapshot saved to /Users/XXXX/Library/Caches/PyCharm40/snapshots/trustmile-backend5.pstat
Process finished with exit …
Run Code Online (Sandbox Code Playgroud)

python pycharm

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

使用 Cloudformation 将分区投影添加到 AWS Athena 表

我有一个使用 cloudformation 中指定的模板定义的 Athena 表:

云信息创建

EventsTable:
  Type: AWS::Glue::Table
  Properties:
    CatalogId: !Ref AWS::AccountId
    DatabaseName: !Ref DatabaseName
    TableInput:
      Description: "My Table"
      Name: !Ref TableName
      TableType: EXTERNAL_TABLE
      StorageDescriptor:
        Compressed: True
        Columns:
          - Name: account_id
            Type: string
            Comment: "Account Id of the account making the request"
            ...
        InputFormat: org.apache.hadoop.mapred.TextInputFormat
        SerdeInfo:
          SerializationLibrary: org.openx.data.jsonserde.JsonSerDe
        OutputFormat: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat
        Location: !Sub "s3://${EventsBucketName}/events/"


Run Code Online (Sandbox Code Playgroud)

这运行良好并且可以部署。我还发现我可以根据此文档和此文档创建分区投影

并且可以通过直接创建表来实现这一点,大致如下:

SQL创建

CREATE EXTERNAL TABLE `performance_data.events`
(
  `account_id`  string,
...
)
   PARTITIONED BY (
     `day` string)
    ROW FORMAT SERDE
        'org.openx.data.jsonserde.JsonSerDe'
    STORED AS …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation amazon-athena

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