前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Debian 8上安装Django Web框架

如何在Debian 8上安装Django Web框架

原创
作者头像
圣人惠好可爱
发布2018-08-03 15:35:07
2.3K0
发布2018-08-03 15:35:07
举报

介绍

Django是一个功能齐全的Python Web框架,用于开发动态网站和应用程序。使用Django,您可以快速创建Python Web应用程序,并依靠该框架来完成繁重的工作。

在本教程中,我们将向您展示如何在Debian 8服务器上启动并运行Django。安装完成后,我们将向您展示如何在您网站上创建一个新项目。

准备

在开始之前,您应该拥有一个在root用户服务器上可以使用sudo命令权限的非root用户。没有服务器的同学可以在这里购买

可用的安装方法

根据您的需求以及您希望如何配置开发环境,可以通过多种方式安装Django。它们具有不同的优点,找到其中一种更适合您具体情况的方法。

一些不同的方法如下:

  • 从软件包全局安装:官方Debian存储库包含Django软件包,可以使用传统的apt软件包管理器轻松安装。这种方法简单,但不如其他一些方法灵活。此外,存储库中的版本可能落后于项目中可用的官方版本。
  • 通过pip进行全局安装:pip工具是Python包的软件包管理器。如果安装pip,您可以在各个系统级别轻松安装Django以供任何用户使用。
  • 通过Virtualenv中的pip安装:Python virtualenv包允许您为各种项目创建自含环境。使用此技术,您可以在项目目录中安装Django,而不会影响系统级软件包。
  • 开发版本通过git安装:如果您希望安装最新的开发版本而不是稳定版本,则必须从git获取代码。但是,开发版本没有稳定保证。

考虑到上述注意事项,请根据以下说明选择最适合您的安装方法。

从软件包中全局安装

如果您希望使用Debian存储库安装Django,则该过程非常简单。

首先,使用apt命令更新本地包索引:

代码语言:txt
复制
$ sudo apt-get update

接下来,选择要与Django一起使用的Python版本。对于Python 2,请输入:

代码语言:txt
复制
$ sudo apt-get install python-django

相反,如果您想将Python 3与Django 一起使用,请输入:

代码语言:txt
复制
$ sudo apt-get install python3-django

您可以通过输入以下内容来测试安装是否成功:

代码语言:txt
复制
$ django-admin --version
代码语言:txt
复制
1.7.11

这意味着该软件已成功安装。您可能还注意到Django版本不是最新版本。

通过pip全局安装

如果您希望通过全局安装最新版本的Django,更好的选择是使用pip,一个Python包管理器。首先,我们需要安装pip包管理器。刷新apt包索引:

代码语言:txt
复制
$ sudo apt-get update

现在,您可以安装相应的软件包并完成安装。您需要的软件包和命令取决于使用的Python版本。

Python 2

如果您打算使用Python 2,请使用以下命令安装pipPython包管理器:

代码语言:txt
复制
$ sudo apt-get install python-pip

当您有了pip后,你可以通过输入以下内容轻松安装Django:

代码语言:txt
复制
$ sudo pip install django

您可以通过输入以下内容来验证安装是否成功:

代码语言:txt
复制
$ django-admin --version
代码语言:txt
复制
1.10.4

正如您所看到的,通过pip提供的版本比Debian存储库中的版本更新(您的版本可能与上面的版本不同)。

Python 3

如果您打算使用Python 3,请pip使用以下命令安装:

代码语言:txt
复制
$ sudo apt-get install python3-pip

接下来,我们可以通过输入pip命令并利用软件包管理器来安装Django:

代码语言:txt
复制
$ sudo pip3 install django

要验证安装是否正确完成,请输入:

代码语言:txt
复制
$ django-admin --version
代码语言:txt
复制
1.10.4

通过安装的版本pip应该是最新的稳定版本(具体版本可能与上面显示的版本不同)。

通过pip安装Virtualenv

也许在您的系统上安装Django最灵活的方法是使用virtualenv工具。此工具允许您创建虚拟Python环境,您可以在其中安装所需的任何Python软件包,而不会影响系统的其余部分。这允许您基于每个项目选择Python软件包,而不管是否与其他项目的要求冲突。

我们将从Debian存储库开始安装pip。在开始之前刷新本地包索引:

代码语言:txt
复制
$ sudo apt-get update

安装Django所需的软件包和命令因您希望用于项目的Python版本而异。按照以下说明获取要使用的Python版本。

Python 2

第一步是全覆盖安装pip。使用Python 2时,执行此操作的命令是:

代码语言:txt
复制
$ sudo apt-get install python-pip

一旦pip被安装,你可以通过输入以下命令来安装virtualenv软件包:

代码语言:txt
复制
$ sudo pip install virtualenv

现在,无论何时启动新项目,都可以为其创建虚拟环境。首先创建并移动到新的项目目录:

代码语言:txt
复制
$ mkdir ~/projectname
$ cd ~/projectname

现在,通过的输入以下内容在项目目录中创建虚拟环境:

代码语言:txt
复制
$ virtualenv venv

这将在项目目录中的独立目录结构中安装独立版本的Python以及pip。我们选择将我们的虚拟环境称为venv,您也可以改成其他名称。将使用您选择的名称创建一个目录,该目录将保存安装程序包的文件层次结构。

要将软件包安装到隔离环境中,必须通过输入以下命令将其激活:

代码语言:txt
复制
$ cd ~/projectname
$ source venv/bin/activate

您的提示应该更改以反映您现在处于虚拟环境中。它看起来类似(venv)username@hostname:~/projectname$.

在新环境中,您可以使用pip来安装Django。你并不需要使用sudo,因为您在本地安装:

代码语言:txt
复制
(venv) $ pip install django

您可以输入以下内容来验证安装:

代码语言:txt
复制
(venv) $ django-admin --version
代码语言:txt
复制
1.10.4

如您所见,Django已安装在虚拟环境中。

注意:要退出虚拟环境,请从系统上的任何位置使用deactivate命令:

代码语言:txt
复制
(venv) $ deactivate

您的提示应恢复为传统显示。

当您希望再次处理项目时,您应该重新激活虚拟环境,方法是返回项目目录并激活:

代码语言:txt
复制
$ cd ~/projectname
$ source venv/bin/activate

Python 3

第一步是全覆盖安装pip。要使用Python 3执行此操作,请输入:

代码语言:txt
复制
$ sudo apt-get install python3-pip

接下来,使用刚刚安装的软件包管理器来安装virtualenvPython软件包:

代码语言:txt
复制
$ sudo pip3 install virtualenv

接下来,创建一个虚拟环境来保存新项目的包。首先创建并移动到新的项目目录:

代码语言:txt
复制
$ mkdir ~/projectname
$ cd ~/projectname

输入以下内容,在项目目录中创建虚拟环境:

代码语言:txt
复制
$ virtualenv venv

这将在项目目录中的独立目录结构中安装独立版本的Python以及pip。将创建一个目录,其名称作为参数传入。我们在这里选择venv。此目录将保存将安装软件包的文件层次结构。

在将软件包安装到虚拟环境之前,必须输入以下命令将其激活:

代码语言:txt
复制
$ cd ~/projectname
$ source venv/bin/activate

您的命令提示符现在应该以您的虚拟环境的名称为前缀。它看起应类似。(venv)username@hostname:~/projectname$.

在新环境中,使用pip安装Django。请注意,即使我们使用Python 3,命令中的虚拟环境还是pip(不是pip3)。另请注意,由于您在本地安装,因此无需使用sudo:

代码语言:txt
复制
(venv) $ pip install django

您可以输入以下内容来验证安装:

代码语言:txt
复制
(venv) $ django-admin --version
代码语言:txt
复制
1.10.4

如您所见,Django已安装在虚拟环境中。

注意:要退出虚拟环境,请从系统上的任何位置使用deactivate命令:

代码语言:txt
复制
(venv) $ deactivate

您的提示应恢复为传统显示。

当您希望再次处理项目时,您应该重新激活虚拟环境,方法是返回项目目录并激活:

代码语言:txt
复制
$ cd ~/projectname
$ source venv/bin/activate

通过git安装开发版本

如果您需要Django的开发版本,则必须从项目的git存储库下载并安装Django 。

为此,您将首先使用apt在您的系统上安装git。我们还需要pip,用于从下载的源代码安装。

Python 2

如果您使用的是Python 2,则可以通过输入以下内容来更新软件包索引并安装必要的软件包:

代码语言:txt
复制
$ sudo apt-get update
$ sudo apt-get install git python-pip

完成后git,您可以复制Django存储库。在发行版之间,此存储库将具有更多最新功能和错误修复,可能会牺牲稳定性。您可以通过输入以下命令将存储库克隆到主目录中django-dev的目录:

代码语言:txt
复制
$ git clone git://github.com/django/django ~/django-dev

克隆存储库后,您可以使用pip进行安装。我们将使用-e选项以“可编辑”模式安装,这在从版本控制安装时是必需的。如果您使用的是Python的第2版,请输入:

代码语言:txt
复制
$ sudo pip install -e ~/django-dev

您可以通过输入以下内容来验证安装是否成功:

代码语言:txt
复制
$ django-admin --version
代码语言:txt
复制
1.11.dev20161220175814

请记住,如果您希望在单个环境中安装Django的开发版本,可以将此策略与virtualenv结合使用。

Python 3

如果您使用的是Python 3,请更新软件包索引并安装git和pip并输入:

代码语言:txt
复制
$ sudo apt-get update
代码语言:txt
复制
$ sudo apt-get install git python3-pip

接下来,您可以通过输入以下命令将Django存储库克隆到主目录中调用的django-dev目录:

代码语言:txt
复制
$ git clone git://github.com/django/django ~/django-dev

您可以使用pip直接从git目录安装Django。-e选项允许我们以“可编辑”模式安装,从版本控制存储库安装时需要这种模式:

代码语言:txt
复制
$ sudo pip3 install -e ~/django-dev

您可以通过输入以下内容来验证安装是否成功:

代码语言:txt
复制
$ django-admin --version
代码语言:txt
复制
1.11.dev20161220175814

如果您希望在隔离环境中安装开发版本,可以将此策略与virtualenv策略结合使用。

创建示例项目

一旦安装了Django,我们就可以向您展示如何开始项目。

创建项目基础

使用django-admin命令创建项目。这将在当前目录中创建一个名为projectname的目录。在这个新目录中,将创建一个管理脚本,并使用实际代码创建另一个名为projectname的目录。

注意:如果您已经创建了一个用于virtualenv命令的主项目目录,则可以告诉Django将管理脚本和内部目录直接放入现有目录中。这将有助于避免额外的项目目录层。

代码语言:txt
复制
$ cd ~/projectname
$ source venv/bin/activate
$ django-admin startproject projectname .

注意命令末尾的句点。

要创建完整目录结构(主项目目录,管理脚本和内部项目目录),请输入:

代码语言:txt
复制
$ django-admin startproject projectname
代码语言:txt
复制
$ cd projectname

要引导数据库(默认情况下使用SQLite),请输入:

代码语言:txt
复制
$ ./manage.py migrate

接下来,输入以下内容创建管理用户:

代码语言:txt
复制
$ ./manage.py createsuperuser

系统将要求您为用户选择用户名,电子邮件地址和密码。

在Django设置中修改ALLOWED_HOSTS

在测试应用程序之前,需要修改Django设置中的一个指令。

输入以下命令打开设置文件:

代码语言:txt
复制
$ nano ~/projectname/projectname/settings.py

在里面,找到该ALLOWED_HOSTS指令,定义了用于连接Django实例的地址或域名的白名单。不在此列表中的任何传入请求都将引发异常。Django要求您将其设置为防止某类安全漏洞。

在方括号中,列出与Django服务器关联的IP地址或域名。每个项目都应该在引号中列出,用逗号分隔。如果您希望响应域和子域的任何请求,在后面添加.。在下面的代码段中,有一些注释掉的示例用于演示ALLOWED_HOSTS指令的正确方法:

~/myproject/myproject/settings.py

代码语言:txt
复制
. . .

. . .
# 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', . . .]

完成后,保存并关闭文件。

使用您的Development Server进行测试

接下来,启动Django开发服务器,看看新的Django项目是什么样的。

注意:在尝试开发服务器之前,请确保打开防火墙中的端口。

如果您正在运行一个ufw防火墙,可以通过输入以下命令打开相应的端口:

代码语言:txt
复制
$ sudo ufw allow 8000

如果您运行的是iptables防火墙,则所需的命令取决于您当前的防火墙配置。对于大多数配置,以下命令都能起作用:

代码语言:txt
复制
$ sudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT

输入以下命令启动服务器:

代码语言:txt
复制
$ ~/projectname/manage.py runserver 0.0.0.0:8000

访问服务器的IP地址,然后在Web浏览器中访问:8000

代码语言:txt
复制
http://server_ip_address:8000

你应该看到类似这样的界面:

Django public page
Django public page

现在,附加/admin到URL的末尾以进入管理员登录页面:

代码语言:txt
复制
server_ip_address:8000/admin
Django admin login
Django admin login

如果您输入刚刚创建的管理员用户名和密码,则应该转到该站点的管理部分:

Django admin page
Django admin page

查看完默认站点后,可以通过使用CTRL-C终端来停止服务器。

结论

您现在应该在Debian 8服务器上已经安装了Django,还知道如何创建新项目并启用服务器。利用像Django这样的完整Web框架可以帮助您更快地开发。如果需要创建了一个Django应用程序并将其连接到MySQL数据库启用和连接Django管理界面等等相关教程,欢迎访问腾讯云+社区学习更多知识。


参考文献:《How To Install the Django Web Framework on Debian 8》

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 可用的安装方法
  • 从软件包中全局安装
  • 通过pip全局安装
  • 通过pip安装Virtualenv
  • 通过git安装开发版本
  • 创建示例项目
    • 创建项目基础
      • 在Django设置中修改ALLOWED_HOSTS
        • 使用您的Development Server进行测试
        • 结论
        相关产品与服务
        云数据库 MySQL
        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档