Django只响应特定的应用程序

2024-03-28 21:35:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在测试Django,希望它只响应某些应用程序,例如admin和polls(来自教程)。剩下的时间我只想要普通的阿帕奇。我可以使用端口转发来完成这项工作。具体来说,我修改了httpd.conf文件未来:

 NameVirtualHost *:8081

以及

<VirtualHost *:8081>
DocumentRoot /home/ec2-user/srv/mysite
ServerName <ServerIPAddress>
#ErrorLog /home/ec2-user/testproject/logs/apache_error.log
#CustomLog /home/djangotest/helloworld/logs/apache_access.log combined
WSGIScriptAlias / /home/ec2-user/srv/mysite/apache/wsgi.py
etc...

然而,我想摆脱8081,只是让它工作在默认端口80?目前,两者mysite:8081/投票/以及mysite:8081/管理/两者都有效。你知道吗

以下是wsgi文件,以备需要:

import os
import sys

path= '/home/ec2-user/srv/mysite'
if path not in sys.path:
   sys.path.append(path)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

编辑: 这是你的答案网址.py我的网站(不是投票)。你知道吗

from django.conf.urls import patterns, include, url
from django.conf import settings

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^polls/', include('polls.urls',namespace = "polls")),
    url(r'^admin/', include(admin.site.urls)),
)

这是你的答案网址.py对于投票:

from django.conf.urls import patterns, include, url

from polls import views

urlpatterns = patterns('',
     #ex: /polls/
     url(r'^$', views.index, name='index'),
     #ex: /polls/5
     url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
     # ex: /polls/5/results/
     url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
     # ex: /polls/5/vote/
     url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
)

Tags: pathdjangonamefromimporturlwsgihome
1条回答
网友
1楼 · 发布于 2024-03-28 21:35:54

更改apache2配置的WSGIScriptAlias部分,如下所示:

WSGIScriptAlias /polls /home/ec2-user/srv/mysite/apache/wsgi.py

另外,因为您计划在服务器上运行多个Django应用程序,而不是使用:操作系统环境设置默认值(“DJANGO\u设置\u模块”mysite.settings设置“),更改为:

os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" 

从您的mysite url将r'^polls/'更改为r'^'。您必须这样做,因为apache2将/polls别名为对django应用程序的/请求。(这也解释了为什么必须键入:/polls/admin)。你知道吗

你可以阅读更多关于它here

WSGIDaemonProcess是部署多个Django应用程序的推荐方法(您可以在堆栈中找到很多示例)。你知道吗

是的,您可以将上述设置与端口:80。你知道吗

有关更多详细信息,请参见link。你知道吗

相关问题 更多 >