题目要求

写一个Hello,world程序,带有环境安装说明

框架说明

pynixweb (http://code.google.com/p/pynixweb)

安装

下载pynixweb 解压开

├─doc
└─src
    ├─apps(存放所有的程序)
    │  ├─example(hello world的例子)
    │  └─mysqldemo(mysql的例子,需要导入src/test.sql目录)
    ├─libs(第三方的库)
    └─templates
        ├─commons(公共模板文件)
        ├─example(helloword的模板)
        ├─mysqldemo(mysql例子的模板)
        └─static(静态文件)
            └─blueprint
                ├─plugins
                │  ├─buttons
                │  │  └─icons
                │  ├─fancy-type
                │  ├─link-icons
                │  │  └─icons
                │  └─rtl
                └─src

src目录就是pynixweb的目录,同时也是项目目录,pynixweb定义了项目目录结构,提供一个规范的目录结构以方便文件的管理。 运行src/run.py可以启动pynixweb内置的server。

环境要求

*python 2.5 python2.6 *如果需要运行mysql则需要对应的驱动,mysqldb

安装

解压pynixweb,将src复制到工程目录下改名为自己的工程名比如hellworld(如果不需要apps下的例子可以删除掉)

第一个helloworld

1.新建apps目录结构

在apps目录下新建helloworld包(python包是指包含init.py的目录)和helloworld.controller包

2.写挂载点

所有的apps都是通过挂载点挂载到系统上的。在helloworld/init.py中添加

def getMapper():
    import example.controllers
    return {
            "/":controllers.IndexController()
            }

将controller.IndexController挂在到系统的"/"路径下

3.写controller

在helloworld/controller/init.py添加 #ecoding: utf-8 -*-

from pynixweb.template.template import render_template from pynixweb.controllers.controller import PynixWebController

class IndexController(PynixWebController):

}}}

4.定义模板文件

pynixweb的模板集中放在templates/目录下,我们在目录下新建hello目录来作为我们例子的模板文件夹。新建index.html来作为模板 <metal:macro use-macro="commons/index/macros/main">

</metal:macro> 模板使用zope page template。当前的模板风格使用了zpt特有的macro来达到重用板式的目的。当然你也可以通过"include"的方式来引用别的模板文件。具体的可以参考ZPT参考文档。

5.运行结果

执行run.py 访问

http://localhost:8080/
http://localhost:8080/sayhello

总结

由于我非常反对代码生成,所以暂时不会考虑引入代码生成机制。 目前来说pynixweb刚刚起步,比Uliweb年轻,所以还有很多机制不是那么的完善。欢迎大家广泛的提出自己的"最佳实践"。 pynixweb的路线会坚持"细小之处见体贴"的宗旨努力去融合"最佳实践"让代码既灵活又小巧,宁可框架的作者写十行不让使用者写两行。(一行不写是不行的,我坚决反对代码生成)

项目地址

[http://code.google.com/p/pynixweb/ http://code.google.com/p/pynixweb/]