2014-05-02 34 views
0

如果用戶的URL類型模式解決,例如,URL散列

1. myurl.com/feeds/recnets/ 

2. myurl.com/feeds/users/ 

3. myurl.com/feeds/tags/ 

4. myurl.com/feeds/~ 

我想要一本字典,從這些模式通過特定的功能。

因此,我在urls.py中輸入字典類型並傳遞其字典參數。 (見下文)

1 import os.path 
2 from django.conf.urls import patterns, include, url 
3 from bookmarks.views import * 
4 from django.contrib import admin 
5 from django.views.generic import TemplateView 
6 from bookmarks.feeds import * 
7 
8 admin.autodiscover() 
9 
10 site_media = os.path.join(
11   os.path.dirname(__file__), 'site_media' 
12) 
13 
14 feeds = { 
15  'recents' : RecentBookmarks(), 
16  'user' : UserBookmarks() 
17 } 
18 
19 urlpatterns = patterns('', 
20  # Feeds 
21  (r'^feeds/(?P<url>.*)$', 
22   feeds), 

如我所料,它沒有工作,因爲urls.py沒有區分參數的名稱。

我也提到django項目文件來解決這個問題,但我找不到它如何將哈希參數傳遞到URL端的函數。

+0

要說清楚。你有不同的功能在近期,用戶,tag.is它正確 –

+0

@SundarNataraj是的。我做了它,並將其導入到我的項目文件夾中 – Sogo

+0

請讓下面的代碼看起來像你一樣。 –

回答

1

爲了進一步闡述上述答案。

對於總是更好的在每個應用程序文件夾的urls.py文件中保留應用程序特定的URL。然後,您可以在根urls.py文件中包含每個應用程序的網址。

Project/ 
    -- urls.py # Root urls.py 
    -- app1/ 
    --- urls.py # App specific urls.py 
    -- app2/ 
    --- urls.py 

而且每個URL應該有自己的模式和相關的視圖

### app1/urls.py ###  
urlpatterns = (
     url(r'^recents/$', RecentBookmarks.as_view()), 
     # Samefor all the urls 
    ) 

欲瞭解更多信息有關包括URL模式在這裏看到:https://docs.djangoproject.com/en/1.6/topics/http/urls/#including-other-urlconfs

爲了進一步學習,您還可以查看如何使用url名稱 - 間距這裏:https://docs.djangoproject.com/en/1.6/intro/tutorial03/#namespacing-url-names

1

項目文件夾中:根據Django 1.6 urls.py

from django.conf.urls import include, url 
from bookmarks import * 

urlpatterns = [ 
    # ... snip ... 

    url(r'^feeds/', include('bookmarks.urls')), 
    # ... snip ... 
] 

在書籤文件夾中創建文件urls.py

from bookmarks import * 

from django.conf.urls import url 

urlpatterns = [ 
    url(r'^recents/$', 'bookmarks.view.RecentBookmarks'), 
    url(r'^user/$', 'bookmarks.view.UserBookmarks'), 
    #so on for all the urls 
] 

注:隨意編輯的代碼,如果有錯誤在進口

+0

您的意思是將遊離網址分爲兩個.py文件,第一個是項目文件夾中的urls.py,第二個是書籤/ urls.py,以散列所有用戶的輸入? – Sogo

+0

是的.. https://docs.djangoproject.com/zh/dev/topics/http/urls/#including-other-urlconfs檢查這個 –