前面都是准备,这里是整个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==None:
theSessionId = OsHelper.GetGuid()
print('Content-type:text/html;')
print("Set-Cookie:SESSIONID=%s;" % theSessionId)
print("Set-Cookie:UserID=XYZ;")
print("Set-Cookie:Password=XYZ12

本文介绍了作者构建的一个简单的Python MVC框架,重点在于核心的Dspth模块和路由规则。路由规则使用URL地址参数进行,控制类和执行方法遵循特定参数格式。虽然未深入处理路由,但讨论了框架的基础架构。文章还展示了路由模块、控制类及视图类的代码示例,强调ViewBag用于传递模型数据给视图。尽管框架简单,但作者认为其架构与知名框架并无本质区别,适合作为小到中型系统的解决方案。
最低0.47元/天 解锁文章
6177

被折叠的 条评论
为什么被折叠?



