前面都是准备,这里是整个Web Mvc框架的核心地方,稍微多介绍一下。核心类是一个叫Dspth的模块。这里我没有处理路由,一个是不太熟,另外一个是主要是体会架构。我用的路由规则如下:
1)用URL的地址参数进行路由,有两个参数,一个是ctr,表示控制类,一个是act表示执行的方法
2)所有执行方法都约定参数格式如下
self,Environ,CGI,CGITB,Form,Cookies,SessionId,*Args
当然,真正做框架的时候,可以把Environ,CGI,CGITB,Form,Cookies,SessionId这些参数用一个对象包含,通过全局性变量传递给控制类。或者放在控制类的基类中,也可以直接赋给控制对象(脚本语言这样处理非常方便)
下面是路由模块:
from os import environ
import cgi, cgitb
from OsHelper import OsHelper
import gl
from HtmlHelper import HtmlTools
theCGI = cgi;
theCgitb = cgitb;
theForm = cgi.FieldStorage()
theEnviron = environ;
theControllerName = theForm.getvalue('ctr')
theAction = theForm.getvalue('act')
theCookies=HtmlTools.GetCookies(theEnviron)
theSessionId = theCookies.get('SESSIONID')
theCanDo=True
#写入响应头信息.
if theSessionId==No