在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。