API¶

Python应用可以在自己的工作流中集成 pycsw 。这样就允许在 Flask与 Django 这样的框架中无缝集成

下面是一些使用API的示例(相对于默认的WSGI/CGI服务,可以使用:

简单的 Flask 示例

import logging

from flask import Flask, request

from pycsw import __version__ as pycsw_version
from pycsw.server import Csw

LOGGER = logging.getLogger(__name__)
APP = Flask(__name__)

@APP.route('/csw')
def csw_wrapper():
    """CSW wrapper"""

    LOGGER.info('Running pycsw %s', pycsw_version)

    pycsw_config = some_dict  # really comes from somewhere

    # initialize pycsw
    # pycsw_config: either a ConfigParser object or a dict of
    # the pycsw configuration
    #
    # env: dict of (HTTP) environment (defaults to os.environ)
    #
    # version: defaults to '3.0.0'
    my_csw = Csw(pycsw_config, request.environ, version='2.0.2')

    # dispatch the request
    http_status_code, response = my_csw.dispatch_wsgi()

    return response, http_status_code, {'Content-type': csw.contenttype}