基于django的url解析机制,将url模式存储在数据库中

django-dburlresolvers的Python项目详细描述


一个url解析器,它将url模式存储在数据库中,这意味着网站管理员可以定义一些url。

安装

从pypi安装包:

$ easy_install django-dburlresolvers

dbresolver放入已安装的应用程序:

INSTALLED_APPS = (
    ...
    'dbresolver',
)

更改项目urls.py文件,如下所示:

from dbresolver import get_dbresolver_patterns

urlpatterns = patterns('',
    ... # your URLs
)

urlpatterns += get_dbresolver_patterns()

用法

注册项目的某些视图,以便在dbresolver中可用。你可以 手动或自动注册(通过自动发现):

  • 手动:直接使用dbresolverapi:

    >>> from dbresolver import register_view
    >>> from fooapp.views import foo_listing
    >>> register_view(foo_listing, 'Foo listing')
    
  • 自动:将此代码放入项目中(我们在项目中建议使用urls.py):

    from dbresolver import autodiscover_views
    autodiscover_views()
    

    您需要定义一个特殊的views_to_register方法,如下面的示例:

    def foo_listing(request):
        foo_list = FooModel.objects.all()
        return render_to_response('fooapp/foo_listing.html',
                                {'foo_list': foo_list},
                                 context_instance=RequestContext(request))
    
    def views_to_register():
        """ returns views to be registered with dbresolver """
        return (
            (foo_listing, _('Foo listing')),
        )
    

还可以使用参数注册泛型视图。例如,想象你 有这样的视图:

def render_template(request, template_name=None):
    try:
        return direct_to_template(request, template=template_name)
    except TemplateDoesNotExist:
        raise Http404()

您可以使用为管理员用户定义的参数注册视图:

>>> from configfield import params
>>> register_view(render_template, 'Generic view to render a template',
                  params=(
                      params.Template(
                          name='template_name',
                          label='Template to be rendered',
                      ),
                  ))

如果要自动注册该视图,代码如下:

def views_to_register():
    return (
        {'view': render_template,
         'label': 'Generic view to render a template',
         'params': (
             params.Template(name='template_name', label='Template to be rendered'),
        )},

现在您只需在管理站点上输入即可创建附加到 意见。您可以同时使用djangodefault regular expressions和simpler surlex expressions

0.1.0-β

修复了在管理外使用时的模型窗体错误。

0.1.0-α

初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中通过给定最大汉明距离(不匹配数)获得所有字符串组合的算法   java广播接收器每次都被调用   java如何从ECPublicKey中找到匹配的曲线名称   java中的循环函数和接收字节   java抢占式调度会导致饥饿吗?   如何在JavaGUI中创建重力?   java检测Mac中的可移动驱动器   java多执行器服务。execute()调用。线程池。冗余   java为什么我的RxJava Observable不发出或完成,除非它是阻塞的?   java图像面板不会立即显示在JFrame中   java为什么zuul网关应用程序花了这么长时间才优雅地关闭   将Google地图添加到Flatter时未找到java API键   java读取嵌套的yaml值而不传入根对象   JavaAndroid使用广播接收器发送值   java ORA02289:序列不存在Spring boot   java JPanel没有使用BorderLayout显示在JFrame中   java Hibernate。cfg。没有配置xml   JavaSpring:检查异常的自动回滚