基于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第三方库


热门话题
CentOS上的java Spring Boot简易应用程序需要很长时间才能启动   java如何检查字符串值是否等于null?   收集器中的java映射值。分组方式()   java需要支持Azure AD B2C webapp集成   java如何加入线程以停止它?   java如何使用意图传递类的对象?   java如何在战争环境中发现CDI生产者?   多模块项目中java奇怪的编译器行为   java如何在web应用程序中管理密码?   java从http服务器、filehandler中删除冗余代码   java使用反射来获取泛型类的字段   java Spring MVC/Hibernate/MySQL 400错误请求错误   给定正整数a的java幂为3   在Java中将元素拆分为不同数量的列表?   java展开折叠窗格