Virink's Blog logo

Virink's Blog

Let life be beautiful like summer flowers, and death like autume leaves.

 Flask-mongoengine 用法小記

模型設置

from mongoengine.errors import ValidationError
from mongoengine.queryset import (DoesNotExist, MultipleObjectsReturned)
import flask_mongoengine

db = app.db

# 自定義定義BaseQuerySet添加_get方法
class BaseQuerySet(flask_mongoengine.BaseQuerySet):
    def _get(self, *args, **kwargs):
        print args, kwargs
        try:
            return self.get(*args, **kwargs)
        except (MultipleObjectsReturned, DoesNotExist, ValidationError):
            return False

# 重寫 Document 父類
class Document(db.Document):
    meta = {'abstract': True,
            'queryset_class': BaseQuerySet}

# Users模型
class Users(Document):
    username = db.StringField(unique=True)
    password = db.StringField()
    email = db.StringField(unique=True)
    info = db.StringField()
    website = db.StringField()
    code = db.StringField(unique=True)
    role = db.IntField(default=0)
    verified = db.BooleanField(default=False)
    ban = db.BooleanField(default=False)
    date = db.DateTimeField(default=datetime.datetime.now())

增刪改查

添加數據

user = Users(username=username,password=password [,**data])
user.email = email
# ...
user.save()

or

Users(username=username,password=password [,**data]).save()

修改數據

user = Users.objects._get(username=username)
if user:
    user.password = 'new password'
    user.save()
    # or
    user.update() # 這個用法我不懂哇

刪除數據

user = Users.objects._get(username=username,password=password [, **data])
if user:
    user.delete()

查詢數據

列出所有數據

user = Users.objects.all()

條件查詢

user = Users.objects._get(username=username [,**data])
if user:
print user.password

本文标题 : Flask-mongoengine 用法小記
文章作者 : Virink
发布时间 :  
最后更新 :  
本文链接 : https://www.virzz.com/2017/02/06/flask_mongoengine.html
转载声明 : 转载请保留原文链接及作者。
转载说明 : 本卡片有模板生成,本人转载来的文章请忽略~~