Hi,
To use a database with Nagare you need to activate the database in the
configuration file and define some SQLAlchemy entities in your code.
Here is an example of a persistent 'Counter'.
1. Install the database extension of Nagare
easy_install "nagare[database]"
2. Create the application structure
nagare-admin create-app counter
cd counter
python setup.py counter
3. Configure the database
In the 'conf/counter.cfg' file, set the 'activated' parameter of the
'[database]' section to 'on'.
You can see by default the database is a SQLLite one:
[application]
path = app counter
name = counter
debug = off
[database]
activated = on
uri = sqlite:///$here/../data/counter.db
metadata = counter.models:__metadata__
debug = off
4. Defined your SQLAlchemy entities in the 'counter/models.py' file. Here a
'Counter':
from elixir import *
from sqlalchemy import MetaData
from nagare import presentation
__metadata__ = MetaData()
class Counter(Entity):
name = Field(String)
value = Field(Integer)
def decrease(self):
self.value -= 1
def increase(self):
self.value += 1
@presentation.render_for(Counter)
def render_counter(self, h, *args):
h << h.div(self.value)
with h.div:
h << h.a('--').action(self.decrease)
h << ' | '
h << h.a('++').action(self.increase)
return h.root
5. In the 'counter/app.py' file, code the application to create the counter
with its initial value and to display it:
from nagare import presentation, component
from .models import Counter
class App(object):
def __init__(self):
counter = Counter.get_by(name='MyCounter') # Fetch the counter
if counter is None:
# Create the counter in database
counter = Counter(name='MyCounter', value=0)
counter.flush()
self.counter = component.Component(counter)
@presentation.render_for(App)
def render_app(self, h, *args):
h << h.h1('Counter in database')
h << self.counter
return h.root
app = App
6. Create the database structure. Nagare will discover your SQLAlchemy
entities and create the database tables:
nagare-admin create-db --drop --debug counter
7. Launch the application
nagare-admin serve --reload counter
8. Enjoy!
Post by En WareDoes anyone have any examples how to print out records from a sqlite3
database to the nagare app?
--
You received this message because you are subscribed to the Google Groups "Nagare users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nagare-users+***@googlegroups.com.
To post to this group, send email to nagare-***@googlegroups.com.
Visit this group at https://groups.google.com/group/nagare-users.
For more options, visit https://groups.google.com/d/optout.