介绍
Django是一个功能齐全的Python网络框架,用于开发动态网站和应用程序。使用Django,你可以快速创建Python Web应用程序,并依靠框架做很多重的工作。 在本指南中,我们将向您展示如何让Django在Debian 8服务器上运行。安装后,我们将向您展示如何开始一个新项目,作为您网站的基础。先决条件
在开始之前,你应该有一个非root用户sudo
您的Debian 8服务器上可用的特权。 要这样设置,按照我们的
Debian 8初始服务器设置指南 。 当您准备好继续时,请阅读下面决定哪种安装方法最适合您的情况。
可用的安装方法
有多种不同的方法可以根据您的需要和如何配置您的开发环境来安装Django。这些具有不同的优势,一种方法可能更适合您的具体情况比其他。 一些不同的方法如下:- 全球从包安装 :Debian官方仓库包含可轻松与传统的安装包的Django
apt
包管理器。这很简单,但不像一些其他方法那么灵活。此外,存储库中包含的版本可能落后于项目提供的正式版本。 - 全球通过PIP安装 :该
pip
工具是Python包的软件包管理器。 如果你安装了pip
,可以很容易地在系统级别,任何用户使用安装Django。这应该总是包含最新的稳定版本。即使如此,全球安装本身也不太灵活。 - 通过PIP在VIRTUALENV安装 :Python的
virtualenv
包允许您创建各种项目的自包含环境。使用此技术,您可以在项目目录中安装Django,而不会影响系统级包。这允许您轻松提供每个项目的自定义和包。与全球可访问的安装相比,虚拟环境增加了一些轻微的心理和进程开销,但提供了最大的灵活性。 - 开发版本通过Git安装 :如果你想安装最新开发版本,而不是稳定版,你将必须获得从该代码
git
回购。这可能是必要的,以获得最新的功能/修复程序,可以在全球或本地。但是,开发版本没有相同的稳定性保证。
从软件包全局安装
如果你想使用Debian仓库安装Django,这个过程很简单。 首先,更新本地软件包索引apt
:
sudo apt-get update
接下来,选择要与Django一起使用的Python版本。对于
Python 2,请键入:
sudo apt-get install python-django
相反,如果你想使用
Python 3 Django的,请键入:
sudo apt-get install python3-django
您可以键入以下内容来测试安装是否成功:
django-admin --version
Output1.7.11
这意味着软件已成功安装。你也可能注意到Django版本不是最新的稳定版本。要了解一些关于如何使用该软件,可以直接跳到学习
如何创建一个示例项目 。
全局安装通过pip
如果你想在全球范围内安装最新版本的Django的,更好的选择是使用pip
,Python的包管理器。 首先,我们需要安装
pip
包管理器。 刷新
apt
包索引:
sudo apt-get update
现在,您可以安装相应的软件包并完成安装。您需要的包和命令取决于计划与您的项目一起使用的Python版本。
Python 2
如果你打算使用Python 2,安装pip
,Python的包管理器,使用以下命令:
sudo apt-get install python-pip
现在,你有
pip
,你可以很容易地通过键入安装Django:
sudo pip install django
您可以通过键入以下内容来验证安装是否成功:
django-admin --version
Output1.10.4
正如你所看到的,可以通过版本
pip
更高达最新比Debian仓库的一(你很可能会与上述不同)。
Python 3
如果你打算使用 Python 3,安装pip
使用以下命令:
sudo apt-get install python3-pip
接下来,我们可以利用
pip
包管理器通过键入安装Django:
sudo pip3 install django
要验证安装是否正确完成,请键入:
django-admin --version
Output1.10.4
通过安装的版本
pip
应该是最新的稳定版本(具体的版本可能比上面显示的不同)。
Virtualenv通过pip安装
也许,您的系统上安装Django最灵活的方式是使用virtualenv
工具。此工具允许您创建虚拟Python环境,您可以在其中安装所需的任何Python包,而不会影响系统的其余部分。这允许您基于每个项目选择Python包,无论与其他项目的要求冲突。 我们将通过安装开始
pip
从Debian仓库。在开始之前刷新本地包索引:
sudo apt-get update
安装Django所需的软件包和命令因您希望用于项目的Python版本而异。按照以下说明,了解您计划使用的Python版本。
Python 2
第一步是安装pip
全局。当使用Python 2时,执行此操作的命令是:
sudo apt-get install python-pip
一旦
pip
安装,你可以用它来安装
virtualenv
键入包:
sudo pip install virtualenv
现在,无论何时启动一个新项目,都可以为其创建一个虚拟环境。首先创建并移动到一个新的项目目录:
mkdir ~/projectname
cd ~/projectname
现在,通过键入以下内容在项目目录中创建一个虚拟环境:
virtualenv venv
这将安装Python的独立版本,以及
pip
您的项目目录中,成为一个孤立的目录结构。 我们选择拨打我们的虚拟环境
venv
,但你可以将其命名为描述性的东西。将使用您选择的名称创建一个目录,该目录将包含将要安装软件包的文件层次结构。 要将软件包安装到隔离环境中,必须通过键入以下命令来激活它:
cd ~/projectname
source venv/bin/activate
您的提示应该更改以反映您现在处于虚拟环境中。它看起来像
( venv )username@hostname:~/projectname$
。 在新的环境中,你可以使用
pip
来安装Django。 你
并不需要使用
sudo
,因为你是在本地进行安装:
pip install django
您可以键入以下内容来验证安装:
django-admin --version
Output1.10.4
如您所见,Django已经安装在虚拟环境中。
注意:要退出你的虚拟环境中,执行
deactivate
从系统上的任何命令:
deactivate
您的提示应该恢复到常规显示。 当您希望再次处理项目时,应重新激活虚拟环境,方法是重新进入项目目录并激活:
cd ~/projectname
source venv/bin/activate
Python 3
第一步是安装pip
全局。要使用Python 3执行此操作,请键入:
sudo apt-get install python3-pip
接下来,使用您刚安装到安装包管理器
virtualenv
Python包:
sudo pip3 install virtualenv
接下来,创建一个虚拟环境来保存新项目的软件包。首先创建并移动到新的项目目录:
mkdir ~/projectname
cd ~/projectname
通过键入以下内容在项目目录中创建虚拟环境:
virtualenv venv
这将安装Python的独立版本,以及
pip
您的项目目录中,成为一个孤立的目录结构。 将创建一个具有作为参数传递的名称的目录。 我们选择
venv
在这里。此目录将保存要安装软件包的文件层次结构。 在将软件包安装到虚拟环境之前,必须通过键入以下命令来激活它:
cd ~/projectname
source venv/bin/activate
您的命令提示符现在应该以虚拟环境的名称为前缀。它看起来像
( venv )username@hostname:~/projectname$
。 在新的环境中,使用
pip
来安装Django。 请注意,即使我们使用Python 3,在虚拟环境
中的命令是
pip
(不是
pip3
)。 还要注意的是,你
并不需要使用
sudo
,因为你是在本地进行安装:
pip install django
您可以通过键入以下内容来验证安装:
django-admin --version
Output1.10.4
如您所见,Django已经安装在虚拟环境中。
注意:要退出你的虚拟环境中,执行
deactivate
从系统上的任何命令:
deactivate
您的提示应该恢复到常规显示。 当您希望再次处理项目时,应重新激活虚拟环境,方法是重新进入项目目录并激活:
cd ~/projectname
source venv/bin/activate
开发版本通过git安装
如果你需要的Django的开发版本,您必须下载并从项目的安装Djangogit
存储库。 要做到这一点,你会先安装
git
系统与
apt
。 我们还需要
pip
,这是用来从下载源代码安装。软件包名称和命令取决于计划使用Django的Python版本。
Python 2
如果您使用Python 2,您可以更新您的包索引并通过键入以下内容安装必要的包:sudo apt-get update
sudo apt-get install git python-pip
一旦你
git
,你可以克隆Django的存储库。 在版本之间,此存储库将具有更多最新的功能和错误修复,可能会牺牲稳定性。 您可以克隆存储库到一个名为目录
django-dev
键入你的home目录内:
git clone git://github.com/django/django ~/django-dev
一旦库被克隆,您可以使用安装
pip
。 我们将使用
-e
选项中的“编辑”模式,从版本控制安装时,这是需要进行安装。如果您使用的是Python 2版本,请键入:
sudo pip install -e ~/django-dev
您可以通过键入以下内容来验证安装是否成功:
django-admin --version
Output1.11.dev20161220175814
请记住,你可以在此与战略相结合
virtualenv
,如果你想在一个单一的环境中安装的Django的开发版本。
Python 3
如果您正在使用 Python 3,更新包指数和安装git
和
pip
通过键入:
sudo apt-get update
sudo apt-get install git python3-pip
接下来,您可以克隆Django的库到一个名为目录
django-dev
键入你的home目录内:
git clone git://github.com/django/django ~/django-dev
您可以直接从安装Django
git
与目录
pip
。 该
-e
选项允许我们在“编辑”模式,从版本控制库安装时,这是需要安装:
sudo pip3 install -e ~/django-dev
您可以通过键入以下内容来验证安装是否成功:
django-admin --version
Output1.11.dev20161220175814
如果你想一个孤立的环境中安装开发版,您可以用结合这一战略
virtualenv
策略。
创建示例项目
一旦你安装了Django,我们可以告诉你如何开始一个项目。创建项目基础
使用django-admin
命令来创建一个项目。 这将创建一个名为
projectname
当前目录中。 这个新目录中,一个管理脚本将被创建和另一个名为目录
projectname
将与实际的代码来创建。
注意:如果你已经有了,你与使用创造了一个父项目目录
virtualenv
命令,你可以告诉Django管理脚本,目录内直接放置到现有目录中。这将有助于避免额外的项目目录层。
cd ~/projectname
source venv/bin/activate
django-admin startproject projectname .
注意命令结尾处的结束点。 要创建完整的目录结构(父项目目录,管理脚本和内部项目目录),请键入:
django-admin startproject projectname
cd projectname
要引导数据库(默认情况下使用SQLite),请键入:
./manage.py migrate
接下来,通过键入以下内容创建管理用户:
./manage.py createsuperuser
系统将要求您选择用户的用户名,电子邮件地址和密码。
在Django设置中修改ALLOWED_HOSTS
在您可以测试您的应用程序之前,您需要修改Django设置中的其中一个指令。 通过键入以下内容打开设置文件:nano ~/projectname/projectname/settings.py
在内部,找到
ALLOWED_HOSTS
指令。 这定义了可用于连接到Django实例的地址或域名的白名单。 任何传入的请求与
主机头不在此名单将引发异常。 Django要求您设置此项以防止某类安全漏洞。 在方括号中,列出与您的Django服务器相关联的IP地址或域名。每个项目
应与
用逗号分隔的条目
报价上市。如果您希望响应域和任何子域的请求,请在该条目的开头添加一个句点。在下面的代码段中,有几个注释掉的示例用于演示格式条目的正确方式:
〜/ myproject / myproject / settings.py
. . .
# The simplest case: just add the domain name(s) and IP addresses of your Django server
# ALLOWED_HOSTS = [ 'example.com', '203.0.113.5']
# To respond to 'example.com' and any subdomains, start the domain with a dot
# ALLOWED_HOSTS = ['.example.com', '203.0.113.5']
ALLOWED_HOSTS = ['your_server_domain_or_IP', 'second_domain_or_IP', . . .]
完成后,保存并关闭文件。
使用您的开发服务器测试
接下来,启动Django开发服务器,看看一个新的Django项目是什么样子。您只应将其用于开发目的。 注:在尝试开发服务器,确保在防火墙上打开的端口。 如果你碰巧运行ufw
防火墙,您可以打开通过键入相应的端口:
sudo ufw allow 8000
如果你正在运行
iptables
防火墙,你需要确切的命令取决于您当前的防火墙配置。 对于
大多数配置 ,这个命令应该工作:
sudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
键入以下命令来启动开发服务器:
~/projectname/manage.py runserver 0.0.0.0:8000
访问你的服务器的IP地址后面
:8000
在Web浏览器
http://server_ip_address:8000
你应该看到这样的东西:
现在,追加
/admin
你的URL的末尾才能到管理员登录页面:
server_ip_address:8000/admin
如果您输入刚刚创建的管理员用户名和密码,您应该转到网站的管理部分:
当您完成翻翻默认站点,您可以通过键入停止开发服务器
CTRL-C
在终端。 您创建的Django项目为设计更完整的网站提供了结构基础。退房
Django文档有关如何构建应用程序和自定义您的网站了解更多信息。