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

标签 python django django-urls

我正在尝试创建一个 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方法。

关于python - 如何在 Django 中创建类似 controller/action/id 的 url 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731132/

相关文章:

django - 将数据从一个表链接到另一个表,并通过中间表连接

python - 确认 postgres 'update' 查询在 python 中有效

python - Django session 翻译设置对所有语言都是粘性的,除了中文?

python - django-paypal 收不到信号

Python 正则表达式 : string does not contain "jpg" and must have "-" and lowercase

python - 接收错误: Reverse for with arguments '()' and keyword arguments not found

python - Pandas read_csv中的日期时间dtypes

Python 2 vs 3。相同的输入,不同的结果。 MD5哈希

Python CSVkit 比较 CSV 文件

python - Django - 如何在不包含 URL 前缀的情况下渲染 View ?