设定数据库虽然Turbogears需要配置的东西很少,但数据库的设定总归是需要的吧?我们可以在代码中设定,但是quickstart其实已经帮我们生成必要的ini格式的配置文件了因为我们现在是在开发环境中而不是发布环境中,所以我们需要编辑"dev.cfg"文件.只需要把对应的sqlobject.dburi设定取消注释,然后加上必要的信息(host,username,password,数据库名称等等)即可停止web服务(control-c),然后重新运行启动脚本python wiki20-start.py创建数据库既然我们已经在model.py中创建了我们的数据库结构,加上我们又告诉了turbogear数据库的位置(设定数据库),现在就可以真正的创建数据库了tg-admin sql createtg-admin sql命令是对SQLObject库 sqlobject-admin的一个封装,这个命令寻找在配置文件里的相关信息来连接数据库显示wiki页面简单的无法相信,但我们确实已经做好显示页面的准备了.第一步,把welcome.kid改名为page.kid然后,我们更改page.kid模板的内容<div style="float:right; width: 10em"> Viewing <span py:replace="pagename">Page Name Goes Here</span> <br/> You can return to the <a href="/">FrontPage</a>. </div> <div py:replace="XML(data)">Page text goes here.</div> 你可以直接用浏览器浏览kid文件.那些占位文字可以帮你提前查看调整页面的布局.Turbogears尽可能的减少了你索要编写的代码量,但不是完全避免.让我们首先在controller.py里加上一些importsfrom model import Page, hub from docutils.core import publish_parts接着,我们改写index方法:1.重新设置模板为page.kid2.设置一个默认的页面名pagename="FrontPage"3.从数据库里读取页面4.格式化取出的文本5.正确处理unicode6.返回文本给模板@turbogears.expose(html="wiki20.templates.page") def index(self, pagename="FrontPage"): page = Page.byPagename(pagename) content = publish_parts(page.data, writer_name="html")["html_body"] return dict(data=content, pagename=page.pagename) 只需要6行代码即可!我们最后返回的字典变量不但为模板提供了数据而且还有其他魔力,我们后面会见识到如果你浏览页面时在publish_parts这一句遇到KeyError错误,那么你就需要更新docutils库到最新版 |