Django模拟ASP.NET MVC 自动匹配路由(转载)
Posted 逆向行驶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django模拟ASP.NET MVC 自动匹配路由(转载)相关的知识,希望对你有一定的参考价值。
项目结构
操作步骤
1.创建项目结构如上图
2.在myapp目录下创建urls文件,代码:
1 from django.conf.urls import patterns, url 2 3 from untitled1.myapp.dispatcher import start 4 5 urlpatterns = patterns(\'\', 6 url(r\'^(?P<controller>\\w+)?/(?P<action>\\w+)?/(?P<parameter>.+)?$\', start), 7 )
3.创建dispatcher文件,代码:
1 import inspect 2 3 from untitled1 import common 4 from untitled1.response import response 5 6 7 def start(request, controller, action, parameter): 8 # initialize controller, execute action with parameter 9 prefix = \'untitled1.myapp.\' 10 11 namespace = prefix + controller 12 __import__(namespace) 13 module = common.common.import_module(namespace) 14 15 methods = [k for k, v in inspect.getmembers(module) if k == action] 16 if len(methods) <= 0: 17 return response.http404() 18 19 return getattr(module, methods[0])(request)
4.创建views文件,代码:
1 def list(request): 2 return render(request, "index.html")
5.在untitled1目录下创建common文件,代码:
1 class common: 2 3 @staticmethod 4 def import_module(namespace): 5 components = namespace.split(\'.\') 6 if len(components) == 1: 7 return globals()[namespace] 8 9 module = __import__(components[0]) 10 for compent in components[1:]: 11 module = getattr(module, compent) 12 13 return module
6.配置untitle1的urls文件,代码:
1 from django.conf.urls import url, include 2 from django.contrib import admin 3 4 urlpatterns = [ 5 url(r\'^admin/\', admin.site.urls), 6 url(r\'^myapp/\', include("untitled1.myapp.urls")), 7 ]
7.访问方式:
http://localhost/myapp/views/list
原文参考:
http://bbs.51aspx.com/archiver/showtopic-44319.html
以上是关于Django模拟ASP.NET MVC 自动匹配路由(转载)的主要内容,如果未能解决你的问题,请参考以下文章
如何计算 ASP.Net MVC 中正则表达式捕获的匹配数?