我正在尝试做 Django 教程。第 1 部分顺利 (i.stack.imgur.com/US5GN.jpg)
但是,一旦我激活了管理站点,我就会得到根 (i.stack.imgur.com/EXfE4.jpg)。编辑(因为 SO 还不允许我发布图片;谢谢,cberner):
Page not found (404)
Request Method: GET
Request URL: http://dj1.net/
Using the URLconf defined in dj1_net.urls, Django tried these URL patterns, in this order:
^admin/
The current URL, , didn't match any of these.
dj1.net
是我的测试域(编辑/etc/hosts
),虽然dj1.net/admin/
现在按预期工作,但我不知道为什么dj1.net/
在我取消注释(按照指示)该行时抛出此错误
url(r'^admin/', include(admin.site.urls)),
在mysite/urls.py
(在我的情况下dj1_net/urls.py
)。在我看来,除非GET 请求反对,否则一切都应该像以前一样工作/admin/
。
我的堆栈:带有 Apache 和 mod_wsgi 的 Debian 6.0 VPS。我想避免使用 Django 的内置服务器:如果我不能真正部署它,我宁愿早点知道,也不要晚点知道。事实上,为了方便 PHP 支持,我对基于 Apache 的解决方案非常感兴趣。
为了进一步参考,这是我的/etc/apache2/sites-available/dj1.net
:
<VirtualHost *:80>
ServerName dj1.net
DocumentRoot /var/www/dj1_net
Alias /static/ /var/www/dj1_net/static/
Alias /media/ /var/www/dj1_net/media/
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
WSGIScriptAlias / /var/www/dj1_net/django.wsgi
WSGIProcessGroup dj1_net
WSGIDaemonProcess dj1_net processes=2 threads=16 maximum-requests=1000 display-name=apache-dj1_net-wsgi
</VirtualHost>
最后,这里是/var/www/dj1_net/django.wsgi
:
import sys
import os
import os.path
sys.path.append(os.path.dirname(__file__))
os.environ['DJANGO_SETTINGS_MODULE'] = 'dj1_net.settings'
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()
坦率地说,我对 Apache 服务器配置和WSGI 知之甚少。但是,我确实希望在开始使用 Django 之前完成此设置。我遵循了官方说明和这篇文章的混合,因为坦率地说,我无法让 Django 逐字应用任一说明。恐怕问题的根源一定在那儿……
任何提示将不胜感激。
干杯!
SP
第二次编辑。这是dj1_net/urls.py
(谢谢,scytale):
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'dj1_net.views.home', name='home'),
# url(r'^dj1_net/', include('dj1_net.foo.urls')),
# 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)),
)