如何使用Ubuntu 16.04中的Django One-Click安装映像

介绍

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文件中的WorkingDirectorynamepythonpath

该项目可以使用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

它原来是这样的:

原始的hello / views.py
from django.shortcuts import render

# Create your views here.

修改它以匹配以下内容。 这告诉Django返回你好,世界! 这是我们的第一个观点。 作为HTTP响应。

修改hello / views.py
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:

django_project / urls.py
. . .
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合作了。 从这里可以:

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏