Uliweb 0.2.2 发布,灵活易用的Python Web框架

limodou
 limodou
发布于 2013年12月06日
收藏 11

Uliweb 0.2.2版本主要更新如下:

  • 向 SortedDict 添加 clear() 函数
  • 向 AddView, EditView 添加提交保护,缺省为不启动。它可以用来防止多次提交。但对于 前端建议再増加相关的措施,比如在提交时将按钮禁掉。如果想要其生效,需要传入 protect=True 参数。

  • 向 uliweb find -t 命令添加 --blocks 和 --with-filename 参数,前者用来显示在 模板中定义的块信息,后者用来列出定义相应块所在的模板文件名。同时向settings.ini 中添加 GLOBAL/DEBUG_TEMPLATE 配置项,用来控制模板是否显示调试用的注释,用来区分 不同的块的开始和结束。但是这种输出具有一定的破坏性,比如非HTML的结果等。所以只 能用于调试,正式使用一定要关闭。比如,打开之后,在输出的模板中可能有:

    <!-- BLOCK title (apps/theme/templates/theme/skeleton.html) -->
    <!-- END title -->
  • 増加filedown.py在下载时对 content-range 的处理,感谢 zhangchunlin 提供代码。
  • 改进 import_attr() 的处理,増加对 pkg_resource 入口字符串格式的支持,比如: x.y.z 原来是根据从左向右逐层导入时,动态来判断后面的是模块还是属性,如果是 模块,则继续导入,如果是属性则使用 getattr() 来处理。现在则可以定义为: x.y:z.c, 这样可以更清晰表示 : 号前是模块,后面是属性。

  • 向 uliweb.contrib.orm 上添加 requirements.txt,可以直接用 uliweb install 来安装: SQLAlchemy, MySQL-python, alembic(这个是我修改的版本)。注意,要在你的应 中用先配置 uliweb.contrib.orm 才可以。因为这个requirements.txt是在app上定义的。

  • 添加 LOGO 文件,可以用这里面的图片来展示 uliweb。
  • 向 runserver 命令増加 --color 参数,可以输出彩色日志。缺省是不输出。同时,你可以根据需要,在settings.ini中对颜色进行配置,如缺省的为:

    [LOG.COLORS]
    DEBUG = 'white'
    INFO = 'green'
    WARNING = 'yellow'
    ERROR = 'red'
    CRITICAL = 'red'

       支持的颜色为: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE.

  • 増加 config 命令。它可以用来向控制台输出配置文件的模板。目前可以生成 nginx, supervisor
    相关的配置。你也可以在自已的app中定义这样的输出。只要在app下创建 template_files/config
    的目录结构,然后创建 xxxx.confxxxx.ini 文件。在 xxxx.ini 中用来定义一些
    变量,这些变量将用于 xxxx.conf 中。

    ini格式定义示例为:

    [INPUT]
    port = '', 80
    path =

    port为变量名,值为一个tuple或者不定义,第一个值为提示用的文本,如果为空则表示没有额外 说明。第二个表示缺省值。

  • xxxx.conf 为uliweb格式的模板,如果存在模板变量,则需要与ini中的一致。同时 有一些预定义的变量,如: project 表示项目目录名称,project_dir 表示项目目录。

    执行时可以: uliweb config xxxx

  • 优化 support 命令,可以象config命令一样,在你的app下创建 template_files/support/xxxx 这样的目录结构,下面放执行 uliweb support xxxx 时将要拷贝的文件及目录即可。

  • 修复 tmplate 中normcase的bug,改为 normpath 。
  • 重构ORM的关系字段的处理,让关系的处理为延迟执行(待get_model时才执行)。这样 是为了解决存在循环引用的问题,但是带来可能的不兼容问题,就是反向关系的获取。 如果A和B都是在一个文件中定义,那么在导入A时,B自然也被引入,如果B上有对A的关 系定义,则A自动被注入一个反向关系。但是现在则要显示执行 get_model('B')才可以 创建反向关系。

  • get_model() 和 set_model() 中的Model名不再区分大小写。
  • 修复当重名的URL定义存在时,后定义的没有替換前面定义的URL的bug。
  • 修复 rbac 中没有使用 functions.has_role() 和 functions.has_permission() 的bug。
  • 修复rules.py在处理View类继承时的bug。添加 expose(replace=True) 的支持,用来实 现View类的替換方式,即不会増加新的一套URL,而是为了修改原来的View方法处理。 如果replace=False,或不写,则为普通的派生方式.

  • 向expose()増加template参数,这样除了可以在view函数中指定 response.tmplate = 'xxxx.html 外 还可以直接在expose上指定。执行优先级,以response.template最高。

  • 恢复 ORM 配置中关于 NULLABLE = False 的配置。这样字段缺省允许为 null。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Uliweb 0.2.2 发布,灵活易用的Python Web框架
加载中

最新评论(10

Jack_Zhu
Jack_Zhu
尝试过在Windows下用Apache+mod_wsgi配置过Flask,也不是很难,而且可以和PHP并存,服务器环境受自己控制的话还是可以尝试下用Python来写Web应用的
limodou
limodou
这个可能是慢慢改进吧。php之所以方便,因为部署上至少是一致的。ror之所以方便,因为它也只是一个框架。而python则只有wsgi,框架却是很多。不过现在gae, sae, heroku等都可以部署,如果是内部用更无所谓了。我现在就是内部用,所以想怎么部署自已弄。而且现在很多平台,运维的东西都在用python,所以python还是很有优势的,这些东西部署都不相同。我觉得还要看一个长远吧。

命令行是为了简化开发,提高效率的一种手段,因为它方便。所以,我觉得python框架对可操作性要求很高,对于象php这种初始化都是要写网页来完成我已经极不习惯,本来命令行都可以做的事,一定要写个页面,不然没法执行。所以我后来写了wshell,以后再考虑把命令行也直接做成网页的,这样安装部署可能就方便了。

欢迎感兴趣的试试uliweb.
ben.
ben.

引用来自“西门飞”的评论

引用来自“ben.”的评论

感觉不愿意使用Python的原因是服务器难寻,或者说虚拟主机难寻,php随处可见,而Python主机几乎没有,而且Python的优越性也需要自己安装模块才能体现,这个可能是制约Python发展的一个重大障碍。
另外,我学习django是limodou老大的博客引入门的,讲解循序渐进、有重点解析、有作者自己的认识延伸,很棒

当年用asp的一个重要原因就是大把的虚拟主机都支持……但py的定位不是web .......通用的编程语言 简洁高效……蛮喜欢py

呵呵我也是,不过在干活的时候还是经常使用环境友好的语言,经常不用,技艺就很难提高了
ben.
ben.

引用来自“包菜兄”的评论

引用来自“ben.”的评论

感觉不愿意使用Python的原因是服务器难寻,或者说虚拟主机难寻,php随处可见,而Python主机几乎没有,而且Python的优越性也需要自己安装模块才能体现,这个可能是制约Python发展的一个重大障碍。
另外,我学习django是limodou老大的博客引入门的,讲解循序渐进、有重点解析、有作者自己的认识延伸,很棒

请问你指的博客是哪里的?

http://wiki.woodpecker.org.cn/moin/limodou#LimodouProjs.DjanGo
ben.
ben.

引用来自“包菜兄”的评论

引用来自“ben.”的评论

感觉不愿意使用Python的原因是服务器难寻,或者说虚拟主机难寻,php随处可见,而Python主机几乎没有,而且Python的优越性也需要自己安装模块才能体现,这个可能是制约Python发展的一个重大障碍。
另外,我学习django是limodou老大的博客引入门的,讲解循序渐进、有重点解析、有作者自己的认识延伸,很棒

请问你指的博客是哪里的?

啄木鸟社区,limodou专栏,百度看看,知识面非常广,而且具备系统性,这位大牛在Python领域可谓是造诣深厚,还有对比性的看法,以及改进意见。
ulipad就是他的作品
小虫0302
小虫0302
感觉要配置好多东西,还要命令行。。。
西门飞
西门飞

引用来自“ben.”的评论

感觉不愿意使用Python的原因是服务器难寻,或者说虚拟主机难寻,php随处可见,而Python主机几乎没有,而且Python的优越性也需要自己安装模块才能体现,这个可能是制约Python发展的一个重大障碍。
另外,我学习django是limodou老大的博客引入门的,讲解循序渐进、有重点解析、有作者自己的认识延伸,很棒

当年用asp的一个重要原因就是大把的虚拟主机都支持……但py的定位不是web .......通用的编程语言 简洁高效……蛮喜欢py
你打球像那谁
你打球像那谁

引用来自“ben.”的评论

感觉不愿意使用Python的原因是服务器难寻,或者说虚拟主机难寻,php随处可见,而Python主机几乎没有,而且Python的优越性也需要自己安装模块才能体现,这个可能是制约Python发展的一个重大障碍。
另外,我学习django是limodou老大的博客引入门的,讲解循序渐进、有重点解析、有作者自己的认识延伸,很棒

请问你指的博客是哪里的?
你打球像那谁
你打球像那谁

引用来自“ben.”的评论

感觉不愿意使用Python的原因是服务器难寻,或者说虚拟主机难寻,php随处可见,而Python主机几乎没有,而且Python的优越性也需要自己安装模块才能体现,这个可能是制约Python发展的一个重大障碍。
另外,我学习django是limodou老大的博客引入门的,讲解循序渐进、有重点解析、有作者自己的认识延伸,很棒

多谢指路至limodou。
ben.
ben.
感觉不愿意使用Python的原因是服务器难寻,或者说虚拟主机难寻,php随处可见,而Python主机几乎没有,而且Python的优越性也需要自己安装模块才能体现,这个可能是制约Python发展的一个重大障碍。
另外,我学习django是limodou老大的博客引入门的,讲解循序渐进、有重点解析、有作者自己的认识延伸,很棒
返回顶部
顶部