小编gce*_*rar的帖子

使用marshmallow中的数据更新行(SQLAlchemy)

我正在使用Flask,Flask-SQLAlchemy,Flask-Marshmallow + marshmallow-sqlalchemy,试图实现REST api PUT方法.我没有找到任何使用SQLA和Marshmallow实现更新的教程.

这是代码:

class NodeSchema(ma.Schema):
    # ...


class NodeAPI(MethodView):
    decorators = [login_required, ]
    model = Node

    def get_queryset(self):
        if g.user.is_admin:
            return self.model.query
        return self.model.query.filter(self.model.owner == g.user)

    def put(self, node_id):
        json_data = request.get_json()
        if not json_data:
            return jsonify({'message': 'Invalid request'}), 400

        # Here is part which I can't make it work for me
        data, errors = node_schema.load(json_data)
        if errors:
            return jsonify(errors), 422

        queryset = self.get_queryset()


        node = queryset.filter(Node.id == node_id).first_or_404()
        # Here I need some way to update …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy marshmallow

17
推荐指数
3
解决办法
7100
查看次数

如何在OAuth提供程序重定向后为用户提供JWT令牌?

我正在实施OAuth(使用rauth)并将提供JWT令牌(使用flask-jwt),javascript前端(Angular1).我已经完成了基于经典cookie /会话的应用程序.有用.现在我想用JWT令牌来做.

如果我理解正确,用户将被重定向到提供商(例如谷歌),登录帐户,我的服务器和提供商做魔术,然后提供商将用户重定向回我的页面.现在我获得了用户个人资料,结束了OAuth部分.通过正常会话,您可以为用户设置cookie以及其他用于设置会话的内容,然后将其重定向到主页.

这就是我被困住的地方.有什么好的做法如何在提供商发回给用户后给用户JWT令牌?在重定向到主页时将其作为cookie提供给用户?把它放在标题中?据我所知,我需要javascript将令牌保存到LocalStorage/SessionStorage.

oauth jwt rauth

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

Flask-SQLAlchemy使用多个requred标签查询多对多标记

我已经定义了模型:

tags = db.Table('tags',
                db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')),
                db.Column('photo_id', db.Integer, db.ForeignKey('photo.id')),
                )


class Tag(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(32), unique=True)


class Photo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    sha1sum = db.Column(db.LargeBinary(20), unique=True)
    ...
    tags = db.relationship('Tag', secondary=tags,
                           backref=db.backref('photos', lazy='dynamic'))
Run Code Online (Sandbox Code Playgroud)

在烧瓶控制器/视图中,我获得了一些输入标签['summer', 'selfie', ...].

问题:

  1. 高效查询包含所有请求标签的照片?
  2. 如何扩展搜索不完整的标签,如['summ', 'elfi', ...]

tagging many-to-many sqlalchemy flask flask-sqlalchemy

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