如何在Debian8上安装DjangoWeb框架
介绍
Django 是一个功能齐全的 Python Web 框架,用于开发动态网站和应用程序。 使用 Django,您可以快速创建 Python Web 应用程序并依靠该框架完成大量繁重的工作。
在本指南中,我们将向您展示如何在 Debian 8 服务器上启动和运行 Django。 安装后,我们将向您展示如何启动一个新项目以用作您网站的基础。
先决条件
在开始之前,您应该在 Debian 8 服务器上拥有一个具有 sudo
权限的非 root 用户。 要进行设置,请按照我们的 Debian 8 初始服务器设置指南 。
当您准备好继续时,请阅读下文以决定哪种安装方法最适合您的情况。
可用的安装方法
根据您的需要以及您希望如何配置开发环境,您可以通过多种不同的方式安装 Django。 这些具有不同的优势,一种方法可能比其他方法更适合您的具体情况。
一些不同的方法如下:
- Global Install from Packages:官方 Debian 存储库包含 Django 包,可以使用传统的
apt
包管理器轻松安装。 这非常简单,但不如其他一些方法灵活。 此外,存储库中包含的版本可能落后于项目中可用的官方版本。 - 通过 pip 全局安装:
pip
工具是 Python 包的包管理器。 如果你安装了pip
,你可以很容易地在系统级别安装Django,供任何用户使用。 这应该始终包含最新的稳定版本。 即便如此,全球安装本质上不太灵活。 - 在 Virtualenv 中通过 pip 安装:Python
virtualenv
包允许您为各种项目创建自包含环境。 使用这项技术,您可以在项目目录中安装 Django,而不会影响系统级包。 这使您可以轻松地提供每个项目的自定义和包。 与全局可访问的安装相比,虚拟环境增加了一些轻微的心理和过程开销,但提供了最大的灵活性。 - Development Version 通过 git 安装:如果你想安装最新的开发版本而不是稳定版本,你必须从
git
repo 获取代码。 这可能是获取最新功能/修复所必需的,并且可以在全局或本地完成。 但是,开发版本没有相同的稳定性保证。
考虑到上述注意事项和质量,请从以下说明中选择最适合您需要的安装方法。 之后,请务必查看 创建示例项目 部分以了解如何开始。
从包全局安装
如果您希望使用 Debian 存储库安装 Django,该过程非常简单。
首先,用 apt
更新你的本地包索引:
sudo apt-get update
接下来,选择要与 Django 一起使用的 Python 版本。 对于 Python 2,键入:
sudo apt-get install python-django
相反,如果您想在 Django 中使用 Python 3,请输入:
sudo apt-get install python3-django
您可以通过键入以下内容来测试安装是否成功:
django-admin --version
Output1.7.11
这意味着该软件已成功安装。 您可能还注意到 Django 版本不是最新的稳定版本。 要了解有关如何使用该软件的一些信息,请跳过以了解 如何创建示例项目 。
通过 pip 全局安装
如果您希望全局安装最新版本的 Django,更好的选择是使用 Python 包管理器 pip
。 首先,我们需要安装 pip
包管理器。 刷新您的 apt
包索引:
sudo apt-get update
现在,您可以安装相应的软件包并完成安装。 您需要的包和命令取决于您计划在项目中使用的 Python 版本。
蟒蛇2
如果您打算使用 Python 2,请使用以下命令安装 Python 包管理器 pip
:
sudo apt-get install python-pip
现在您已经有了 pip
,您可以通过键入以下命令轻松安装 Django:
sudo pip install django
您可以通过键入以下内容来验证安装是否成功:
django-admin --version
Output1.10.4
如您所见,通过 pip
提供的版本比 Debian 存储库中的版本更新(您的版本可能与上述不同)。
蟒蛇 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 包,而不管与其他项目的要求是否冲突。
我们将从 Debian 存储库中安装 pip
开始。 在开始之前刷新您的本地包索引:
sudo apt-get update
安装 Django 所需的包和命令根据您希望用于项目的 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
蟒蛇 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,虚拟环境中的命令 within 是 pip
(不是 pip3
)。 另请注意,您 不需要 需要使用 sudo
,因为您是在本地安装:
pip install django
您可以通过键入以下内容来验证安装:
django-admin --version
Output1.10.4
如您所见,Django 已经安装在虚拟环境中。
注意: 要退出您的虚拟环境,请从系统上的任何位置发出 deactivate
命令:
deactivate
您的提示应该恢复到常规显示。
当您希望再次处理您的项目时,您应该重新激活您的虚拟环境,方法是回到您的项目目录并激活:
cd ~/projectname source venv/bin/activate
开发版通过git安装
如果您需要 Django 的开发版本,则必须从项目的 git
存储库下载并安装 Django。
为此,您将首先使用 apt
在您的系统上安装 git
。 我们还需要pip
,用于从下载的源代码安装。 包名称和命令取决于您计划与 Django 一起使用的 Python 版本。
蟒蛇2
如果您使用的是 Python 2,则可以通过键入以下命令更新包索引并安装必要的包:
sudo apt-get update sudo apt-get install git python-pip
拥有 git
后,您可以克隆 Django 存储库。 在发布之间,此存储库将具有更多最新功能和错误修复,但可能会牺牲稳定性。 您可以通过键入以下命令将存储库克隆到主目录中名为 django-dev
的目录:
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
请记住,如果您希望在单个环境中安装 Django 的开发版本,可以将此策略与 virtualenv
结合使用。
蟒蛇 3
如果您使用的是 Python 3,请更新您的包索引并通过键入以下内容安装 git
和 pip
:
sudo apt-get update sudo apt-get install git python3-pip
接下来,您可以通过键入以下命令将 Django 存储库克隆到主目录中名为 django-dev
的目录:
git clone git://github.com/django/django ~/django-dev
您可以使用 pip
直接从 git
目录安装 Django。 -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 实例的地址或域名的白名单。 任何带有不在此列表中的 Host 标头的传入请求都将引发异常。 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
http://server_ip_address:8000
您应该会看到如下所示的内容:
现在,将 /admin
附加到 URL 的末尾以访问管理员登录页面:
server_ip_address:8000/admin
如果您输入刚刚创建的管理员用户名和密码,您应该会被带到该站点的管理员部分:
浏览完默认站点后,您可以通过在终端中键入 CTRL-C
来停止开发服务器。
您创建的 Django 项目为设计更完整的站点提供了结构基础。 查看 Django 文档 以获取有关如何构建应用程序和自定义站点的更多信息。
结论
您现在应该在 Debian 8 服务器上安装了 Django,它提供了创建强大的 Web 应用程序所需的主要工具。 您还应该知道如何启动一个新项目并启动开发人员服务器。 利用像 Django 这样的完整 Web 框架可以帮助加快开发速度,让您只专注于应用程序的独特方面。