Exemplo n.º 1
0
import datetime
import json

from bson.objectid import ObjectId
from flasgger import Swagger
from flask import Flask
from pymongo import MongoClient

from web.util import get_logger
from web.setting import MONGO_URI

log = get_logger(__name__)
flask = Flask(__name__)
flask.config.from_object("web.setting")
# swagger configuration see web.setting, for more info: https://github.com/flasgger/flasgger
# swagger yml definition: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#parameterObject
swagger = Swagger(flask)

# pymongo
dict_db = MongoClient(MONGO_URI, tz_aware=True)['dict']


class JSONEncoder(json.JSONEncoder):
    """ extend json-encoder class"""
    def default(self, o):
        if isinstance(o, ObjectId):
            return str(o)
        if isinstance(o, datetime.datetime):
            return str(o)
        return json.JSONEncoder.default(self, o)
Exemplo n.º 2
0
import re
from datetime import datetime

from bson import ObjectId
from bson.codec_options import CodecOptions
from pymongo import ASCENDING, DESCENDING

from web.flask import dict_db, redis
from web.setting import AUTH_TOKEN_PREFIX
from web.util import china_tz, get_logger, local_tz, random_alphanumeric, to_json, parse_json, sha256_pwd
from web.util.error import Error

log = get_logger(__file__)
# 配置datetime时区
db = dict_db.History.with_options(
    codec_options=CodecOptions(tz_aware=True, tzinfo=local_tz))

# index setting
db.create_index([("title", ASCENDING)], unique=True)
# Default projects for history
__projection = {'_id': 1, 'title': 1,
                'content': 1, 'created_at': 1, 'updated_at': 1}


def save_by_title(history: dict):
    """
    Save a new history with field title as index
    :return:
    """
    title = history.get('title')
    if not title: