Exemplo n.º 1
0
def create_category():
    # 创建分类
    params: Dict[str, Any] = parse_params_from_request()
    keys: List[str] = ["name"]
    for key in keys:
        if not params.get(key):
            raise ParameterException(message="{} 缺失".format(key))

    name: str = params["name"]

    payload: Dict[str, int] = {}
    exists_model: Union[Category, None] = None
    try:
        exists_model = db.session.query(Category).filter_by(name=name)
        payload.setdefault("id", exists_model.id)
    except NoResultFound:
        exists_model = Category(name)
        db.session.add(exists_model)
        db.session.commit(exists_model)
        payload.setdefault("id", exists_model.id)
    except MultipleResultsFound:
        exists_model = db.session.query(Category).filter_by(name=name).first()
        payload.setdefault("id", exists_model.id)
    else:
        raise UnknownExeception()

    return response_success(body=payload)
Exemplo n.º 2
0
    def post(self):
        contentForm = _OneWrodForm()
        if not contentForm.validate():
            raise ParameterException(unique_data=contentForm.errors)
        params: Dict[str, Any] = parse_params_from_request()

        content: str = contentForm.content.data
        # 根据content字符判断是否重复
        exists_model: Union[OneWordModel, None] = None
        payload: Dict[str, int] = {}
        try:
            exists_model = db.session.query(OneWordModel).filter_by(
                content=content).one()
            payload.setdefault("id", exists_model.id)
        except NoResultFound:
            translate: Union[str, None] = params.get("translate")
            picture: Union[str, None] = params.get("picture")
            model: OneWordModel = OneWordModel(content=content,
                                               translate=translate,
                                               picture=picture,
                                               author=params.get("author"))
            db.session.add(model)
            db.session.commit()
            payload.setdefault("id", model.id)
        except MultipleResultsFound:
            exists_model = db.session.query(OneWordModel).filter_by(
                content=content).first()
            payload.setdefault("id", exists_model.id)
        except Exception as e:
            raise e

        return response_success(body=payload)
Exemplo n.º 3
0
def get_site_by_categories():
    # 根据传入的分类id,来获得分页的网站数据
    params: Dict[str, Any] = parse_params_from_request()
    category_ids: List[int] = params.get("category_ids") or []
    models: List[WebSite] = db.session.query(WebSite).filter(
        WebSite.category_id.in_(category_ids)).all() or []
    payload: List[Dict[str, Union[str, int]]] = [m.to_dict() for m in models]
    return response_success(body=payload)
Exemplo n.º 4
0
def list_rss():
    params = parse_params_from_request()
    # pages
    pages = params.get('pages') or 0
    limit = params.get('limit') or 10
    payload = [
        item.get_info() for item in RssModel.query.filter(
            RssModel.rss_state != 1).limit(limit).offset(pages * limit).all()
    ]
    return response_success(payload)
Exemplo n.º 5
0
def query_rss_content():

    params = parse_params_from_request()
    # pages
    pages = int(params.get('pages') or '0')
    limit = int(params.get('limit') or '10')
    query = RssContentModel.query.filter().order_by(
        RssContentModel.published_time.desc()).limit(limit).offset(pages *
                                                                   limit)
    items = query.all()
    payload = [item.get_info() for item in items]
    return response_success(payload)
Exemplo n.º 6
0
    def __init__(self):

        params = parse_params_from_request()

        super(FlaskAPIForm, self).__init__(data=params)