无法在django / python应用程序中集成小脚本...你能解释一下urls.py是如何工作的吗?

时间:2011-06-15 17:53:55

标签: python django

我不是程序员,但我在php / mysql中写了很少的东西。所以我掌握了编程,但是我无法理解django应用程序的逻辑......而且python非常复杂!请帮我解决一下我遇到的一个问题。

我的脚本很简单,它显示随机句子。没什么特别的!

所以我: random-quotes.py - >

import random

#Random
def random_quotes (request, template_name='header.html'):
    quotes = ["\"There are always two people in every picture: the photographer and the viewer.\"",
              "\"My portraits are more about me than they are about the people I photograph.\" <br><span class=\"author_span_style\">~ Richard Avedon</span>"]
    pick_quote = quotes[random.randint(0, len(quotes) - 1)]
    return render(request, template_name, {
                                           'random_quote': pick_quote,
                                           }) 

header.html - &gt;

{{ random_quote }}

urls.py - &gt;

url(r'^$', app.random-quotes.random_quotes, name='random_quotes'),

这个网址对我来说非常奇怪。我认为它将模板调用映射到“action”文件。但细节和原因让我感到安慰!

无论如何,我使用现有django应用程序的url结构,(我正在整合小脚本)

所以,app。[random-quotes]。{random_quotes} [是文件名]和{是功能名称}

应用程序。我不确定,但我猜是指我的django应用程序中的子文件夹。我猜这将是应用程序。就像在urls.py中一样,我发现了对该文件夹中文件的引用。

由于一些奇怪的原因,脚本不起作用,它不显示任何东西......所以我猜测问题应该是第一部分r'^ $'以及我没有指定url的事实。

请帮助我理解这个概念...

1 个答案:

答案 0 :(得分:2)

tutorial可以很好地解释这里发生的事情。

简而言之,任何与urls.py中的正则表达式匹配的URL都将映射到views.py中的指定函数。 views.py将执行任何必要的逻辑,并将加载模板(如果指定)。