Cheetah

老牌模板,早期 webpy 内置支持,现在 webpy 的内置模板都受了他的影响。性能说是非常靠谱。 ...

↑我也要推荐

web.py项目推介:“Timersky.com 时尚时空”(腕表爱好者交流)开发心得

发布时间:2011-04-15 10:01:04, 关注:+11560, 赞美:+16, 不爽:+7

本文标签: web.py

项目介绍:

时尚时空http://www.timersky.com

时尚时空作用与定位:

针对腕表爱好者提供收藏交流,货品交易场所,到目前为止,共有4个版板功能,分别为:新闻,讨论区,商城,问答。
其中,问答给入门新手提供如:如何购买,怎样签别,到那里可以买到等等话题,而讨论区则主要针对收藏玩家。新闻则提供最新款式,最新旗舰店开张等消息。商城则计划提供二手交易,新品购买。

所用技术:

数据库:mysql  部署环境:OS: Centos, Lighttpd+flup+fastcgi

感受web.py:

使用较为自由,是缺点也是优点,缺点是,每个项目可以不同,如团队作战需先通气,ROR无这方面顾虑。

对数据库操作:

使用web.database,没有使用sqlalchemy,但不否定这个很好,没用的原因有三个:1,不熟,2,web.py在调试可以产出sql,可用于优化。如:加上_test=True实际不会对库进行操作.3, 曾用php实现过类似的操作,上手容易。

界面模板:

项目使用web.py自带的web.template模板,一切简单就好,展示足够的信息,操作不能复杂。无i18n,优点,简单到不能再简单,缺点:经常出理编码问题

项目的不足:

无搜索,想要有个Lucene那样IR库,也考查过Lucene移植,无果,下阶段修正。欢迎有这方面研究的朋友指点一二。

写在最后:

这个项目录中使用了web.subdomain_application进行了品牌子域名展示。如浪琴品牌:http://longines.timersky.com 劳力士:http://rolex.timersky.com
web.py在简单,快捷方面确实带来了好处,是旅行居家必备良器。

web.py技巧及问题和修改:

1, 表单全部使用,web.form,实际使用中对web.form.Radio的web.py源码进行了修改,因为有点BUG, 可参考官方IsSure进行修改即可

2, 表单在运行时修改web.form.Dropdown列表中的数据

例:
    form = web.form.Form(
        web.form.Dropdown('type', "", mynotnull, description="目录:"),
    ) #定义表单
    rs = forummodel.getForumTypes() #数据库中捞数据, select id,type from types
    types = [('','-----请选分类-----')]+[(i.id,i.type) for i in rs]
    form = self.form()
    form.type.args=types


3, 在使用session与定义模板render时发现,Globals不能使用官方的常方法.

例:
官方:(http://webpy.org/skeleton/0.3 骨架代码中)
    t_globals = dict(
        datestr=web.datestr,
    )
    render = web.template.render('templates/', base='base',globals=t_globals)
实际中:
    render = web.template.render('templates/', base='base')
    web.template.Template.globals['datestr'] = web.datestr

需这样session才可以使用

4, 默认的表单验证

notnull在没有填写表单时产生一个英文require,这里我们可以自定一个显示中文的,很方便

定义:mynotnull=web.form.Validator('不能为空 ', bool)
使用: web.form.Textbox('title', mynotnull, size=80, description="标题:", post="请输入一些有意思的标题")

5, 关于编码:
我曾经伤心了几下,我全部采用的是utf8中文, mysql也采utf8
建库:

create database your_db_name default charset utf8 collate utf8_general_ci;

.py文件我的写法是:

#!/usr/bin/env python
#coding: utf-8
#-*- coding: utf-8 -*-
# 中文

我使用的是Editplus D版 :-) 另存时可以选择utf8编码格式

关于站长:
习惯称自己“时间记号”,窝居羊城,年二十有八,好追根究底,有不良嗜好, 幸性本善。虽性好安稳,然经变无数,唯常叹"人生,几文银?" ,可飞鸽传信:panloon@gmail.com与我,与天下朋友识,甚幸!

如果你觉得本站对你有帮助,欢迎向本站赞助 :P

使用支付宝捐赠

Copyright© Python4cn(news, jobs) simple-is-better.com, 技术驱动:powered by web.py 空间主机:Webfaction

版权申明:文章转载已注明出处,如有疑问请来信咨询。本站为 python 语言推广公益网站,与 python 官方没有任何关系。

联系/投搞/留言: en.simple.is.better@gmail.com 向本站捐赠