Django 是一个免费开源的 Python Web 框架,用于开发动态网站和应用。在本文中,我们将在 Ubuntu 18.04 服务器上安装并运行 Django。
安装Django的方法
根据开发环境的不同,我们可以采用不同的方式来安装Django,包括:
- 从包全局安装:Ubuntu 官方存储库包含 Django 包,可以使用
apt
包管理器直接安装。但存储库中Django的版本可能落后于项目提供的官方版本。 pip
在虚拟环境中安装:您可以使用venv
和 等工具为您的项目创建一个独立的环境virtualenv
。虚拟环境允许您在项目目录中安装 Django,而不会影响更大的系统,以及其他每个项目的自定义和包。这通常是使用 Django 的最实用和推荐的方法。- 开发版本安装方式
git
:如果您希望安装最新的开发版本而不是稳定版本,您可以从 Git 存储库获取代码。这是获取最新功能/修复所必需的,并且可以在您的虚拟环境中完成。然而,开发版本没有与更稳定版本相同的稳定性保证。
环境条件
本文教程是在 Ubuntu 18.04 服务器上进行的,且拥有一个有 sudo 权限的非 root 用户。
通过包管理器安装
如果通过 Ubuntu 软件库安装 Django,先使用以下命令更新本地包索引:
sudo apt update
接下来,检查系统安装的 Python 版本。默认情况下,18.04 安装的是 Python 3.6 版本,可以通过以下命令来验证:
python3 -V
应该会看到下面的输出:
Output
Python 3.6.5
接下来,安装 Django:
sudo apt install python3-django
通过执行以下命令,来测试安装是否成功:
django-admin --version
Output
1.11.11
这意味着该软件已成功安装。
在虚拟环境中使用 pip 安装
安装 Django 的最灵活方法,是在虚拟环境中安装。通过 venv
模块创建虚拟环境,然后在其中安装 Django,这样就不会影响系统的其余部分。因此,可以在不同项目上选择不同的 Python 包,而不会产生冲突。
首先更新本地软件包索引:
sudo apt update
检查安装的 Python 版本:
python3 -V
Output
Python 3.6.5
接下来,让我们从 Ubuntu 存储库安装 pip
:
sudo apt install python3-pip
pip
安装完成后,可以用它来安装 venv
包:
sudo apt install python3-venv
现在,每当开始一个新项目时,都可以为其创建一个虚拟环境。
首先,创建一个新的项目目录,并切换到该目录中:
mkdir ~/newproject
cd ~/newproject
接下来,使用与您的 Python 版本兼容的 python
命令,在项目目录中创建一个虚拟环境。我们将调用我们的虚拟环境my_env
,但应该将其命名为有描述性的名称:
python3.6 -m venv my_env
这将安装 Python 的独立版本,并安装pip
到项目目录中。将使用您选择的名称创建一个目录,该目录将保存将安装包的文件层次结构。
要将软件包安装到隔离环境中,您必须通过键入以下内容来激活它:
source my_env/bin/activate
返回提示类似下面:
(my_env)username@hostname:~/newproject$
在新环境中,可以使用 pip
来安装 Django。无论 Python 是什么版本,都可以直接 使用 pip
安装 django。这里并不需要使用 sudo
,因为是在虚拟环境本地安装:
pip install django
可以通过以下命令来验证安装版本:
django-admin --version
Output
2.1
要离开虚拟环境,只需要使用 deactivate
命令:
deactivate
然后恢复为常规显示。当需要再次处理项目时,重新回到项目目录,并重新激活虚拟环境:
cd ~/newproject
source my_env/bin/activate
使用 Git 安装开发版本
如果需要 Django 的开发版本,可以从其 Git 存储库下载并安装 Django。我们同样在虚拟环境中执行此操作。
首先,我们先更新本地包索引:
sudo apt update
检查安装的 Python 版本:
python3 -V
Output
Python 3.6.5
接下来,从官方存储库安装 pip
:
sudo apt install python3-pip
安装 venv
软件包以创建虚拟环境:
sudo apt install python3-venv
下一步是克隆 Django 存储库。可以通过执行以下命令,将存储库克隆到 ~/django-dev
目录:
git clone git://github.com/django/django ~/django-dev
切换到这个目录:
cd ~/django-dev
使用 python
命令创建虚拟环境:
python3.6 -m venv my_env
激活:
source my_env/bin/activate
接下来,可以使用 pip
安装 django:
pip install -e ~/django-dev
可以通过执行以下命令来验证安装是否成功:
django-admin --version
Output
2.2.dev20180802155335
现在在虚拟环境中,已经安装了最新版本的 Django。
创建示例项目
安装 Django 后,可以开始构建项目。我们将介绍如何在虚拟环境创建项目,并对其进行测试。
首先,为项目创建一个目录并切换到该目录:
mkdir ~/django-test
cd ~/django-test
接下来,创建虚拟环境:
python3.6 -m venv my_env
激活环境:
source my_env/bin/activate
安装 Django:
pip install django
可以使用 django-admin
命令来构建项目。我们将项目命名为 djangoproject
,您可以将其替换为自己的名称。startproject
将在当前的工作目录中创建一个目录,其中包括:
- 一个管理脚本
manage.py
,可用于管理各种 Django 的任务。 - 包含实际项目代码的目录(与项目同名)。
但是,为了避免嵌套太多目录,我们要告诉 Django 将管理脚本和内部目录放在当前目录中(注意结尾点):
django-admin startproject djangoproject .
要迁移数据库,请执行:
python manage.py migrate
将看到如下输出:
Output
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK
最后,我们创建一个管理用户,以便可以使用 Djano 管理界面。我们使用 createsuperuser
命令执行此操作:
python manage.py createsuperuser
系统将提示输入用户名、电子邮件地址和密码。
在 Django 设置中修改 ALLOWED_HOSTS
要测试应用程序,需要修改 Django 设置。
执行以下命令打开设置文件:
nano ~/django-test/djangoproject/settings.py
在文件中,找到 ALLOWED_HOSTS
指令。这里定义了可用于连接到 Django 实例的地址或域名的白名单。不在此列表中的 Host 标头的传入请求将引发异常。Django 要求设置此项以防止某些安全漏洞。
在方括号中,列出与 Django 服务器关联的 IP 地址或域名。每个项目单独用引号列出,项目之间用逗号分隔。如果要对整个域和任何子域的请求,请在条目的开头添加一个句点:
~/django-test/djangoproject/settings.py
. . .
ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]
完成后,保存文件并退出编辑器。
测试开发服务器
有了用户后,就可以启动 Django 服务器。先要确保在防火墙中打开了相应的端口:
sudo ufw allow 8000
启动服务器:
python manage.py runserver your_server_ip:8000
访问服务器的 IP 地址加上端口号:8000
,然后在浏览器中访问:
http://your_server_ip:8000
应该会看到如下所示的内容:
要访问管理界面,请在 URL 的末尾添加 /admin/
:
http://your_server_ip:8000/admin/
然后会进入登录页面:
输入刚刚创建的用户名和密码,将可以访问网站的管理后台:
通过按 CTRL-C
在终端中退出。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/ubuntu-18-04-install-django/