天天看點

django 視圖與網址

我建立了一個名為mysite的項目,在這個項目下,建立了一個名為learn的app。在這個app下建立了兩個views,一個是index,一個是login。

<a href="https://s2.51cto.com/wyfs02/M02/8D/F3/wKiom1iv9RXjz3AWAAD2bJIsEDs725.png" target="_blank"></a>

要想使用這兩個views,必須要先引入才行。urls代碼如下:

1

2

3

4

5

6

7

8

9

10

<code>#coding:utf8</code>

<code>from</code> <code>django.conf.urls </code><code>import</code> <code>url,include</code>

<code>from</code> <code>django.contrib </code><code>import</code> <code>admin</code>

<code>#先引入視圖,才能使用</code>

<code>import</code> <code>learn.views as learn_views </code>

<code>urlpatterns </code><code>=</code> <code>[</code>

<code>    </code><code>url(r</code><code>'^admin/'</code><code>, admin.site.urls),</code>

<code>    </code><code>url(r</code><code>'^$'</code><code>, learn_views.index),</code>

<code>    </code><code>url(r</code><code>'^login/'</code><code>, learn_views.login),</code>

<code>]</code>

<a href="https://s4.51cto.com/wyfs02/M01/8D/F3/wKiom1iv9lmj5dY-AAFDq21OEPQ353.png" target="_blank"></a>

這樣當通路http://127.0.0.1:8000/時,就由learn這個app的views中的index函數來響應請求。

當通路http://127.0.0.1:8000/login時,就由learn這個app的views中的login函數來響應請求。

如果我的mysite項目中有多個app(learn和admin),那麼每次通路其中其中一個app下的某一個網址時,都需要在mysite/urls中進行設定就比較麻煩?能否在每個app中設定urls呢?

<a href="https://s3.51cto.com/wyfs02/M02/8D/F4/wKiom1iwASeDMOxHAADZa5w9EOU015.png" target="_blank"></a>

我們可以這樣做:

在project_/urls中 include(app.urls), app/urls檔案需要建立。

設定mysite/urls

11

12

<code>##一定要import include子產品</code>

<code>    </code><code>url(r</code><code>'^learn/'</code><code>, include(</code><code>'learn.urls'</code><code>))</code>

<code>    </code><code># url(r'^$', learn_views.index),</code>

<code>    </code><code># url(r'^login/', learn_views.login),</code>

注意:mysite/urls中一定要導入include子產品。

這樣當通路的網址後面為learn時,由learn下的urls檔案來響應。

設定learn/urls

<code>from</code> <code>django.conf.urls </code><code>import</code> <code>url</code>

<code>##要記得引入learn/views中的所有方法</code>

<code>from</code> <code>learn.views </code><code>import</code> <code>*</code>

<code>    </code><code>url(r</code><code>'^$'</code><code>, index),</code>

<code>    </code><code>url(r</code><code>'^login/'</code><code>, login),</code>

<a href="https://s5.51cto.com/wyfs02/M00/8D/F4/wKiom1iv_pqR69FgAADc_7CJzhw156.png" target="_blank"></a>

如何通路lean 這個app下的login網址?

<a href="http://127.0.0.1:8000/learn/login" target="_blank">http://127.0.0.1:8000/learn/login</a>

<a href="https://s1.51cto.com/wyfs02/M02/8D/F4/wKiom1iv__HDu5C6AABFoHpjPlk326.png" target="_blank"></a>

本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1901031,如需轉載請自行聯系原作者