Python 如何在Django中模拟url定义的数量?

Python 如何在Django中模拟url定义的数量?,python,django,django-urls,Python,Django,Django Urls,在Django中,为网站中的链接/端点创建URL。我的问题是,如果你正在创建一个有很多链接的东西,比如说一个博客应用,你可以在你的url.py中有成百上千的url定义。假设链接没有参数,即url没有捕获输入,那么这样的Django应用程序将需要设置一种方法来利用数据库来最小化url定义。有人能想出一个更有效的解决方案吗?Django中的URL可以有参数,可以替换这些参数来生成大量URL 假设您的博客模型类似 class Blog(models.Model): title=models.C

在Django中,为网站中的链接/端点创建URL。我的问题是,如果你正在创建一个有很多链接的东西,比如说一个博客应用,你可以在你的url.py中有成百上千的url定义。假设链接没有参数,即url没有捕获输入,那么这样的Django应用程序将需要设置一种方法来利用数据库来最小化url定义。有人能想出一个更有效的解决方案吗?

Django中的URL可以有参数,可以替换这些参数来生成大量URL

假设您的
博客
模型类似

class Blog(models.Model):
    title=models.CharField(max_length=200)
    content=models.TextField()
然后,通过将URL定义为,可以为每个博客创建URL

url("^blog/([0-9]+)/$, views.blog_details)
([0-9]+
部分告诉Django查找一个数字作为参数,例如,它是一个类似于
/blogs/1234/
的URL

相应的view函数将blog id作为参数

def blog_details(blog_id):
    blog=get_object_or_404(Blog, pk=blog_id)
    # generate view of this blog from template

您可以使用URL参数进行大量操作,Django中URL的更多信息可以使用参数进行替换,以生成大量URL

假设您的
博客
模型类似

class Blog(models.Model):
    title=models.CharField(max_length=200)
    content=models.TextField()
然后,通过将URL定义为,可以为每个博客创建URL

url("^blog/([0-9]+)/$, views.blog_details)
([0-9]+
部分告诉Django查找一个数字作为参数,例如,它是一个类似于
/blogs/1234/
的URL

相应的view函数将blog id作为参数

def blog_details(blog_id):
    blog=get_object_or_404(Blog, pk=blog_id)
    # generate view of this blog from template

你可以通过URL参数做很多事情,更多信息在

嗯,你的假设似乎不正确。你为什么不在URL中捕获一个slug值来确定要显示什么内容?@Daniel你在说什么(r'^myapp/(?p/$,views.showpage),然后用switch/if语句或通过ORM检查一下?是的,但我不知道if语句会在那里做什么(Python没有开关)。好吧,你的假设似乎不正确。你为什么不在URL中捕获一个slug值来确定要显示什么内容呢?@Daniel你说的是(r'^myapp/(?P/$,views.showpage),然后使用switch/if语句或通过ORM进行检查?是的,但我不知道if语句会在那里做什么(Python没有开关)。您可能需要使用:get\u object\u或\u 404(),您可能需要使用:get\u object\u或\u 404()