在Django中,不是localhost的hello world

首先

我在工作中使用Google Cloud Platform进行安装。
我认为在Django的Hello World中,大多数人首先在本地localhost上进行操作,但为了记录部署的全过程,我写了这篇文章。
作为前提条件,我假设已经进行了使用mod_wsgi来渲染Hello World的操作。(由于需要mod_wsgi)

环境
操作系统:Debian 9.0 stretch
Python版本:3.6.3

Django的安装

我会立即进行安装。

假设Python已经安装完成。
首先,需要升级pip,然后安装Django。

pip install --upgrade pip
pip install django

我真的安装好了吗?让我一一尝试。

python
>>> import django
>>> django.get_version()
'2.1.5'

如果能够确认版本,那么安装就成功了。然后输入quit()来退出Python模式。

创建Django项目

在主目录下创建Django项目。(不一定要在主目录下)

cd ~
django-admin startproject myproject

这就在HOME目录下创建了Django项目。

修改apache2的配置文件

将Django内的wsgi.py文件配置为响应对文档根目录的访问请求,需要修改apache2的配置文件(sites-available/000-default.conf)。

cd /etc/apache2/sites-available
sudo vim 000-default.conf

请将DocumentRoot注释掉(使用# DocumentRoot /var/www/html进行注释)。
如果在mod_wsgi中设置了WSGIScriptAlias来绘制hello world,请将其删除。
然后,添加以下内容。不要忘记更改USERNAME部分。
顺便说一下,你可以在vim中使用:%s/USERNAME/YOURNAME/g进行替换。

WSGIScriptAlias / /home/USERNAME/myproject/myproject/wsgi.py
WSGIPythonPath /home/USERNAME/myproject

<Directory /home/USERNAME/myproject/myproject>
    <Files wsgi.py>
    Order deny,allow
    AllowOverride None
    require all granted
    </Files>
</Directory>

修改django的设置文件settings.py。

根据文件名,我们将更改与Django相关的设置。
在这里,我们将使用vim编辑文件。

cd ~/myproject/myproject
vim settings.py

首先,需要设置可以访问的主机,所以需要修改ALLOWED_HOSTS = []。

ALLOWED_HOSTS = ["*"]

接下来要更改语言和时间设置。

LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

创建一个Django应用

在此之前,我们已创建了一个 Django 项目。接下来将创建 Django 应用程序。

像往常一样,我们将使用 manage.py。

cd ~/myproject
python manage.py startapp myapp

那么应该会形成如下的层次结构。

myproject
  |
  ├── myapp
  │     ├── __init__.py
  │     ├── admin.py
  │     ├── apps.py
  │     ├── migrations
  │     │   └── __init__.py
  │     ├── models.py
  │     ├── tests.py
  │     └── views.py
  ├── db.sqlite3
  ├── manage.py
  └── myproject
      ├── __init__.py
      ├── settings.py
      ├── urls.py
      └── wsgi.py

为了识别myapp应用程序,接下来我们将编辑settings.py文件。

cd ~/myproject/myproject
vim settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp'
]

只需要添加myapp,你创建的应用程序就会被识别。

编辑views.py

创建绘制画面的部分。
编辑位于myapp文件夹中的views.py。

cd ~/myproject/myapp
vim views.py
from django.shortcuts import render
from django.http import HttpResponse

def home(request):
    return HttpResponse("Hello, Django World")

编辑urls.py

我将创建一个逻辑,以确定要返回哪个视图作为客户端请求的URL。

cd ~/myproject/myproject
vim urls.py
from django.contrib import admin
from django.urls import path
from myapp.views import home

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', home),
]

请最后重新启动apache2。

sudo service apache2 restart

预计这样就会显示 Hello Django World。
接下来计划将数据库更改为PostgreSQL。

bannerAds