doc/book/pyramid/quickstart.rst
author Denis Laxalde <denis.laxalde@logilab.fr>
Wed, 13 Jun 2018 11:09:17 +0200
branch3.26
changeset 12323 562b09ec963a
parent 12097 78a5c6a64fad
permissions -rw-r--r--
[py3] Let InstanceCommand.run_arg() always return an int The caller of this method (which is method "run_args") does `max(status, self.run_arg(appid))` and run_arg might return None if the underlying <cmdname>_instance method returns None. On python3 max(1, None) breaks with "TypeError: unorderable types: int() > NoneType()". So we enforce run_arg() method to return an integer even if the underlying method returns None. This fixes call of "cubicweb-ctl i18ninstance" with Python3.

Quick start
===========

.. highlight:: bash

Prerequites
-----------

Install the *pyramid* flavour of CubicWeb (here with pip, possibly in a
virtualenv):

::

        pip install cubicweb[pyramid]


Instance creation and running
-----------------------------

In *backwards compatible* mode
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In this mode, you can simply create an instance of kind ``all-in-one`` with
the ``cubicweb-ctl create`` command. You'll then need to add a ``pyramid.ini``
file in your instance directory, see :ref:`pyramid_settings` for details about the
content of this file.

Start the instance with the :ref:`'pyramid' command <cubicweb-ctl_pyramid>`
instead of 'start':

::

    cubicweb-ctl pyramid --debug myinstance


Without *backwards compatibility*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In this mode, you can create an instance of kind ``pyramid`` as follow:

::

    cubicweb-ctl create -c pyramid <cube_name> <instance_name>

This will bootstrap a ``development.ini`` file typical of a Pyramid
application in the instance's directory. The new instance may then be launched
by any WSGI server, for instance with pserve_:

::

    pserve etc/cubicweb.d/<instance_name>/development.ini


In a pyramid application
~~~~~~~~~~~~~~~~~~~~~~~~

-   Create a pyramid application

-   Include cubicweb.pyramid:

    .. code-block:: python

        def includeme(config):
            # ...
            config.include('cubicweb.pyramid')
            # ...

-   Configure the instance name (in the .ini file):

    .. code-block:: ini

        cubicweb.instance = myinstance

-   Configure the base-url in all-in-one.conf to match the ones of the pyramid
    configuration (this is a temporary limitation).


.. _pserve: \
    http://docs.pylonsproject.org/projects/pyramid/en/latest/pscripts/pserve.html