在Django中连接不同包中的html

时间:2014-08-30 09:08:38

标签: python django django-views django-urls

我是Django开发的新手,并且遇到了我的网页问题。 根据我的理解,每个单独的函数应该写在不同的包中,这样html就会拥有它自己的一组模型,视图和URL。

我的问题是如何在Web浏览器上显示我的html页面时以这样的方式连接这些页面。

我已阅读官方的Django文档,但我仍然无法理解,特别是urls.py中的内容(这里有一段代码示例,但并没有真正解释每个部分代码是)。以及我在views.py中需要的东西。

我在Eclipse IDE中使用python34和Django 1.6。

2 个答案:

答案 0 :(得分:0)

使用urls.py定义视图的网址。

然后,如果要从另一个视图中链接到特定视图(“页面”),请使用reverse函数;或url模板标记,以便在模板中创建链接。

答案 1 :(得分:0)

这就是我如何以简单的方式最好地解释整个过程的工作方式。

以一个在线销售手机的网站www.xyz.com为例。让我们说这个网站只有3页。第一个是主页,第二个是列表页面,其中列出了所有手机,第三个是产品页面,在那里您可以获得有关手机的所有信息。

现在,我们可以在网址www.xyz.com/home/上找到主页,可以在www.xyz.com/mobile-lisitng/上找到lisitng页面,单独的产品页面可在www。 xyz.com/apple-5s或者samsung-s5或者产品的任何部分。你的urls.py文件看起来像这样:

urls.py

url(r'^/home/$', 'web.views.home'),
url(r'^/mobile-listing/$', 'web.views.listing'),
url(r'^/(?P<slug>[-\w]+)/$', 'web.views.product_page'),

现在,每当URL www.xyz.com/home/上发出请求时,您的views.py文件中的'home'函数将被调用。然后home函数负责呈现home的html页面。 同样,当请求出现在... / mobile-listing /或.... / {any_slug} /时,控件将分别提供给listing和product_page函数。

所以,假设你的主页上有一个列表页面的链接。所以在home.html文件中你可以有一行这样的代码

<a href="/mobile-listing/"> See all mobile phones </a>

也许是指向特定产品页面的链接

<a href="/{{mobile_slug}}/"> (Name of the phone)</a>

所以现在这将是流程。

1)用户点击主页上的任何上述链接。

2)检查urls.py文件以查看哪个URL模式匹配,如果找到匹配,则转到指定的函数。

3)在函数中,您有业务逻辑,并且呈现所请求的页面。

多数民众赞成。这就是链接页面的方式。只需提供正确的URL链接,并确保urls.py中存在匹配的URL,并且函数写入正确。