`
k_cancer
  • 浏览: 35502 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

TurboGear学习笔记2

阅读更多
确定了再确定,官方文档上的2.1文档其实就是2.0文档.没什么区别.但是2.1其实跟2.0还是有比较大的改动了.

     上一篇博文提出的模板的区别,其实是在quickstart的时候选择了mako模板,所以跟文档不一样.不过觉得mako模板也很容易懂,而且省略genshi的学习.不过因为要先照着famous wiki tutorial学习,所以重新建立了一个项目,不使用mako.

   今天学习的复习.

     1.在master.html中设定边框的设计,网页主题通过使用标签
          
<div class="main_content">
来显示

      2. 
 page = DBSession.query(Page).filter_by(pagename = pagename).one()


         这句话的意思是将Page对象化查询,第一个pagename为pages_table中的字段名,第二个为传递过来的参数,即寻找pagename为参数的Page对象,one()指返回一个,我猜是第一个,没有实验过.

      3.   2,0中的websetup.py在2,1中已经成为一个包含__init__.py,bootstrap.py,schema.py的websetup文件夹.不过内容没太多的变化,只是将websetup拆开了.放在三个模块里面.官方网站中的

     
    page = model.Page("FrontPage", "initial data")
    
    model.DBSession.add(page)
可以放在schema.py文件中,可以正常运行.

      4. 路径问题
       在TG中,action即为路径,action后数据即为变量.如edit/FrontPage,即为将FrontPage传递给action.在TG中,路径似乎只能在RootController中的action实现,路径问题有待完善,这一点在讨论群组里面有提到.

     5.遗留问题.
        在edit action中page = DBSession.query(Page).filter_by(pagename = pagename).one()能找到页面.但是在save action中不能.疑问中.

    现在感觉TG2,rails,ssh,很多东西很相似,不知道是不是我学得太浅的原因,还是其实web都是遵照相通的设计哲学.dive into it.. perhaps I can know it...
分享到:
评论
5 楼 k_cancer 2010-03-04  
JeffreyHsu 写道
mako比genshi强大的多

genshi几乎是最烂的模版系统,快点扔掉

效率极差
基于xml的,对语法格式要求严格,很多高级功能没法实现
比如就不能在javascript和样式表中用到模版功能
没有else语法


嗯...我试试....想着官网上面的例子是genshi..这样 不用再绕着去学习mako..
4 楼 JeffreyHsu 2010-03-04  
mako比genshi强大的多

genshi几乎是最烂的模版系统,快点扔掉

效率极差
基于xml的,对语法格式要求严格,很多高级功能没法实现
比如就不能在javascript和样式表中用到模版功能
没有else语法
3 楼 JeffreyHsu 2010-03-04  
开发效率,ssh和rails、tg没有可比性,不是一个量级的
原理是相通的,总体上都是 MVC架构
2 楼 JeffreyHsu 2010-03-04  
这句话的意思是将Page对象化查询,第一个pagename为pages_table中的字段名,第二个为传递过来的参数,即寻找pagename为参数的Page对象,one()指返回一个,我猜是第一个,没有实验过.
----------------------

.one()不是返回第一个,是返回唯一的一个,如果结果集有一个以上,会抛出异常

.first()是返回第一个

深入使用tg之前,认真学习sqlalchemy,绝对事半功倍
1 楼 JeffreyHsu 2010-03-04  
可以自定义路径的,贴一段代码
详细参见pylons 相关章节,custom routes pylons,这些关键字自己google下

def my_setup_routes(self):
    """Setup the default TG2 routes

    Overide this and setup your own routes maps if you want to use
    custom routes.

    """
   
    map = Mapper(directory=config['pylons.paths']['controllers'],
                always_scan=config['debug'])

    map.connect('/signup', controller='account', action='routes_placeholder')

    map.connect('/home', controller='member', action='routes_placeholder')
   

    # Setup a default route for the root of object dispatch
    map.connect('*url', controller='root', action='routes_placeholder')

    config['routes.map'] = map

相关推荐

Global site tag (gtag.js) - Google Analytics