我在Django生产部署中缺少什么?

时间:2016-03-13 04:30:49

标签: django deployment wsgi production

我有以下代码在CentOS 7服务器上部署名为deploy_project的Django 1.9项目。

wsgi.py

import os

from django.core.wsgi import get_wsgi_application

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

application = get_wsgi_application()

以上是默认生成的。

的httpd.conf

WSGIScriptAlias / /var/www/deploy_project/deploy_project/wsgi.py
WSGIPythonPath /var/www/deploy_project

<Directory /var/www/deploy_project/deploy_project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

我的项目目录位于/var/www/deploy_project。在里面我有一个名为Deploy的应用程序,项目设置文件夹与项目名称deploy_projectmanage.py文件相同。我还有一个db.sqlite3文件,因为我没有使用MySQL,但我的应用程序只运行一个显示 Hello World 的视图。我没有使用数据库。

当我从浏览器访问服务器IP时,收到404 Not Found页面,其中包含The requested URL / was not found on this server.消息。

项目文件夹的树输出

├── db.sqlite3
├── deploy
│   ├── admin.py
│   ├── admin.pyc
│   ├── apps.py
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── migrations
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── templates
│   │   ├── 404.html
│   │   └── deploy
│   │       └── hello.html
│   ├── tests.py
│   ├── urls.py
│   ├── urls.pyc
│   ├── views.py
│   └── views.pyc
├── deploy_project
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── settings.py
│   ├── settings.pyc
│   ├── urls.py
│   ├── urls.pyc
│   ├── wsgi.py
│   └── wsgi.pyc
└── manage.py

项目urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),

    url(r'^', include('deploy.urls')),
]

app urls.py

urlpatterns = [
    url(r'^$', views.Hello, name='hello'),
]

views.py

def Hello(request):
    return render(request, "deploy/hello.html", {})

hello.html的

Hello World!

1 个答案:

答案 0 :(得分:0)

作为我的愚蠢开发者,我没有重启apache服务,所以我的设置没有生效。

对于CentOS 7,我的命令是:

sudo systemctl restart httpd

这解决了我的问题。谢谢你的时间@BurhanKhalid。