基于Django的URL解析机制,该机制将URL模式存储在数据库中
项目描述
一个将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 中以使其可用。您可以通过手动或自动(通过自动发现)进行注册
手动:直接使用 dbresolver API
>>> 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'), )},
现在您只需进入管理员站点即可创建与视图相关联的URL模式。您可以使用Django 默认正则表达式 和更简单的 surlex表达式。
0.1.0-beta
修复了在管理员外使用时的模型表错误。
0.1.0-alpha
初始版本
项目详情
关闭
django-dburlresolvers-0.1.0-beta2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a1bd290f964d212c894452c4e89081f0e072df47c8dde64e63ab75040bb4e41b |
|
MD5 | 3ae600ab30c77d69cf70a4458a827d55 |
|
BLAKE2b-256 | c493a5b529eb5e593f59f61dcc24fe77d7d1a5d974221b42f73796a4bf6fea23 |