介绍
Django 是以 Python 编写的免费和开源的 Web 框架,它遵循了 model template view (MTV) 软件架构模式。MTV 模式是 Django 采用了 model–view–controller (MVC)模式。根据 Django 软件基金会, model 是您的数据的唯一最终来源, view 描述了通过 Python 召回函数(https://andsky.com/tech/tutorials/how-to-define-functions-in-python-3)向特定 URL 提供给用户的数据,以及 template 是 Django 如何动态地生成 HTML。
Django的核心原则是可扩展性、可重复使用性和快速发展,它也以其框架层面的一致性和宽松的连接而闻名,允许单个组件相互独立。
在本教程中,我们将设置一个Django开发环境,我们将安装Python 3,Pip 3,Django和virtualenv
,以便为您提供与Django开发Web应用程序所需的工具。
前提条件
在 Debian 或 Ubuntu Linux 服务器上设置了具有sudo
权限的非根用户帐户. 您可以通过遵循和完成 Debian 8 的初始服务器设置,或在 Ubuntu 16.04 的初始服务器设置教程中的步骤 1-4 来实现这些前提。
步骤1:安装Python和Pip
要安装Python,我们必须先更新本地APT存储库。在您的终端窗口,我们将输入以下命令。 请注意,y
旗在升级过程中对提示表示是
。
1sudo apt-get update && sudo apt-get -y upgrade
当被要求配置grub-pc
时,您可以按ENTER
来接受默认值,或根据需要进行配置。
Django 软件基金会建议使用 Python 3,因此一旦更新,我们可以使用以下命令安装 Python 3:
1sudo apt-get install python3
要验证 Python 3 的成功安装,请使用 python3 命令运行版本检查:
1python3 -V
结果的结果将看起来像这样:
1[secondary_label Output]
2python 3.5.2
现在我们已经安装了Python 3,我们还需要 pip 才能从PyPi,Python的包库中安装包。
1sudo apt-get install -y python3-pip
要验证 pip 是否已成功安装,请运行以下命令:
1pip3 -V
你应该看到类似于此的输出:
1[secondary_label Output]
2pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
现在我们已经安装了 pip,我们有能力快速为 Python 环境安装其他必要的包。
第2步:安装虚拟机
virtualenv 是一个虚拟环境(https://andsky.com/tech/tutorials/how-to-install-python-3-and-set-up-a-programming-environment-on-an-ubuntu-16-04-server# step-2-%E2%80%94-setting-up-a-virtual-environment),您可以在包含的开发空间中安装软件和Python包,这将安装的软件和包与您的机器的其他全球环境隔离。
要安装 virtualenv,我们将使用 pip3 命令,如下所示:
1pip3 install virtualenv
一旦安装,运行版本检查,以验证安装已成功完成:
1virtualenv --version
我们应该看到以下输出,或类似的东西:
1[secondary_label Output]
2virtualenv 20.0.20 from /home/sammy/.local/lib/python3.5/site-packages/virtualenv/__init__.py
您已成功安装了 virtualenv 。
在这一点上,我们可以将我们的DjangoWeb应用程序及其相关的软件依赖性与我们系统上的其他Python包或项目隔离。
第3步:安装Django
有三种方法来安装Django. 我们将使用Pip安装方法为本教程,但让我们来解决所有可用的选项为您的参考。
- ** 选项 1:在
virtualenv
中安装 Django。
这对于你需要你的Django版本与你的服务器的全球环境隔离时是理想的。
- **选项2:从源头安装Django。
如果你想要最新的软件或想要比你的Ubuntu APT存储库提供的东西更新的东西,你可以直接从源头上安装。
- ** 选项 3: 使用 pip 安装 Django Global。
我们正在使用的选项是Pip 3,因为我们将在全球安装Django。
我们将在虚拟环境中使用 pip 安装 Django. 有关设置和使用编程环境的进一步指导和信息,请参阅本教程中的 设置虚拟环境。
在服务器的主目录中,我们必须创建包含我们的Django应用程序的目录,运行以下命令来创建名为django-apps
的目录,或您选择的其他名称,然后导航到目录。
1mkdir django-apps
2cd django-apps
在django-apps
目录中,创建你的虚拟环境,让我们称之为env
。
1virtualenv env
现在,用以下命令激活虚拟环境:
1. env/bin/activate
您将知道它一旦更改前缀为(env)
,取决于您所在的目录,它将看起来类似于以下:
在环境中,使用 pip 安装 Django 包. 安装 Django 使我们能够创建和运行 Django 应用程序. 有关 Django 的更多信息,请阅读我们在 Django 开发上的教程系列。
1pip install django
一旦安装,请通过运行版本检查来验证您的 Django 安装:
1django-admin --version
这个或类似的东西将是结果:
1[secondary_label Output]
22.2.12
有了 Django 安装在您的服务器上,我们可以创建一个测试项目,以确保一切正常工作。
步骤 4 – 创建一个 Django 测试项目
为了测试 Django 安装,我们将创建一个骨骼 Web 应用程序。
设置防火墙规则
首先,如果适用,我们需要打开我们将在服务器防火墙中使用的端口. 如果您正在使用 UFW (如初始服务器设置指南中详细描述的)(https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-16-04# step-seven-%E2%80%94-set-up-a-basic-firewall),您可以使用以下命令打开端口:
1sudo ufw allow 8000
如果您正在使用DigitalOcean防火墙,您可以从入口规则中选择HTTP
。
启动项目
我们现在可以使用django-admin
来生成一个应用程序,这是一个用于Python中的管理任务的命令行工具,然后我们可以使用startproject
命令为我们的测试网站创建项目目录结构。
在「django-apps」目录中,运行以下命令:
1django-admin startproject testsite
<$>[note]
注: 运行django-admin startproject <projectname>
命令将项目目录和项目包命名为<projectname>
,并在执行命令的目录中创建项目。
现在我们可以看看刚刚创建了哪些项目文件。导航到测试站点
目录,然后列出该目录的内容,以查看创建了哪些文件:
1cd testsite
1ls
1[secondary_label Output]
2manage.py testsite
你会注意到输出显示这个目录包含一个名为manage.py
的文件和一个名为testsite
的文件夹。manage.py
文件类似于django-admin
,并将项目的包放置在sys.path
。
您可以通过运行少
命令来查看终端中的manage.py
脚本:
1less manage.py
当你完成阅读脚本时,按q
,停止查看文件。
现在导航到测试站点
目录,查看已创建的其他文件:
1cd testsite/
然后运行以下命令列出目录的内容:
1ls
你会看到四个文件:
1[secondary_label Output]
2__init__.py settings.py urls.py wsgi.py
让我们来看看这些文件中的每一个是什么:
__init__.py
作为您的 Python 项目的入口点。settings.py
描述了您的 Django 安装的配置,并让 Django 知道哪些设置可用。urls.py
包含一个urlpatterns
列表,该列表路由和地图 URL 到其views
.wsgi.py
包含 Web Server Gateway 接口的配置。
<$>[注] 注: 虽然生成了默认文件,但您仍然可以随时调整 `wsgi.py’以满足您的部署需求。
开始并查看您的网站
现在我们可以启动服务器并在指定主机和端口上查看网站,运行runserver
命令。
我们需要将您的服务器 ip 地址添加到位于 ~/test_django_app/testsite/testsite/
的 settings.py
文件中的 ALLOWED_HOSTS
列表中。
正如 Django docs中所述的,ALLOWED_HOSTS
变量包含一个代表这个Django网站可以服务的主机/域名的字符串列表,这是防止HTTP主机头攻击的安全措施,即使在许多看似安全的Web服务器配置中也是可能的
。
您可以使用您喜爱的文本编辑器添加您的 ip 地址,例如,如果您正在使用nano
,只需执行以下命令:
1nano ~/django-apps/testsite/testsite/settings.py
一旦运行该命令,您将要导航到文档的允许主机部分,并在单个或双重引用中添加服务器的IP地址。
1[label settings.py]
2"""
3Django settings for testsite project.
4
5Generated by 'django-admin startproject' using Django 2.0.
6...
7"""
8...
9# SECURITY WARNING: don't run with debug turned on in production!
10DEBUG = True
11
12# Edit the line below with your server IP address
13ALLOWED_HOSTS = ['your-server-ip']
14...
您可以保存更改和退出Nano,以保持CTRL
+x
键,然后按y
键。
完成此操作后,请确保返回位于manage.py
的目录:
1cd ~/django-apps/testsite/
现在,运行以下命令,将您的服务器-ip 文本替换为您的服务器的 IP:
1python manage.py runserver your-server-ip:8000
最后,您可以浏览下面的链接,看看您的骨骼网站是什么样子,再次用您的服务器的实际IP代替突出的文本:
1http://your-server-ip:8000/
一旦页面加载,您将收到一个类似于以下的网页:
这证实 Django 已正确安装,我们的测试项目正在正常运行。
当你完成测试你的应用程序时,你可以按CTRL
+C
停止runserver
命令,这会让你回到你的编程环境。
当你准备离开你的Python环境时,你可以运行禁用
命令:
1deactivate
停用您的编程环境将使您回到终端命令提示。
结论
在本教程中,您已成功升级到最新的Python 3版本,可通过Ubuntu APT存储库为您提供。
您现在拥有开始构建 Django Web 应用程序所需的工具。