网站搜索

在 CentOS/Debian 中使用虚拟环境安装和配置 Django Web 框架 - 第 1 部分


“本文已使用最新版本的 Django 进行修订和更新 – 2016 年 5 月”

大约 20 年前,当万维网仍处于起步阶段时,拥有个人或商业网站几乎是一种罕见的奢侈。随着随后多种网络技术的发展以及服务器端程序和数据库结合提供的动态内容的引入,公司不再满足于拥有静态网站。

因此,Web 应用程序成为了现实——完全意义上的程序运行在 Web 服务器之上,并可通过 Web 浏览器访问。

为了使开发更容易、更有效,Web 框架旨在帮助程序员创建应用程序。简而言之,Web 框架负责开发过程中的常见核心功能,例如处理用户会话管理、与数据库交互以及将业务逻辑与显示逻辑分开的良好实践等。

在这个由 3 篇文章组成的 Django 系列中,我们将向您介绍 Django,一个基于 Python 的流行 Web 框架。因此,建议您至少熟悉一下这种编程语言,但如果您对此几乎没有经验,我们也会引导您了解基础知识。

在 CentOS 和 Debian 服务器中安装 Django

尽管您可以从 Debian(v1.7.7:扩展支持将于2015 年 12 月停止)和 Fedora EPEL(v1.7.7)安装 Django >v1.6.11:扩展支持已在2015 年 4 月存储库中停止,可用版本不是最新的稳定 LTS(长期支持)版本(v1.8.13),截至2016 年 5 月)。

在本教程中,我们将向您展示如何安装 Django v1.8.13,因为它的扩展支持至少保证到 2018 年 4 月。

安装Django的推荐方法是通过pip,这是一种流行的管理Python包的工具。此外,为了创建隔离的 Python 环境并避免可能需要不同版本软件依赖项的项目之间发生冲突,强烈鼓励使用虚拟环境。

用于创建和管理虚拟 Python 环境的工具称为 virtualenv

请按照以下步骤执行安装:

1. 对于基于 Fedora 的发行版(Fedora 本身除外),首先启用 EPEL 存储库:

yum update && yum install epel-release

2.安装pipvirtualenv

基于 Fedora 的发行版:

yum install python-pip python-virtualenv
OR 
dnf install python-pip python-virtualenv
Debian 及其衍生品:
aptitude update && aptitude install python-pip virtualenv

3. 创建一个目录来存储您的初始项目。

mkdir ~/myfirstdjangoenv
cd ~/myfirstdjangoenv

4. 创建并激活虚拟环境:

virtualenv myfirstdjangoenv

上面的命令在 ~/myfirstdjangoenv 中创建了一堆文件和子目录,并基本上在当前工作目录中安装了 Pythonpip 的本地副本。接下来,我们需要激活我们刚刚创建的虚拟环境:

source myfirstdjangoenv/bin/activate

5. 注意最后一个命令后命令提示符如何变化。现在是时候安装 Django 了:

请注意,下面的屏幕截图是在本教程的先前版本中拍摄的,但安装 Django 1.8.13 时的预期输出是相同的):


pip install Django==1.8.13

您可以通过从当前工作目录启动 Python shell 来检查 Django 版本:

python
>>> import django
>>> print(django.get_version())

(同样,在检查当前 Django 版本时,上述命令应返回 1.8.13)。

要退出 Python 提示符,请键入:

>>> exit() 

然后按Enter。接下来,关闭虚拟环境:

deactivate

请注意,当虚拟环境保持停用状态时,Django 不可用:

如何在 Django 中创建第一个项目

要在我们之前创建的虚拟环境中创建项目,需要激活它:

source myfirstdjangoenv/bin/activate

接下来,框架将创建整个目录结构来存储您的项目。为此,您需要运行。

django-admin startproject myfirstdjangoproject

上面的命令将在当前工作目录中创建一个名为 myfirstdjangoproject 的目录。

您将在其中找到一个名为 manage.py 的文件(稍后将帮助您管理项目的实用程序)和另一个子目录 (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject)。最后一个子目录将用作项目文件的容器。

虽然在我们回顾了一些 Python 并开始编写真正的 Web 应用程序后,其余文件才有意义,但值得注意的是项目容器目录中的关键文件:

  1. myfirstdjangoproject/__init__.py:这个空文件告诉Python这个目录应该被视为一个Python包。
  2. myfirstdjangoproject/settings.py:此 Django 项目的特定设置。
  3. myfirstdjangoproject/urls.py:Django 驱动的站点的 TOC(目录)。
  4. myfirstdjangoproject/wsgi.py:与 WSGI 兼容的 Web 服务器为您的项目提供服务的入口点。
ls 
ls -l myfirstdjangoproject
ls -l myfirstdjangoproject/myfirstdjangoproject

此外,Django 有一个轻量级的内置 Web 服务器(用 Python 编写,类似于 Python SimpleHTTP,还有什么?),可用于在开发过程中测试您的应用程序无需处理在此特定阶段设置 Web 服务器的任务。

但是,您需要知道这不适合生产环境 – 仅适合开发。要启动新创建的项目,请将当前工作目录更改为项目的容器目录 (~/myfirstdjangoenv/myfirstdjangoproject) 并运行:

python manage.py runserver 0.0.0.0:8000

如果您遇到以下错误:

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

按照它说的去做:

python manage.py migrate

然后再次启动服务器:

python manage.py runserver 0.0.0.0:8000

我们将在本系列的下一篇文章中介绍迁移的概念,因此您可以暂时忽略该错误消息。

无论如何,您都可以更改内置 Web 服务器侦听的默认端口。通过使用0.0.0.0作为监听的网络接口,我们允许同一网络中的其他计算机访问项目用户界面(如果您使用127.0.0.1,您只能从本地主机访问 UI)。

您还可以将端口更改为您选择的另一个端口,但您还需要确保允许通过此类端口的流量通过您的防火墙:

firewall-cmd --add-port=8000/tcp
firewall-cmd --permanent --add-port=8000/tcp

当然,不用说,如果您在启动轻量级 Web 服务器时选择使用不同的端口,则需要更新允许的端口。

您应该在终端中看到以下输出:

python manage.py runserver 0.0.0.0:8000

此时,您可以打开您最喜欢的 Web 浏览器并导航到安装 Django 的计算机的 IP 地址,后跟端口号。就我而言,它是一个 Debian Jessie 盒子,IP 192.168.0.25 并监听端口 8000

http://192.168.0.25:8000

虽然我们能够完成项目的初始设置是一件很棒的事情,但仍有很多工作要做,如上面的消息所示。

概括

在本指南中,我们解释了如何为 Django 安装和配置虚拟环境,这是一个基于 Python 的多功能开源 Web 框架。

无论您是应用程序开发人员还是系统管理员,您都需要为本文和本系列的其余部分添加书签,因为您很可能在某些时候需要考虑此类工具来完成日常任务。

在本系列的以下文章中,我们将讨论如何在已经完成的基础上使用 Django 和 Python 创建一个简单但实用的 Web 应用程序。

与往常一样,如果您对本文有疑问或有改进建议,请随时给我们留言。我们期待您的回音!