如何使用Ubuntu 16.04的Django一键安装镜像

介绍

Django是一个用于快速开发Web应用程序的高级Python框架。Django一键安装程序通过Django,Nginx,Gunicorn和Postgres为您的服务器快速部署预配置的开发环境。腾讯云实验室也提供了基于Ubuntu搭建Django站点pip安装django的方法;

创建Django Droplet

要创建Django Droplet,请从Droplet创建页面开始。在“ 选择镜像”部分中,单击“ 一键安装”应用程序选项卡,然后选择16.04图像上的Django 1.8.7

接下来,选择Droplet的大小,所需的区域以及任何其他设置(如专用网络IPv6支持或备份)。添加SSH密钥并填写Droplet的主机名。准备好后,单击“ 创建Droplet”以启动服务器。

创建后,导航http://your_server_ip到您喜欢的浏览器以验证Django是否正在运行。你会看到一个带有标题的页面!祝贺你成功进入第一个支持Django的页面。

您现在可以以root用户身份登录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中找到相关信息。

配置细节

Django项目由Gunicorn提供服务,在/home/django/gunicorn.socket侦听。Gunicorn由Nginx代理,后者在端口80侦听。

Nginx配置文件位于/etc/nginx/sites-enabled/django。如果重命名项目文件夹,请记住更改静态文件的路径。

Gunicorn是在一个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

原文 hello/ views.py 看起来像这样:

from django.shortcuts import render
# Create your views here.

修改以下内容。这告诉Django返回Hello,world!这是我们作为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用户并返回到root shell。

$   exit

root身份重启项目。

$   systemctl restart gunicorn.service

现在,如果您重新加载Droplet的IP地址http://your_server_ip,您将看到一个包含Hello,world的页面!这是我们的第一个界面。

结论

你已经准备好开始使用Django了。您还可以查看官方Django项目文档,还可以从腾讯云社区获取基于 CentOS 搭建 Python 的 Django 环境等其他相关知识。


参考文献:《How To Use the Django One-Click Install Image for Ubuntu 16.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

如何在安卓移动终端进行一次渗透实验?

下面的实验将通过使用一个虚拟Android系统作为实验主体来进行展示。在这个实验中,通过使用虚拟Android系统,模拟移动终端的操作,来帮助我们逐步实现使用一...

35060
来自专栏陈树义

高效开发技巧:为什么你下载Git项目这么慢?

笔者所在公司采用的是 GitLab 进行版本管理,但许多同事下载 Git 项目的路径是这样的: 打开浏览器 -> 输入网址 -> 查找项目地址 -> 复制项目...

37440
来自专栏WindCoder

Windows 7下硬盘安装Ubuntu 13.10图文教程

之前一直在虚拟机里玩Linux了,昨天忽然兴起想往真机里装一个,昨天找到的方法,今天折腾了半天终于装好啦。

43310
来自专栏阮一峰的网络日志

Linux 守护进程的启动方法

"守护进程"(daemon)就是一直在后台运行的进程(daemon)。 本文介绍如何将一个 Web 应用,启动为守护进程。 ? 一、问题的由来 Web应用写好后...

32450
来自专栏Java学习网

Linux 守护进程的启动方法

Linux 守护进程的启动方法 “守护进程”(daemon)就是一直在后台运行的进程(daemon)。 本文介绍如何将一个 Web 应用,启动为守护进程。 ? ...

40970
来自专栏xingoo, 一个梦想做发明家的程序员

套接口选项

getsockopt() setsockopt() optval中的返回值,0表示选项关闭,1表示选项打开 SO_BROADCAST套接口选项: 能或禁止进程发...

20550
来自专栏草根专栏

使用VS Code开发asp.net core (下)

本文是基于Windows10的. Debugging javascript 打开wwwroot/js/site.js, 写一段简单的js代码: (functio...

35050
来自专栏北京马哥教育

HTTP 协议漫谈

简介 网络上已经有不少介绍 HTTP 的好文章,对HTTP的一些细节介绍的比较好,所以本篇文章不会对 HTTP 的细节进行深究,而是从够高和更结构化的角度将 H...

313110
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使...

40200
来自专栏乐百川的学习频道

做一个运行Python文件的Atom插件

最近在学习Python,自然也安装了Atom编辑器的一些Python插件。有一个插件名字叫做atom-python-run,作用很简单,就是按F5运行当前Pyt...

30270

扫码关注云+社区

领取腾讯云代金券