介绍
Django是一个用于快速开发Web应用程序的高级Python框架。 DigitalOcean的Django One-Click应用程序可以使用Django,Nginx,Gunicorn和Postgres快速部署预先配置的开发环境到VPS。
创建一个DjangoDroplet
要创建Django Droplet,请从Droplet创建页面开始。 在“ 选择图像”部分中,单击“ 一键应用 ”选项卡,然后在16.04图像上选择Django 1.8.7 。
接下来,为您的Droplet,您所需的区域以及任何其他设置(如私有网络IPv6支持或备份)选择一个大小。 添加任何SSH密钥并填写您的Droplet的主机名。 准备就绪后,单击创建Droplet以启动服务器。
一旦创建,请导航到您最喜爱的浏览器中的http:// your_server_ip
,以验证Django正在运行。 你会看到一个标题页面工作! 祝贺您的第一个Django动力页面 。
您现在可以根用户登录到您的Droplet。
ssh root@your_server_ip
请务必阅读当天的消息,其中包含有关安装的重要信息,如Django用户和Postgres数据库的用户名和密码。
Login output-------------------------------------------------------------------------------
Thanks for using the DigitalOcean Django One-Click Application Image
The "ufw" firewall is enabled. All ports except for 22, 80, and 443 are BLOCKED.
Let's Encrypt has been pre-installed for you. If you have a domain name, and
you will be using it with this 1-Click app, please see: http://do.co/le-lemp
Django is configured to use Postgres as the database back-end.
You can use the following SFTP credentials to upload your files (using FileZilla/WinSCP/Rsync):
Host: your_server_ip
User: django
Pass: 2fd21d69bb13890c960b965c8c88afb1
You can use the following Postgres database credentials:
DB: django
User: django
Pass: 9853a37c3bc81bfc15f264de0faa9da5
Passwords have been saved to /root/.digitalocean_passwords
如果您稍后需要参考,可以在/etc/update-motd.d/99-one-click文件中/etc/update-motd.d/99-one-click
。
配置详细信息
Django项目由Gunicorn提供,它监听/home/django/gunicorn.socket
。 Gunicorn由Nginx代理,Nginx在80
号端口上听。
Nginx配置文件位于/etc/nginx/sites-enabled/django
。 如果重命名项目文件夹,请记住更改静态文件的路径。
Gunicorn通过/etc/systemd/system/gunicorn.service
上的Systemd文件/etc/systemd/system/gunicorn.service
。 该Systemd脚本还提供了一个位于/etc/gunicorn.d/gunicorn.py
的配置文件,用于设置工作进程的数量。 您可以在Gunicorn项目的文档中找到有关配置Gunicorn 的更多信息。
Django项目本身位于/home/django/django_project
。
注意 :如果重命名项目文件夹,则需要进行一些配置文件更新。 具体来说,您需要在Nginx配置中更改静态文件的路径。 您还需要更新Gunicorn Systemd文件中的WorkingDirectory
, name
和pythonpath
。
该项目可以使用Gunicorn服务启动,重新启动或停止。 例如,要在进行更改后重新启动项目,请运行:
systemctl restart gunicorn.service
在开发过程中,每当您进行更改时,重新启动服务器可能会令人烦恼。 在这种情况下,您可能希望使用Django的内置开发服务器,可自动检测更改:
systemctl stop gunicorn.service
python manage.py runserver 0.0.0.0:8000
然后,您可以通过浏览器中的http:// your_server_ip :8000
访问应用程序。 这种内置的服务器不能提供最佳性能,所以最好的做法是使用Gunicorn服务进行生产。
编写您的第一个Django应用程序
编写 Django应用程序有很多深入的指南 ,但是这一步将使您可以使用非常基本的Django应用程序来运行。
如果您还没有,请以root身份登录到您的服务器。
ssh root@your_server_ip
接下来,切换到django用户。
su django
进入项目目录。
cd /home/django/django_project
现在创建一个名为hello
的新应用程序。
python manage.py startapp hello
这将在文件夹django_project
中创建一个名为hello
的新目录。 整个目录树的结构如下:
.
├── django_project
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── settings.py.orig
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
├── hello
│ ├── admin.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── manage.py
没有必要,但您可以使用tree
实用程序自己生成此输出。 使用sudo apt-get install tree
安装它,然后使用tree /home/django/django_project
。
接下来,创建您的第一个视图。 打开文件hello/views.py
进行编辑,使用nano
或您最喜欢的文本编辑器。
nano hello/views.py
它原来是这样的:
from django.shortcuts import render
# Create your views here.
修改它以匹配以下内容。 这告诉Django返回你好,世界! 这是我们的第一个观点。 作为HTTP响应。
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world! This is our first view.")
保存并关闭流氓。 接下来,我们需要将我们刚刚创建的视图连接到一个URL。 为此,请打开django_project/urls.py
进行编辑。
nano django_project/urls.py
将以下两行添加到文件中,导入您刚创建的视图,并将其设置为默认URL:
. . .
from django.conf.urls import include, url
from django.contrib import admin
from hello import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^admin/', include(admin.site.urls)),
]
保存并关闭该文件,然后退出django用户并返回到根 shell。
exit
以root身份重新启动项目。
systemctl restart gunicorn.service
现在,如果你重新加载你的Droplet的IP地址http:// your_server_ip
,你会看到一个页面, 你好,世界! 这是我们的第一个观点 。
下一步
你已经准备好开始与Django合作了。 从这里可以:
- 按照我们的初始服务器安装指南,为您的用户提供
sudo
权限,锁定根登录,并采取其他步骤使您的VPS准备生产。 - 使用Fabric自动部署和其他管理任务。
- 查看官方Django项目文档 。