您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

“顶级”java程序猿手把手教你快速启动Django项目 Django 应用程序

时间:2022-03-17 10:29:09  来源:  作者:文字代表述说

在本教程中,我们将了解 Django 项目和 Django 应用程序之间的区别,以及如何启动一个新的 Django 项目。

Django 是构建 Web 应用程序的首选 Python/ target=_blank class=infotextkey>Python Web 框架。它是一个成熟、功能齐全、灵活且开源的框架,可让您构建从简单的 CRUD 应用程序到更复杂的多应用程序项目(如照片共享应用程序)的任何内容。

要求

您不需要先前的知识来设置 Django 项目。但是 Django 是一个 Python 框架,所以要使用它,你应该有使用 Python 的坚实基础。

在开始之前,请确保您已安装了 Python 3.6 或更高版本的终端或命令提示符。

大多数 macOS 和 linux 系统默认安装 Python 3,但如果您使用的是 windows,则需要下载并安装Python。您可以在Python 官方网站上遵循本指南。

您可以通过打开操作系统的应用程序查找器并搜索Terminal来打开终端,或者在 Windows 上搜索cmd

“顶级”java程序猿手把手教你快速启动Django项目 Django 应用程序

 

设置终端后,就该确认您的 Python 版本了。为此,请键入以下命令:

python --version

Python 3.9.7 # My result

如果您没有得到 Python 3.x 形式的结果,请不要惊慌。有两种选择:

  • 如果python --version返回 Python 2.x 版本,则需要python3与本教程一起使用。这通常发生在某些 macOS 系统以及某些Linux 发行版(如 Ubuntu)上。尝试运行以下命令:
python3 --version

Python 3.9.7 # AgAIn, my result
  • 如果出现Unknown command错误,尝试运行python3,但仍然出现错误,则需要从官方网站下载并安装 Python。

现在您知道要在终端中运行什么 Python 命令,让我们深入了解 Django 项目。

什么是 Django 项目?

Django 项目是使 Web 应用程序工作所需的 Python 包。它包含构建站点后端(服务器端开发,用户看不到的内容)所需的一切。Django 项目的正常功能决定了您如何与数据库交互、身份验证、如何检索数据等等。

您也可以将其视为设置的集合,以及名为应用程序的小型 Python 模块。我们稍后会讨论它们,但作为一个预先概念,应用程序是另一组 Python 文件,用于解决应用程序的特定任务。

通过本文,您将了解 Django 项目的复杂结构。但从一开始我就想让你知道,一个 Django 项目可以缩小到一个文件,类似于Flask项目。

Minimal Django项目对此进行了快速演示。这是一个包含 23 行代码的文件,它允许我们带来 Django “Hello, World!” 生活项目:

import sys

from django.conf import settings
from django.urls import path
from django.core.management import execute_from_command_line
from django.http import HttpResponse

settings.configure(
    DEBUG=True,
    ROOT_URLCONF=sys.modules[__name__],
)


def index(request):
    return HttpResponse('<h1>A minimal Django response!</h1>')


urlpatterns = [
    path(r'', index),
]

if __name__ == '__main__':
    execute_from_command_line(sys.argv)

现在,一个 Django 项目可以走得更远。一个很好的例子是 Instagram,它有数千个 Django 端点,并且仍然使用这个框架来实现关键功能。

如何建立一个 Django 项目

如果以下某些命令看起来很复杂,请不要太担心。在您创建了几个项目之后,您就会对它们了如指掌。

首先,你需要知道 Django 是一个外部包。换句话说,它没有内置在 Python 中,因此您需要使用 PIP 安装它。

PIP 是 Python 的包管理器,该工具允许您从Python 包索引(PyPI) 安装 Python 包。

现在,在安装实际的 Python 包之前,您需要创建一个虚拟环境。为您构建的每个 Django 项目创建一个虚拟环境是一个很好的做法,这样您就可以跟踪依赖关系。

也许您在 Django 2.6 项目中的代码可能不适用于 Django 3.0。虚拟环境可让您对所拥有的每个项目都有特定的要求。

您可以使用以下命令创建一个名为(或任何您想要的名称)的虚拟环境:.venv

python -m venv .venv

现在,如果您列出当前目录中的文件,您将看到一个名为 的新文件夹.venv,其中同时包含独立的 Python 二进制文件:

$ ls -lah .venv/
Permissions Size User   Date Modified Name
drwxr-xr-x     - daniel 10 nov 23:13  .
drwxr-xr-x     - daniel 10 nov 23:13  ..
drwxr-xr-x     - daniel 10 nov 23:13  bin
drwxr-xr-x     - daniel 10 nov 23:13  include
drwxr-xr-x     - daniel 10 nov 23:13  lib
lrwxrwxrwx     3 daniel 10 nov 23:13  lib64 -> lib
.rw-r--r--    69 daniel 10 nov 23:13  pyvenv.cfg

要激活您的虚拟环境,您需要使用以下命令激活它:

source .venv/bin/activate

这仅适用于 bash shell(适用于 macOS 和 Linux)。如果您使用不同的 shell,您可以查看以下激活venv表:

平台

贝壳

激活虚拟环境的命令

POSIX

bash/zsh

$ source .venv>/bin/activate

 

$ source .venv>/bin/activate.fish

 

csh/tcsh

$ source .venv>/bin/activate.csh

 

PowerShell 核心

$ .venv/bin/Activate.ps1

视窗

命令文件

C:> .venvScriptsactivate.bat

 

电源外壳

PS C:> .venvScriptsActivate.ps1

检查您的 shell 是否已激活的一种方法是在提示符中查找更改。就我而言,我所看到的如下图所示。

“顶级”java程序猿手把手教你快速启动Django项目 Django 应用程序

 

现在,安装 Django 包。您可以安装最新版本或特定版本的 Django:

pip install django # Latest version
pip install django==2.2 # Specific version

启动项目

安装 Django 后,要启动一个新项目,请调用django-admin命令行实用程序并运行:

django-admin startproject <project_name>

值得一提的是,有些名称是为 Django 保留的——django或者django-admin. 如果您遇到错误,请不要担心。只需尝试使用不同的项目名称:

django-admin startproject django
# CommandError: 'django' conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name.
django-admin startproject django-admin
# CommandError: 'django-admin' is not a valid project name. Please make sure the name is a valid identifier.

一种常见的做法是将您的项目命名为config,这有一些好处。首先,它是一个可以在所有项目中保持一致的名称,其次,“项目”文件夹通常只存储与配置相关的文件。您可以在官方Django 论坛上阅读更多内容:

django-admin startproject config

Django项目结构

启动 Django 项目后,您将看到一个新文件夹,其中包含您选择的项目名称,其结构类似于:

.
├── config
│   ├── config
│   │   ├── asgi.py
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   └── manage.py
└── .venv

让我们深入分析每个部分:

  • config/是您项目的外部文件夹。这对 Django 无关紧要,因此您实际上可以将其重命名为您想要的任何名称。
  • config/config/是实际的 Django 项目文件夹。它包含您项目的设置文件。
  • manage.py是一个 Python 脚本,具有相同的功能,django_admin但使用您项目的设置。
  • __init__.py制作config/config一个 Python 包。
  • settings.py是您项目的核心文件。您可以添加、修改或删除变量来更改项目的行为。
  • urls.py是定义项目 URL 的文件。
  • asgi.py并wsgi.py让您将项目部署到服务器。

我知道 Django 的项目结构一开始可能有点复杂,但随着时间的推移,它开始变得有意义。每个文件都有一个目的,开发过程变得非常愉快。

一个常见的快捷方式是省略外部文件夹的创建。这很有用,因为在部署到 Heroku 之类的东西时,您不必修改项目结构:

django-admin startproject <project_name> .

例如,对于您启动的每个 Django 项目,您可以运行以下命令:

django-admin startproject config .

自己尝试每个命令,然后决定哪一个最适合您。

为了完成本节,我们将启动 Django 开发服务器,并检查项目设置是否成功。

转到项目的根文件夹(所在manage.py位置)并使用以下命令启动服务器:

python manage.py runserver

现在,进入你的浏览器,输入localhost:8000/你应该会看到 Django 的默认页面。

“顶级”java程序猿手把手教你快速启动Django项目 Django 应用程序

 

如何设置 Django 应用程序

正如我之前告诉过的,Django 项目与 Django 应用程序不同。

来自官方文档:“应用程序是做某事的 Web 应用程序”。那是一种特定的功能,例如用户的应用程序、评论应用程序、聊天应用程序。

您的应用程序的功能定位越多越好。

Django 应用程序是自包含的,这意味着它可以在项目之间重用。这就是为什么您可以安装一个外部应用程序,例如Django-allauth并在您的项目中使用它,只需将其添加到INSTALLED_AppS变量中即可。

您将花费大部分时间处理应用程序,因为它们会一一构建您项目的所有功能。

从现在开始,您将使用该manage.py实用程序,因此要创建应用程序,请转到项目的根文件夹并运行以下命令:

python manage.py startapp <app_name>

尝试尽可能具体地使用您的应用名称。如果您想创建一个用于将支付与 PayPal 或 Stripe 集成的应用程序,请将其命名为payments:

python manage.py startapp payments

让我们深入了解 Django 应用程序的结构:

.
├── config
│   ├ ...
├── manage.py
└── payments
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py
  • payments/是您的应用程序的文件夹。
  • admin.py用于将模型注册到 Django 的管理界面中。
  • apps.py定义应用程序配置。
  • models.py用于存储模型,这些模型是我们为存储和控制数据而创建的对象。
  • migrations/是包含应用程序迁移脚本的文件夹。您运行迁移以将我们模型的更改应用到数据库中。
  • tests.py用于测试应用程序。
  • views.py是我们定义应用程序视图的文件。视图是 Python 可调用的,它接收 HTTP 请求并返回 HTTP 响应。

在您的应用程序中,您可以创建其他文件和文件夹,甚至构建模板,这是 Django 在网页上动态显示数据的方式。

命令备忘单

我们在本教程中使用了很多命令,因此这里总结了每个命令的用途。

命令

描述

python -m venv (name_of_venv)

创建虚拟环境

source (venv)/bin/activate

激活虚拟环境

django-admin startproject (project_name)

启动一个 Django 项目

django-admin startproject (project_name) .

在同一目录下建立一个项目

python manage.py runserver

运行 Django 服务器

python manage.py startapp (app_name)

创建一个 Django 应用程序

结论

Django 是一个完整的网络框架,可让您构建任何类型的应用程序。设置 Django 项目既快速又简单,您可以立即开始处理您的项目。

通过本教程,您学会了:

  • 创建虚拟环境
  • 安装特定的 Django 版本
  • 启动一个 Django 项目
  • 运行 Django 服务器
  • 创建一个 Django 应用程序
  • 区分 Django 应用程序和 Django 项目


Tags:Django   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Django 5.0正式发布,最流行Python Web框架
Django 5.0 已正式发布。根据 JetBrains 公布的 2022 Python 开发者调查结果,Python Web 框架的三巨头依旧是 Flask、Django 和 FastAPI。Django 和 Flask 的使用率排名并列...【详细内容】
2023-12-06  Search: Django  点击:(159)  评论:(0)  加入收藏
Python Web框架的三强之争:Flask、Django和FastAPI
出品 | OSC开源社区(ID:oschina2013)JetBrains 公布 2022 Python 开发者调查结果。完整报告地址:https://lp.jetbrains.com/zh-cn/python-developers-survey-2022/这是由 Pytho...【详细内容】
2023-10-11  Search: Django  点击:(336)  评论:(0)  加入收藏
提高Django 数据库查询速度的九种方法,你会几种?
在Web应用程序中,数据库查询是一个关键的环节。优化数据库查询可以显著提高应用程序的性能和响应速度。Django作为一个高度可扩展的Web框架,提供了多种方式来优化数据库查询。...【详细内容】
2023-09-17  Search: Django  点击:(175)  评论:(0)  加入收藏
Django和Flask:Python Web开发的不同选择
在Python Web开发领域,Django和Flask都是备受欢迎的框架,但它们在设计理念和用途上有着不同的侧重点。本文将对比Django和Flask,帮助您了解它们的特点,以及在何种场景下选择哪个...【详细内容】
2023-08-27  Search: Django  点击:(225)  评论:(0)  加入收藏
Django 入门:构建Python Web应用的全面指南
引言Django 是一个强大的Python Web框架,它以快速开发和高度可扩展性而闻名。本文将带您深入了解Django的基本概念和核心功能,帮助您从零开始构建一个简单的Web应用。什么是Dj...【详细内容】
2023-08-20  Search: Django  点击:(141)  评论:(0)  加入收藏
Django 新手必读:管理器的秘密操作,你都会了吗?
概念: Django管理器是Django框架中的一个组件,它提供了一种将Python代码与数据库查询和操作进行交互的方式。每个Django模型都有一个默认的管理器,这个管理器提供了一些基本的...【详细内容】
2023-05-18  Search: Django  点击:(365)  评论:(0)  加入收藏
Django SQL注入漏洞 CVE-2022-28347
漏洞简介在Django 2.2 的 2.2.28 之前版本、3.2 的 3.2.13 之前版本和 4.0 的 4.0.4 之前版本中的 QuerySet.deexplain 中发现了SQL注入问题。这是通过传递一个精心编制的字...【详细内容】
2023-05-18  Search: Django  点击:(254)  评论:(0)  加入收藏
Django QuerySet 的这些实用技巧,你一定要会!
在Django中,QuerySet是一种用于执行数据库查询的对象。它提供了一系列的方法和查询表达式,可以方便地执行复杂的数据库查询操作。本文将深入讲解Django中的QuerySet,包括如何执...【详细内容】
2023-05-17  Search: Django  点击:(354)  评论:(0)  加入收藏
快速入门Python Django模型实例!
在Django中,模型实例是指通过模型类创建出来的一个具体的数据库记录。模型实例可以使用一系列的实例方法和属性,进行数据的增删改查,以及访问关联的对象。本文将深入讲解Django...【详细内容】
2023-05-17  Search: Django  点击:(284)  评论:(0)  加入收藏
你真的了解Django Model吗?十分钟入门指南!
模型介绍在Django中,模型是用于定义数据库中数据结构的Python类。每个模型都对应着数据库中的一个表,模型中的属性对应着表中的列。模型定义通常位于Django应用程序的models.p...【详细内容】
2023-05-16  Search: Django  点击:(45)  评论:(0)  加入收藏
▌简易百科推荐
Java 8 内存管理原理解析及内存故障排查实践
本文介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,以及各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时...【详细内容】
2024-03-20  vivo互联网技术    Tags:Java 8   点击:(17)  评论:(0)  加入收藏
如何编写高性能的Java代码
作者 | 波哥审校 | 重楼在当今软件开发领域,编写高性能的Java代码是至关重要的。Java作为一种流行的编程语言,拥有强大的生态系统和丰富的工具链,但是要写出性能优异的Java代码...【详细内容】
2024-03-20    51CTO  Tags:Java代码   点击:(25)  评论:(0)  加入收藏
在Java应用程序中释放峰值性能:配置文件引导优化(PGO)概述
译者 | 李睿审校 | 重楼在Java开发领域,优化应用程序的性能是开发人员的持续追求。配置文件引导优化(Profile-Guided Optimization,PGO)是一种功能强大的技术,能够显著地提高Ja...【详细内容】
2024-03-18    51CTO  Tags:Java   点击:(29)  评论:(0)  加入收藏
Java生产环境下性能监控与调优详解
堆是 JVM 内存中最大的一块内存空间,该内存被所有线程共享,几乎所有对象和数组都被分配到了堆内存中。堆被划分为新生代和老年代,新生代又被进一步划分为 Eden 和 Survivor 区,...【详细内容】
2024-02-04  大雷家吃饭    Tags:Java   点击:(60)  评论:(0)  加入收藏
在项目中如何避免和解决Java内存泄漏问题
在Java中,内存泄漏通常指的是程序中存在一些不再使用的对象或数据结构仍然保持对内存的引用,从而导致这些对象无法被垃圾回收器回收,最终导致内存占用不断增加,进而影响程序的性...【详细内容】
2024-02-01  编程技术汇  今日头条  Tags:Java   点击:(76)  评论:(0)  加入收藏
Java中的缓存技术及其使用场景
Java中的缓存技术是一种优化手段,用于提高应用程序的性能和响应速度。缓存技术通过将计算结果或者经常访问的数据存储在快速访问的存储介质中,以便下次需要时可以更快地获取。...【详细内容】
2024-01-30  编程技术汇    Tags:Java   点击:(75)  评论:(0)  加入收藏
JDK17 与 JDK11 特性差异浅谈
从 JDK11 到 JDK17 ,Java 的发展经历了一系列重要的里程碑。其中最重要的是 JDK17 的发布,这是一个长期支持(LTS)版本,它将获得长期的更新和支持,有助于保持程序的稳定性和可靠性...【详细内容】
2024-01-26  政采云技术  51CTO  Tags:JDK17   点击:(95)  评论:(0)  加入收藏
Java并发编程高阶技术
随着计算机硬件的发展,多核处理器的普及和内存容量的增加,利用多线程实现异步并发成为提升程序性能的重要途径。在Java中,多线程的使用能够更好地发挥硬件资源,提高程序的响应...【详细内容】
2024-01-19  大雷家吃饭    Tags:Java   点击:(111)  评论:(0)  加入收藏
这篇文章彻底让你了解Java与RPA
前段时间更新系统的时候,发现多了一个名为Power Automate的应用,打开了解后发现是一个自动化应用,根据其描述,可以自动执行所有日常任务,说的还是比较夸张,简单用了下,对于office、...【详细内容】
2024-01-17  Java技术指北  微信公众号  Tags:Java   点击:(102)  评论:(0)  加入收藏
Java 在 2023 年仍然流行的 25 个原因
译者 | 刘汪洋审校 | 重楼学习 Java 的过程中,我意识到在 90 年代末 OOP 正值鼎盛时期,Java 作为能够真正实现这些概念的语言显得尤为突出(尽管我此前学过 C++,但相比 Java 影响...【详细内容】
2024-01-10  刘汪洋  51CTO  Tags:Java   点击:(81)  评论:(0)  加入收藏
站内最新
站内热门
站内头条