gpt4 book ai didi

python - Django 仅响应特定应用程序

转载 作者:行者123 更新时间:2023-12-01 05:28:36 25 4
gpt4 key购买 nike

我正在测试 Django,并希望它仅响应某些应用程序,例如管理和民意调查(来自教程)。其余时间我只想要普通的 apache。我能够使用端口转发来做到这一点。具体来说,我将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/polls/和 mysite:8081/admin/都可以工作。

这是 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()

编辑:这是 mysite 的 urls.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)),
)

这是民意调查的 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'),
)

最佳答案

像这样更改 apache2 配置的 WSGIScriptAlias 部分:

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

此外,由于您计划在服务器上运行多个 Django 应用程序,因此不要使用:os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings"),请将其更改为:

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

将您的“我的网站”网址中的 r'^polls/' 更改为 r'^'。您必须这样做,因为 apache2 将 /polls 别名为对 django 应用程序的 / 请求。 (同样解释了为什么您必须输入:/polls/admin)。

您可以阅读更多相关信息here

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

是的,您可以将上述设置与端口:80结合使用。

有关更多详细信息,您可以查看此 link .

关于python - Django 仅响应特定应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20833089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com