在 Ubuntu 22.04 上安装 Django Web 框架的方法

简介

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

在本指南中,您将在 Ubuntu 22.04 服务器上启动 Django。安装完成后,您将启动一个新项目,作为您网站的基础。

不同的安装方法

根据您的需求和如何配置开发环境,安装 Django 有不同的方法。这些方法各有优势,其中一种方法可能比其他方法更适合您的特定情况。

一些不同的安装方法包括:

  • 从软件包全局安装:官方的 Ubuntu 软件仓库中包含了 Django 软件包,可以使用传统的 apt 软件包管理器进行安装。这种方法简单,但不如其他方法灵活。此外,仓库中包含的版本可能落后于项目官方提供的官方版本。
  • 在虚拟环境中使用 pip 安装:您可以使用 venvvirtualenv 等工具在项目目录中创建一个独立的环境。虚拟环境允许您在项目目录中安装 Django,而不会影响更大的系统,同时还可以进行其他项目定制和包的安装。这通常是使用 Django 的最实用和推荐的方法。
  • 使用 git 安装开发版本:如果您希望安装最新的开发版本而不是稳定版本,可以从 Git 仓库获取代码。这是获取最新功能/修复的必要步骤,并且可以在您的虚拟环境中完成。然而,开发版本不具有与更稳定版本相同的稳定性保证。

先决条件

在开始之前,您应该在 Ubuntu 22.04 服务器上拥有一个具有 sudo 权限的非根用户。要设置这一点,请按照我们的 Ubuntu 22.04 初始服务器设置指南进行操作。

从软件包全局安装

如果您希望使用 Ubuntu 软件仓库安装 Django,则该过程非常简单。

首先,使用 apt 更新本地软件包索引:

sudo apt update

接下来,检查您安装了哪个版本的 Python。22.04 默认安装了 Python 3.10,您可以通过输入以下命令进行验证:

python3 -V

您应该会看到如下输出:

Python 3.10.4

接下来,安装 Django:

sudo apt install python3-django

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

django-admin --version
3.2.12

这意味着软件已成功安装。您可能还注意到 Django 的版本不是最新的稳定版本。要了解如何使用该软件,请跳转到了解如何创建示例项目。

在虚拟环境中使用 pip 安装

在系统中安装 Django 最灵活的方式是在虚拟环境中进行。我们将向您展示如何在使用 venv 模块创建的虚拟环境中安装 Django。venv 是 Python 3 标准库的一部分,允许您创建虚拟 Python 环境并安装 Python 包,而不会影响系统的其他部分。因此,您可以在项目基础上选择 Python 包,而不受其他项目需求的影响。

让我们首先刷新本地软件包索引:

sudo apt update

检查您安装了哪个版本的 Python:

python3 -V
Python 3.10.4

接下来,让我们从 Ubuntu 软件仓库安装 pipvenv

sudo apt install python3-pip python3-venv

现在,每当您启动一个新项目时,您都可以为其创建一个虚拟环境。首先创建并进入一个新的项目目录:

mkdir ~/newproject
cd ~/newproject

接下来,在项目目录中使用与您的 Python 版本兼容的 python 命令创建一个虚拟环境。我们将称我们的虚拟环境为 my_env,但您应该为其选择一个描述性的名称:

python3 -m venv my_env

这将在您的项目目录中创建一个独立的 Python 和 pip 版本,安装在隔离的目录结构中。将创建一个以您选择的名称命名的目录,其中将安装您的包的文件层次结构。

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

source my_env/bin/activate

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

在新环境中,您可以使用 pip 安装 Django。无论您的 Python 版本如何,在虚拟环境中,pip 应该被称为 pip。还要注意,您不需要使用 sudo,因为您是在本地安装:

pip install django

您可以通过输入以下命令来验证安装:

django-admin --version
4.0.4

请注意,您的版本可能与此处显示的版本不同。

要离开虚拟环境,您需要在系统的任何位置发出 deactivate 命令:

deactivate

您的提示符应该会恢复到常规显示。当您希望再次处理项目时,请通过返回到项目目录并激活来重新激活您的虚拟环境:

cd ~/newproject
source my_env/bin/activate

使用 Git 安装开发版本

如果你需要安装 Django 的开发版本,你可以从它的 Git 仓库中下载并安装 Django。让我们在虚拟环境中进行这个操作。

首先,让我们更新本地软件包索引:

sudo apt update

检查你已安装的 Python 版本:

python3 -V
Python 3.10.4

接下来,从官方仓库安装 pipvenv

sudo apt install python3-pip python3-venv

下一步是克隆 Django 仓库。在发布之间,该仓库将具有更新的功能和可能牺牲稳定性的 bug 修复。你可以通过以下命令将仓库克隆到名为 ~/django-dev 的目录中:

git clone git://github.com/django/django ~/django-dev

切换到该目录:

cd ~/django-dev

使用与你已安装的 Python 版本兼容的 python 命令创建一个虚拟环境:

python3 -m venv my_env

激活它:

source my_env/bin/activate

接下来,你可以使用 pip 安装仓库。-e 选项将以 “可编辑” 模式安装,这在从版本控制安装时是必需的:

pip install -e ~/django-dev

你可以通过输入以下命令来验证安装是否成功:

django-admin --version
4.0.4.2

再次说明,你看到的版本可能与此处显示的不匹配。

现在你在虚拟环境中拥有了最新版本的 Django。

创建一个示例项目

安装了 Django 后,你可以开始构建你的项目。我们将介绍如何使用虚拟环境创建一个项目并在开发服务器上测试它。

首先,创建一个用于项目的目录并切换到该目录:

mkdir ~/django-test
cd ~/django-test

接下来,创建你的虚拟环境:

python3 -m venv my_env

激活该环境:

source my_env/bin/activate

安装 Django:

pip install django

要构建你的项目,你可以使用 django-adminstartproject 命令。我们将称我们的项目为 djangoproject,但你可以用其他名称替换它。startproject 将在当前工作目录中创建一个包含以下内容的目录:

  • 一个管理脚本 manage.py,你可以用它来管理各种特定于 Django 的任务。
  • 一个目录(与项目同名),其中包含实际的项目代码。

然而,为了避免有太多嵌套的目录,让我们告诉 Django 将管理脚本和内部目录放在当前目录中(注意末尾的点):

django-admin startproject djangoproject .

要迁移数据库(此示例默认使用 SQLite),让我们使用 manage.pymigrate 命令。迁移将应用你对 Django 模型所做的任何更改到你的数据库模式中。

要迁移数据库,请输入:

python manage.py migrate

你将看到如下输出:

Operations to perform:Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:Applying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying admin.0003_logentry_add_action_flag_choices... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying auth.0008_alter_user_username_max_length... OKApplying auth.0009_alter_user_last_name_max_length... OKApplying auth.0010_alter_group_name_max_length... OKApplying auth.0011_update_proxy_permissions... OKApplying auth.0012_alter_user_first_name_max_length... OKApplying sessions.0001_initial... OK

最后,让我们创建一个管理员用户,这样你就可以使用 Django 管理界面。我们可以使用 createsuperuser 命令来完成这个操作:

python manage.py createsuperuser

系统会提示你输入用户名、电子邮件地址和用户的密码。

修改 Django 设置中的 ALLOWED_HOSTS

为了成功测试你的应用程序,你需要修改 Django 设置中的一个指令。

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

nano ~/django-test/djangoproject/settings.py

在文件中找到 ALLOWED_HOSTS 指令。这个指令定义了可以用于连接到 Django 实例的地址或域名列表。如果一个带有 Host 头的请求不在这个列表中,将会引发异常。Django 要求你设置这个值以防止一定类别的安全漏洞。

在方括号中,列出与你的 Django 服务器相关的 IP 地址或域名。每个条目应该用引号括起来,不同的条目之间用逗号分隔。如果你想要针对整个域和任何子域的请求,需要在条目的开头加上一个句点:

ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

完成后,保存文件并退出编辑器。

测试开发服务器

一旦你有了用户,你可以启动 Django 开发服务器,看看一个全新的 Django 项目是什么样子的。你应该只在开发目的下使用这个服务器。当你准备部署时,一定要仔细遵循 Django 的部署指南。

在尝试开发服务器之前,确保在防火墙中打开了适当的端口。如果你按照初始服务器设置指南并使用 UFW,你可以通过输入以下命令来打开 8000 端口:

sudo ufw allow 8000

启动开发服务器:

python manage.py runserver your_server_ip:8000

在你的网络浏览器中访问服务器的 IP 地址后面加上 :8000

http://your_server_ip:8000

你应该会看到类似下面的内容:

!Django public page

要访问管理界面,将 /admin/ 添加到你的 URL 末尾:

http://your_server_ip:8000/admin/

这将带你到一个登录界面:

!Django admin login

如果你输入刚刚创建的管理员用户名和密码,你将可以访问站点的主要管理部分:

!Django admin page

要了解更多关于使用 Django 管理界面的信息,请参阅 “如何启用和连接 Django 管理界面”。

当你完成查看默认站点后,可以在终端中输入 CTRL-C 来停止开发服务器。

你创建的 Django 项目为设计一个更完整的站点提供了结构基础。查看 Django 文档,了解如何构建你的应用程序和自定义你的站点的更多信息。

结论

现在你应该在你的 Ubuntu 22.04 服务器上安装了 Django,提供了创建强大的 Web 应用程序所需的主要工具。你还应该知道如何启动一个新项目并启动开发服务器。利用像 Django 这样完整的 Web 框架可以帮助加快开发速度,让你只专注于应用程序的独特方面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/676048.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【动态规划】【C++算法】2188. 完成比赛的最少时间

作者推荐 【动态规划】【前缀和】【C算法】LCP 57. 打地鼠 本文涉及知识点 动态规划汇总 LeetCode2188. 完成比赛的最少时间 给你一个下标从 0 开始的二维整数数组 tires ,其中 tires[i] [fi, ri] 表示第 i 种轮胎如果连续使用,第 x 圈需要耗时 fi…

Xshell

更改背景颜色 多个会话同时执行命令 查看 -> 撰写 -> 撰写窗格

【YOLO系列详解——超详细】

YOLO系列详解 1. 介绍2. YOLO原理3. YOLO版本4. 在开发实践中使用YOLO 1. 介绍 YOLO(You Only Look Once)是一种使用深度学习实现的端到端的目标检测系统,YOLO系列模型以其检测速度快、实时性高而闻名,并且能在图像中同时预测多个…

【Spring】GoF 之工厂模式

一、GoF 23 设计模式简介 设计模式:一种可以被重复利用的解决方案 GoF(Gang of Four),中文名——四人组 《Design Patterns: Elements of Reusable Object-Oriented Software》(即《设计模式》一书)&…

MySQL 的Sql脚本是如何被编译的

MySQL是一个关系型数据库管理系统(RDBMS),它使用SQL(Structured Query Language,结构化查询语言)作为其主要的查询语言。在MySQL中运行一个SQL脚本时,MySQL实际上并不会像传统的编程语言那样将S…

企业级人脸属性检测解决方案

在当今数字化、智能化的时代背景下,人脸识别技术已经成为众多行业不可或缺的一部分。美摄科技,作为人脸识别技术的领先者,为企业提供了一整套先进且高效的人脸属性检测解决方案。 美摄科技的人脸属性检测解决方案,基于深度学习算…

使用深度学习对网络摄像头图像进行分类

目录 加载相机和预训练网络 对相机快照进行分类 连续对相机图像进行分类 显示排名靠前的预测值 连续分类图像并显示排名靠前的预测值 另请参阅 此示例说明如何使用预训练的深度卷积神经网络 GoogLeNet 实时对来自网络摄像头的图像进行分类。 使用 MATLAB、普通的…

Vue-Vue3 集成编辑器功能

1、安装依赖 编辑器插件需要安装 wangeditor/editor 和 wangeditor/editor-for-vue 两个插件 npm install wangeditor/editor --savevue3运行如下命令安装 npm install wangeditor/editor-for-vuenext --savevue2运行如下命令安装 npm install wangeditor/editor-for-vue -…

Java强训day15(选择题编程题)

选择题 自连接使用一张表编程题 题目1 import java.util.Scanner;public class Main { public static int res(int n) {StringBuffer s new StringBuffer();while(n!0) {s.append(n%2);n/2;}int sum 0;String ss s.reverse().toString();for(int i0;i<ss.length()…

C语言的循环结构

目录 前言 1.三种循环语句 1.while循环 2.for循环 2.1缺少表达式的情况 3.do while循环 2.break语句和continue语句 2.1在while循环中 2.2在for循环中 2.3在do while 循环中 3.循环的嵌套 4.go to语句 前言 C语⾔是结构化的程序设计语⾔&#xff0c;这⾥的结构指的是…

LeetCode 207:课程表(图论,利用拓扑排序判断是否有环)

题目 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课程 ai 则 必须 先学习课程 bi 。 …

nginx + DNS域名解析

配置链接: Nginx 安装配置 | 菜鸟教程 安装完nginx后&#xff0c;访问&#xff1a; cd /usr/local/nginx/sbin/ 然后使用./nginx可使用nginx。 访问:http://服务器的ip地址后出现 因为访问IP地址很繁琐&#xff0c;需要记忆ip的数字地址&#xff0c;因此需要给它一个通俗的…

Rust入门2——随机数

文章目录 一、生成随机数二、比较两个数相等 简单列出两个Rust的小例子 一、生成随机数 在Cargo.toml的dependencies中引入rand&#xff0c;指定rand的版本 [dependencies] rand "^0.3.14"之后在主函数中调用rand函数&#xff0c;生成随机数 use rand::Rng; f…

MyBatis 实现动态 SQL

MyBatis 中的动态 SQL 就是SQL语句可以根据不同的情况情况来拼接不同的sql。 本文会介绍 xml 和 注解 两种方式的动态SQL实现方式。 XML的实现方式 先创建一个数据表&#xff0c;SQL代码如下&#xff1a; DROP TABLE IF EXISTS userinfo; CREATE TABLE userinfo (id int(1…

Mac上几款好用的MacBook视频播放器

使用Mac电脑时&#xff0c;视频播放器可以说是我们使用频率最高的软件之一了&#xff0c;不管是工作时看视频资料还是在家里看下载好的电影&#xff0c;都需要用到视频播放器&#xff0c;本文中我们就来推荐几款好用的Macbook视频播放器&#xff0c;总有一款适合你&#xff01;…

centos ssh 默认端口 修改

centos7更改SSH端口-腾讯云开发者社区-腾讯云 (tencent.com) linux centos修改ssh端口号_semanage port -a -t ssh_port_t -p tcp-CSDN博客

数据结构——B/顺序表和链表

&#x1f308;个人主页&#xff1a;慢了半拍 &#x1f525; 创作专栏&#xff1a;《史上最强算法分析》 | 《无味生》 |《史上最强C语言讲解》 | 《史上最强C练习解析》 &#x1f3c6;我的格言&#xff1a;一切只是时间问题。 ​ 1.线性表 线性表&#xff08;linear list&…

QXlsx Qt操作excel(1)

QXlsx 是一个用于处理Excel文件的开源C库。它允许你在你的C应用程序中读取和写入Microsoft Excel文件&#xff08;.xlsx格式&#xff09;。该库支持多种操作&#xff0c;包括创建新的工作簿、读取和写入单元格数据、格式化单元格、以及其他与Excel文件相关的功能。 关于QXlsx的…

SQL拆分字段内容(含分隔符)

问题描述&#xff1a; 在做数据迁移的过程中&#xff0c;我们希望对表中的某个字段根据分隔符进行拆分&#xff0c;得到多条数据&#xff0c;原代码有点意思&#xff0c;因此记录一下。 我们假设某条数据如下&#xff1a; IDSTRS1公司名称不能小于四个字&#xff0c;行业类别…

【OrangePi Zero2的系统移植】OrangePi Zero2 SDK说明

一、使用环境要求 二、获取Linux SDK 三、首次编译完整SDK 基于OrangePi Zero2的系统移植 之前我们讲解香橙派的使用时&#xff0c; 都是直接在香橙派上进行代码编译&#xff0c; 但在实际的项目开发过程中&#xff0c;更多 的还是使用交叉编译环境进行代码的编译。再编译完成…