python代码简单模拟Java中的MVC设计

简介:

python代码简单模拟Java中的MVC设计

包括两个文件:

一、 mymvc.py

import tornado.ioloop
import tornado.web

#访问地址 http://127.0.0.1:9870/main?ywdm=06&num1=10&num2=200

class TestClassA:
    def sub(self,a,b):
        return a-b
    def add(self,a,b):
        return a+b
    def chen(self,a,b):
        return a*b
    
class TestClassB:
    def sub(self,a,b):
        return a-b
    def add(self,a,b):
        return a+b
    def chen(self,a,b):
        return a*b


sys_config={}
sys_config["01"]=['mymvc','TestClassA','add']
sys_config["02"]=['mymvc','TestClassA','sub']
sys_config["03"]=['mymvc','TestClassA','chen']
sys_config["04"]=['mymvc','TestClassB','add']
sys_config["05"]=['mymvc','TestClassB','sub']
sys_config["06"]=['mymvc','TestClassB','chen']


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        
        
        ywdm=self.get_argument('ywdm')
        num1=int(self.get_argument('num1').encode('utf-8'))
        num2=int(self.get_argument('num2').encode('utf-8'))
        
        message="hello !"
        
        print type(num2)
        if ywdm in sys_config:
            my_module_name=sys_config[ywdm][0]
            my_class_name=sys_config[ywdm][1]
            my_method_name=sys_config[ywdm][2]
            
            my_module = __import__(my_module_name)
            my_class = getattr(my_module,my_class_name) 
            my_obj = my_class() 
            my_method = getattr(my_obj,my_method_name)
            ret=my_method(num1,num2)
            print "ret:",ret
            #message = "ret data:::"+ret
            message="ywdm:"+ywdm+"-data:"+str(ret)
            
        items = ["Item 1", "Item 2", "Item 3"]
        self.render("test.html", title="My title", items=items,config_items=sys_config)
        
            
        
        #self.write(message)
        #self.finish()




        
application = tornado.web.Application([(r"/main", MainHandler),])

if __name__ == "__main__":
    application.listen(9870)
    tornado.ioloop.IOLoop.instance().start()


 

 

 

二、页面模板html: test.html

<html>
   <head>
      <title>{{ title }}</title>
   </head>
   <body>
     <ul>
       {% for item in items %}
         <li>{{ escape(item) }}</li>
       {% end %}
     </ul>

     <ul>
       {% for item in config_items %}
         <li>{{ escape(config_items[item][0]) }}
		 -{{ escape(config_items[item][1]) }}

		 -{{ escape(config_items[item][2]) }}
		 </li>
       {% end %}
     </ul>


   </body>
 </html>


 

执行: mymvc.py

然后浏览器输入:http://127.0.0.1:9870/main?ywdm=06&num1=10&num2=200

返回如下:

 

  • Item 1
  • Item 2
  • Item 3
  • mymvc -TestClassA -sub
  • mymvc -TestClassA -chen
  • mymvc -TestClassA -add
  • mymvc -TestClassB -chen
  • mymvc -TestClassB -add
  • mymvc -TestClassB -sub

 

 

 

 

 

 

目录
相关文章
|
7月前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
1723 0
|
12月前
|
JavaScript 前端开发 Java
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
1840 103
|
7月前
|
jenkins Shell 测试技术
|
9月前
|
设计模式 SQL 人工智能
Python设计模式:从代码复用到系统架构的实践指南
本文以Python为实现语言,深入解析23种经典设计模式的核心思想与实战技巧。通过真实项目案例,展示设计模式在软件开发中的结构化思维价值,涵盖创建型、结构型、行为型三大类别,并结合Python动态语言特性,探讨模式的最佳应用场景与实现方式,帮助开发者写出更清晰、易维护的高质量代码。
491 1
|
9月前
|
设计模式 人工智能 算法
Python设计模式:从代码复用到系统架构的实践指南
本文探讨了电商系统中因支付方式扩展导致代码臃肿的问题,引出设计模式作为解决方案。通过工厂模式、策略模式、单例模式等经典设计,实现代码解耦与系统扩展性提升。结合Python语言特性,展示了模块化、装饰器、适配器等模式的实战应用,并延伸至AI时代的设计创新,帮助开发者构建高内聚、低耦合、易维护的软件系统。
441 0
|
7月前
|
安全 jenkins Java
Java、Python、C++支持jenkins和SonarQube(一)
Jenkins 是一个开源的 持续集成(CI)和持续交付(CD) 工具,用于自动化构建、测试和部署软件项目。它基于 Java 开发,支持跨平台运行,并拥有丰富的插件生态系统,可以灵活地扩展功能
466 5
|
7月前
|
jenkins Java Shell
Java、Python、C++支持jenkins和SonarQube(全集)
Jenkins 是一个开源的持续集成(CI)和持续交付(CD)工具,用于自动化构建、测试和部署软件项目。它基于 Java 开发,支持跨平台运行,并拥有丰富的插件生态系统,可以灵活地扩展功能
646 1
|
7月前
|
jenkins Java 持续交付
Java、Python、C++支持Jenkins和SonarQube(三)
Python与Jenkins和SonarQube
349 1
|
8月前
|
前端开发 Java 开发者
Java新手指南:在Spring MVC中使用查询字符串与参数
通过结合实际的需求和业务逻辑,开发者可以灵活地利用这些机制,为用户提供更丰富而高效的Web应用体验。
230 15
|
7月前
|
jenkins Java 测试技术

热门文章

最新文章

推荐镜像

更多
下一篇
开通oss服务