[PR] この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。
# invalidate the URI when specifying a SQLite db via path name
sqlalchemy.default.url = sqlite:///%(here)s/helloworld.db
#生成されたSQL文を見たい場合
#sqlalchemy.default.echo = true
#このfromを追加
from sqlalchemy import engine_from_config
#def load_environment(global_conf, app_conf):メソッドの末尾に
config['pylons.g'].sa_engine = engine_from_config(config, 'sqlalchemy.default.')
from pylons import config
from sqlalchemy import Column, MetaData, Table, types
from sqlalchemy.orm import mapper
from sqlalchemy.orm import scoped_session, sessionmaker
#セッション生成
Session = scoped_session(sessionmaker(autoflush=True, autocommit=True, bind=config['pylons.g'].sa_engine))
metadata = MetaData()
#テーブル定義
pages_table = Table('pages', metadata,
Column('id', types.Integer(), primary_key=True),
Column('title', types.Unicode(), default=''),
Column('content', types.Unicode(), default='')
)
#pagesテーブルを操作するオブジェクト
class Page(object):
def __str__(self):
return self.title
mapper(Page, pages_table)
#このfromを追加
from helloworld.model import Session
#def __call__(self, environ, start_response):の内容を修正
try:
return WSGIController.__call__(self, environ, start_response)
finally:
Session.remove()
import logging
from helloworld.lib.base import *
#このfromを追加
from helloworld.model import Page
log = logging.getLogger(__name__)
class PageController(BaseController):
def index(self):
c.titles = [page.title for page in Session.query(Page).all()]
return render('/list.mako')
% for title in c.titles:
from pysqlite2 import dbapi2 as sqlite
con = sqlite.connect("helloworld.db")
cur = con.cursor()
cur.execute("""
create table pages(
id int not null primary key,
title text default '',
content text default ''
)
""")
con.commit()
cur.execute("insert into pages(id,title,content) values (1,'title_data1','content_data1')")
cur.execute("insert into pages(id,title,content) values (2,'title_data2','content_data2')")
cur.execute("insert into pages(id,title,content) values (3,'title_data3','content_data3')")
cur.execute("insert into pages(id,title,content) values (4,'title_data4','content_data4')")
cur.execute("insert into pages(id,title,content) values (5,'title_data5','content_data5')")
con.commit()
cur.execute("select * from pages")
print 'updated data'
for r in cur:
print r
cur.close()
con.close()
#paster serve --reload development.ini