2011-12-16 19 views
1

我是django的新手,所以請原諒我,如果這是顯而易見的。如何用apache設置django,以便我的應用程序位於根網址?

我已經通過教程,所以我有一個項目(我稱之爲「trydj」),它有一個名爲「民意調查」的應用程序。我想要做的就是對根擔任投票,即:

http://www.example.com/將調用民調索引視圖和
http://www.example.com/details/將調用細節查看投票。

我不想要什麼(但目前有)是:

http://www.example.com/polls
http://www.example.com/polls/details/

我也想繼續有其他應用程序的能力在其他子網址,如服管理員或其他應用程序,我可能會創建,即:

http://www.example.com/admin/
http://www.example.com/anotherapp/

我有一切就像在教程的結尾處,在項目級別設置settings.py,manage.py等,在trydj和polls中都是urls.py。

在trydj的urls.py有以下URL模式:

urlpatterns = patterns('', 
    # Uncomment the admin/doc line below to enable admin documentation: 
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    url(r'^admin/', include(admin.site.urls)), 

    url(r'^polls/', include('polls.urls')), 
) 

和輪詢urls.py有以下URL模式:

urlpatterns = patterns('', 
    url(r'^$', 
     ListView.as_view(
     queryset=Poll.objects.order_by('-pub_date')[:5], 
     template_name='polls/index.html' 
    ) 
    ), 
    url(r'^(?P<pk>\d+)/$', 
     DetailView.as_view(
     model=Poll, 
     template_name='polls/detail.html' 
    ) 
    ), 
    url(r'^(?P<pk>\d+)/results/$', 
     DetailView.as_view(
     model=Poll, 
     template_name='polls/results.html' 
    ), 
     name='poll_results' 
    ), 
    url(r'^(?P<pk>\d+)/vote/$', 'polls.views.vote'), 
) 

基礎上,我已經創建了Apache的配置django文檔是:

WSGIScriptAlias//var/django/trydj/wsgi.py 
WSGIPythonPath /var/django 

<Directory /var/django/trydj> 
    <Files wsgi.py> 
     Order allow,deny 
     Allow from all 
    </Files> 
</Directory> 

我的wsgi.py,同樣基於django文檔是:

import os 
import sys 

sys.path.append('/var/django/trydj') 

os.environ['PYTHON_EGG_CACHE'] = '/var/django/.python-egg' 
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

我試圖以各種方式trydj.urls改變相關的URL正則表達式。值r'^'這樣做的竅門,但即使我將它們移出polls目錄並進入到templates文件夾的根目錄下,應用程序仍然無法找到它的模板文件。

一如既往,任何幫助,非常感謝。

回答

3

只是改變這一行:

url(r'^polls/', include('polls.urls')), 

這個

url(r'^', include('polls.urls')), 

,使得達到這一點所有的URL都是通過傳遞給你的意見調查urls.py文件,而不僅僅是那些前綴與polls/

哦,我應該補充一點,在文件(最後一行)中保留這行代碼非常重要,這樣其他應用程序纔有機會在您的民意調查應用程序將其全部加載之前識別自己的URL。如果換了

+0

我試過了(或者以爲我做過了,有點晚了),但也許我在嘗試這個時發生了其他部分變化。無論如何,我只是在教程中用一個乾淨的功能實現來嘗試它(很高興我標記了它),它的功能就像一個魅力。我確實必須修復模板中的一些URL參考,但是一旦我發現了標籤,它就變得非常容易了。謝謝! – ThatAintWorking 2011-12-16 19:52:03

相關問題