建立Python Django开发框架问题说明


建立Python Django开发框架,实现表单的有效性检验。可以方便的从你定义的模型实例生成相应的表单,你可以跟随他们一步步体验Django的优美,使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。

所以并不能全面的了解或者理解Python Django开发框架中form的所有细节,不过从我涉及到的部分来讲,我对django的从模型创建表单的做法确实感到有比较大的局限性。因为很多时候,model中的数据 并不是从页面上来的,在这种情况下,form对象被构造出来之后,ahuaxuan还没有找到修改form中值的方法。

而自定义form类也比较麻烦,就是要写自己的model,这个和我们之前的做法比较不一样,这里的form代表我们java中的value object,model是domain object,在我们的ssh框架中我们通常把value object继承我们的domain object。

虽然一堆又一堆的人提出了反对意见,说要把这两个对象分开,因为他们处在不同的层次中,但是从实践经验中,我们可以看到,这样做没有什么不好。而在django中自定义form和model分开的行为可能比较符合一些人的心理。 不过自定义forms也有比较让人称道的地方,在form中我们可以自定义验证规则。

同时我们可以根据form对象直接生成页面中的内容,不过这一点其实也有比较麻烦的地方,就是如果要改变样式的时候就比较麻烦。不过总的来说django的form还是比较有特点的,而且一定程度上给我们带来了方便。

Python Django开发框架的url转发是基于正则表达式的,有的人叫好,有的人叫差,我就是叫差的那一拨人之一。url转发应该是一个非常清楚,非常明亮的事情,可是用上这个正则表达式匹配的东西之后,我郁闷了。

所以我只能回到遥远的过去去绕过这个东东,我不用总可以了吧。 从目前目前掌握的知识来看,django的views里的东西其实是controller,为什么叫views?不得而知,不过一直这么沿用下来了,即使是在自然界。

很多表面上去不太一样得东西,其实内部的原理是一样的,我就觉得django的views就是struts1.x中的action,为什么这样说呢,让我们来看看两段比较的代码,第一段是django的,第二段是struts1.x的:

  1. def index(request):     
  2.          
  3.     categoryList = Category.objects.filter(enable = True)     
  4.     for cate in categoryList:     
  5.         informationList = Information.objects.filter(catecategory = cate)[0:5]     
  6.         cate.informationList = informationList     
  7.              
  8.     c = Context({"categoryList":categoryList})     
  9. return render_to_response(indexPage, c)   

从形式上来看,两者出奇的相似,比如说传入的参数等。我们知道python是面向对象的语言,但是事实上它也支持函数编程,如果def定义在class内部,那么就是对象的方法。否则。

就可以认为是函数编程了,看看,我们的Python Django开发框架里的东西都是函数,views其实是一个模块,这个模块我们可以认为是struts1.x中的action,而views中的函数可以认为是action中的方法。它们是远房亲戚。

  1. 如何使Python嵌入C++应用程序?
  2. 深入探讨Ruby与Python语法比较
  3. Python学习资料介绍分享
  4. Python学习经验谈:版本、IDE选择及编码解 决方案
  5. 浅析Python的GIL和线程安全

相关内容

    暂无相关文章

评论关闭