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

What am I missing in Django production deployment?

我有以下代码用于在 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')),
]

应用urls.py

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

views.py

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

hello.html

Hello World!

我是个笨开发者,我没有重启apache服务,所以我的设置没有生效。

对于 CentOS 7,我的命令是:

sudo systemctl restart httpd

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