Skip to main content
 首页 » 编程设计

python之如何在 Django 中创建类似 controller/action/id 的 url 模式

2025年05月04日26cyq1162

我正在尝试创建一个 url 模式,其行为类似于 rails 中的 Controller /操作/id 路由。到目前为止,这是我所拥有的:

from django.conf.urls.defaults import * 
import views 
 
urlpatterns = ('', 
              (r'^(?P<app>\w+)/(?P<view>\w+)/$', views.select_view), 
              ) 

这是我的“views.py”:

def select_view(request, app, view): 
    return globals()['%s.%s', % (app, view,)]() 

到目前为止,这还没有奏效。我在 'globals' 函数中得到一个关键错误异常。我的方向是否正确?

请您参考如下方法:

尝试这样的事情:

from django.utils.importlib import import_module 
 
def select_view(request, app, view): 
    mod = import_module('%s.views' % app) 
    return getattr(mod, view)(request) 

这显然是一个过于简单的例子,你所做的是从你的应用程序中导入 views.py 并查看它是否具有 view 功能,如果它确实执行该功能,则给出请求作为第一个参数。

查看 Django 如何使用 get_callable 的一些示例和 autodiscover方法。