summaryrefslogtreecommitdiff
path: root/docs/tutorials/bfgwiki2/definingmodels.rst
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2010-10-25 17:58:23 -0400
committerChris McDonough <chrism@plope.com>2010-10-25 17:58:23 -0400
commitc426c49cd433997aac10045052d77d9c749680b2 (patch)
tree4dc3c7664ad9492b80771eb9c55fa0d2bfe22162 /docs/tutorials/bfgwiki2/definingmodels.rst
parente26700528995b1807c5e55a4295a6f788a5603de (diff)
downloadpyramid-c426c49cd433997aac10045052d77d9c749680b2.tar.gz
pyramid-c426c49cd433997aac10045052d77d9c749680b2.tar.bz2
pyramid-c426c49cd433997aac10045052d77d9c749680b2.zip
remove bfgwiki2 old dir
Diffstat (limited to 'docs/tutorials/bfgwiki2/definingmodels.rst')
-rw-r--r--docs/tutorials/bfgwiki2/definingmodels.rst78
1 files changed, 0 insertions, 78 deletions
diff --git a/docs/tutorials/bfgwiki2/definingmodels.rst b/docs/tutorials/bfgwiki2/definingmodels.rst
deleted file mode 100644
index 378f7beda..000000000
--- a/docs/tutorials/bfgwiki2/definingmodels.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-===============
-Defining Models
-===============
-
-The first change we'll make to our stock paster-generated application
-will be to define a :term:`model` constructor representing a wiki
-page. We'll do this inside our ``models.py`` file.
-
-The source code for this tutorial stage can be browsed at
-`docs.repoze.org <http://docs.repoze.org/bfgwiki2-1.3/models>`_.
-
-Making Edits to ``models.py``
------------------------------
-
-.. note::
-
- There is nothing automagically special about the filename
- ``models.py``. A project may have many models throughout its
- codebase in arbitrarily-named files. Files implementing models
- often have ``model`` in their filenames (or they may live in a
- Python subpackage of your application package named ``models``) ,
- but this is only by convention.
-
-The first thing we want to do is remove the stock ``Model`` class from
-the generated ``models.py`` file. The ``Model`` class is only a
-sample and we're not going to use it.
-
-Then, we'll add a ``Page`` class. Because this is a SQLAlchemy
-application, this class should inherit from an instance of
-:class:`sqlalchemy.ext.declarative.declarative_base`. Declarative
-SQLAlchemy models are easier to use than directly-mapped ones. The
-code generated by our ``routesalchemy`` paster template does not use
-declarative SQLAlchemy syntax, so we'll need to change various things
-to begin to use declarative syntax.
-
-Our ``Page`` class will have a class level attribute ``__tablename__``
-which equals the string ``pages``. This means that SQLAlchemy will
-store our wiki data in a SQL table named ``pages``. Our Page class
-will also have class-level attributes named ``id``, ``pagename`` and
-``data`` (all instances of :class:`sqlalchemy.Column`). These will
-map to columns in the ``pages`` table. The ``id`` attribute will be
-the primary key in the table. The ``name`` attribute will be a text
-attribute, each value of which needs to be unique within the column.
-The ``data`` attribute is a text attribute that will hold the body of
-each page.
-
-We'll also remove our ``populate`` function. We'll inline the
-populate step into ``initialize_sql``, changing our ``initialize_sql``
-function to add a FrontPage object to our database at startup time.
-We're also going to use slightly different binding syntax. It will
-will otherwise largely be the same as the ``initialize_sql`` in the
-paster-generated ``models.py``.
-
-Our DBSession assignment stays the same as the original generated
-``models.py``.
-
-Looking at the Result of Our Edits to ``models.py``
----------------------------------------------------
-
-The result of all of our edits to ``models.py`` will end up looking
-something like this:
-
-.. literalinclude:: src/models/tutorial/models.py
- :linenos:
- :language: python
-
-Viewing the Application in a Browser
-------------------------------------
-
-We can't. At this point, our system is in a "non-runnable" state;
-we'll need to change view-related files in the next chapter to be able
-to start the application successfully. If you try to start the
-application, you'll wind up with a Python traceback on your console
-that ends with this exception:
-
-.. code-block:: text
-
- ImportError: cannot import name MyModel