/usr/share/doc/python-werkzeug-doc/examples/plnt/database.py is in python-werkzeug-doc 0.10.4+dfsg1-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | # -*- coding: utf-8 -*-
"""
plnt.database
~~~~~~~~~~~~~
The database definitions for the planet.
:copyright: (c) 2009 by the Werkzeug Team, see AUTHORS for more details.
:license: BSD.
"""
from sqlalchemy import MetaData, Table, Column, ForeignKey, Boolean, \
Integer, String, DateTime
from sqlalchemy.orm import dynamic_loader, scoped_session, create_session, \
mapper
from plnt.utils import application, local_manager
def new_db_session():
return create_session(application.database_engine, autoflush=True,
autocommit=False)
metadata = MetaData()
session = scoped_session(new_db_session, local_manager.get_ident)
blog_table = Table('blogs', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(120)),
Column('description', String),
Column('url', String(200)),
Column('feed_url', String(250))
)
entry_table = Table('entries', metadata,
Column('id', Integer, primary_key=True),
Column('blog_id', Integer, ForeignKey('blogs.id')),
Column('guid', String(200), unique=True),
Column('title', String(140)),
Column('url', String(200)),
Column('text', String),
Column('pub_date', DateTime),
Column('last_update', DateTime)
)
class Blog(object):
query = session.query_property()
def __init__(self, name, url, feed_url, description=u''):
self.name = name
self.url = url
self.feed_url = feed_url
self.description = description
def __repr__(self):
return '<%s %r>' % (self.__class__.__name__, self.url)
class Entry(object):
query = session.query_property()
def __repr__(self):
return '<%s %r>' % (self.__class__.__name__, self.guid)
mapper(Entry, entry_table)
mapper(Blog, blog_table, properties=dict(
entries=dynamic_loader(Entry, backref='blog')
))
|