繁体   English   中英

有没有办法可以在python中使用注释在django中编写URL

[英]Is there any way that I can write URL in django using annotations in python

我来自Java Hibernate和Symfony2背景,我曾经在控制器的顶部写入路由,如下所示:

/**
 * @Route("/blog")
 */
class PostController extends Controller
{

我知道它在Django中不可用,但有什么方法可以编写一些装饰器等,所以我可以提到这样的URL:

@URL("/mytest")
class myView():
    pass

虽然它会非常不正常 ,但您可以尝试这样的事情:

project/
    decorators.py
    views.py
    urls.py

# decorators.py
from django.conf import settings
from django.utils.importlib import import_module
from django.conf.urls.defaults import patterns, url

def URL(path):
    path = r'^%s$' % path[1:]  # Add delimiters and remove opening slash
    def decorator(view):
        urls = import_module(settings.ROOT_URLCONF)
        urls.urlpatterns += patterns('', url(path, view))
        return view
    return decorator

# views.py
from .decorators import URL

@URL('/')
def home(request):
    # your view

@URL('/products')
def products(request):
    # your view


# urls.py
from django.conf.urls import patterns

from . import views  # import the modules with your views

urlpatterns = patterns('',)  # create an empty url dispatcher to append to

并确保在处理URL之前导入包含此装饰器的每个文件(例如,通过在urls文件中导入它们)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM