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天前
|
Python
探索Python中的装饰器:简化代码,增强功能
【9月更文挑战第3天】在Python的世界里,装饰器是那些静悄悄站在角落、却能大大改变游戏规则的神奇工具。它们就像是给你的函数穿上一件隐形的超级英雄斗篷,让函数拥有了超乎寻常的能力。本文将带领你一探究竟,看看如何通过几行简单的代码,就能让你的函数变得更加智能和强大。
|
1天前
|
开发者 Python
Python中的装饰器:简化你的代码
【9月更文挑战第9天】本文将介绍Python中的一种强大工具——装饰器。我们将从基础概念开始,逐步深入到装饰器的实际应用,包括函数装饰器和类装饰器。我们将通过实例来展示如何利用装饰器简化代码,提高代码的可读性和可维护性。最后,我们将探讨装饰器的一些高级用法,以及如何避免在使用时可能遇到的问题。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解和使用装饰器。
12 6
|
3天前
|
Python
揭秘!Python系统编程里那些让代码自由穿梭的神奇代码行
【9月更文挑战第9天】在Python的世界里,一些简洁的代码行却蕴含着强大的功能,如列表推导式让列表生成仅需一行代码:`squares = [x**2 for x in range(10)]`。`with`语句则能自动管理文件和网络连接的关闭,如`with open(&#39;example.txt&#39;, &#39;r&#39;) as file:`。`lambda`函数和装饰器则允许快速定义函数和增强功能,而上下文管理器更是资源处理的利器。这些特性让Python代码更加优雅高效。
11 4
|
5天前
|
缓存 测试技术 开发者
探索Python中的装饰器:简化你的代码之旅
【9月更文挑战第6天】本文将深入探讨Python中一个强大而神秘的特性——装饰器。我们将通过实际例子揭示装饰器的工作原理,并展示如何利用它们来简化和增强你的代码。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇门,让你的代码更加优雅和高效。
|
1天前
|
安全 数据安全/隐私保护 Python
Python系统编程实战:文件系统操作与I/O管理,让你的代码更优雅
【9月更文挑战第10天】Python不仅在数据分析和Web开发中表现出色,在系统编程领域也展现出独特魅力。本文将带你深入探讨Python中的文件系统操作与I/O管理,涵盖os、shutil和pathlib等模块的基础使用方法,并通过示例代码展示如何优雅地实现这些功能。通过掌握缓冲、异步I/O等高级特性,你将能够编写更高效、安全且易于维护的Python代码。示例包括使用pathlib遍历目录、设置缓冲区提升文件写入性能以及使用aiofiles实现异步文件操作。掌握这些技能,让你在Python系统编程中更加得心应手。
10 2
|
7天前
|
Python
Python中的装饰器:简化你的代码
【9月更文挑战第3天】装饰器,这个听起来有些神秘的名词,实际上在Python中扮演着重要的角色。它们就像是你的代码的小助手,帮你自动完成一些重复性的工作,让你的代码更加简洁、易读。本文将通过一个简单的例子,带你走进装饰器的世界,看看它们是如何工作的。
|
7天前
|
测试技术 数据安全/隐私保护 Python
Python中的装饰器:简化你的代码
【9月更文挑战第3天】装饰器在Python中是一个非常强大的工具,它可以让我们在不改变原有函数定义的情况下,对函数进行扩展,增加额外的功能。本文将通过一个简单的例子,介绍如何在Python中使用装饰器,以及如何使用装饰器来简化我们的代码。
15 6
|
6天前
|
缓存 数据挖掘 Python
探索Python中的装饰器:简化代码,提高效率
【9月更文挑战第4天】在Python的世界里,装饰器是那些隐藏在幕后、默默发挥作用的英雄。它们以优雅的姿态简化我们的代码,提升程序的可读性和效率。本文将带你揭开装饰器的神秘面纱,通过实际案例展示其魅力所在,让你的编程之旅更加顺畅。
|
6天前
|
存储 Python
Python编程入门:从零开始的代码之旅
【9月更文挑战第4天】本文将带领初学者步入Python的世界,通过简明的语言和直观的例子,逐步揭示编程的乐趣。我们将一起构建基础的数据结构,探索控制语句的奥秘,并实现简单的函数。无论你是编程新手还是希望巩固基础,这篇文章都是你理想的起点。让我们开始吧,一步步将代码块搭建成思维的宫殿!
17 2
|
7天前
|
存储 设计模式 缓存
Python中的装饰器:简化代码,提高可读性
【9月更文挑战第3天】在Python编程中,装饰器是一种强大的工具,它允许我们修改或增强函数的行为,而无需更改其源代码。通过本文,您将了解装饰器的基本概念、如何创建和使用它们,以及它们如何帮助我们编写更简洁、更可读的代码。我们将以一个简单的示例开始,逐步深入到更复杂的应用场景,展示装饰器的灵活性和强大功能。无论您是初学者还是有经验的开发者,本文都将为您提供新的视角和技巧,让您的Python代码更加优雅和高效。