当前位置: 首页 > article >正文

使用VSCode开发Django指南

使用VSCode开发Django指南

一、概述

Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。
本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此过程中,开发者将体验VS Code 的许多功能,包括使用终端、编辑器、调试器、代码片段等。
要使用以下内容,需要在机器上安装完成Python3、pip,可选安装anaconda。
本文是简要指南,若需要阅读详细内容,请访问:https://download.csdn.net/download/mx9818/90960616

二、创建项目开发环境

在本节中,我们将创建一个安装Django 的虚拟环境。使用虚拟环境可以避免将 Django 安装到全局 Python 环境中,并能够精确控制应用程序中使用的库。
1、先在文件系统上创建一个文件夹,例如 hello_django。
2、创建虚拟环境。

# Linux
sudo apt-get install python3-venv    # If needed
python3 -m venv .venv
source .venv/bin/activate# macOS
python3 -m venv .venv
source .venv/bin/activate# Windows
py -3 -m venv .venv
.venv\scripts\activate

3、在 VS Code 中打开此文件夹,可以在此文件夹的命令行终端中运行”code .”,或者运行 VS Code 并使用 File > Open Folder 命令。
4、在 VS Code 中,打开命令面板(View > Command Palette或 (Ctrl+Shift+P))。然后选择 Python: Select Interpreter 命令。
在这里插入图片描述

5、该命令提供 VS Code 可以自动找到的可用解释器列表。从列表中,选择项目文件夹中以./.venv或..venv开头的虚拟环境:
在这里插入图片描述

(你的计算机中的列表会有所不同)
6、运行Terminal: Create New Terminal打开一个终端,自动激活环境。。当命令提示符在开头显示 (.venv) 时,表示虚拟环境已激活。
7、更新虚拟环境的pip,运行:python -m pip install --upgrade pip
8、运行python -m pip install django,在虚拟环境中安装Django.

三、创建并运行Django小应用

在 Django 术语中,“Django 项目”由多个站点级配置文件以及部署到 Web 主机以创建完整 Web 应用程序的一个或多个“应用程序”组成。一个Django项目可以包含多个应用程序,每个应用程序通常在项目中具有独立的功能,并且同一个应用程序可以位于多个Django项目中。就其本身而言,应用程序只是一个遵循 Django 期望的某些约定的 Python 包。
要创建一个最小的 Django 应用程序,需要首先创建 Django 项目作为应用程序的容器,然后创建应用程序本身。可以使用 Django 管理实用程序django-admin,该实用程序是在安装 Django 包时安装的。

2.1.创建Django项目

1 在激活虚拟环境的 VS Code 终端中,运行以下命令:

django-admin startproject web_project .

startproject命令假设(通过在末尾使用.)当前文件夹是项目文件夹,并在其中创建以下内容:.
(1)manage.py:项目的 Django 命令行管理实用程序。你可以使用python manage.py <command> [options] 运行项目的管理命令。
(2)名为web_project 的子文件夹,其中包含以下文件:

__init__.py:一个空文件,告诉 Python 该文件夹是一个 Python 包。
asgi.py:与ASGI 兼容的Web 服务器为项目提供服务的入口点。按原样保留此文件即可,它为生产 Web 服务器提供了连接。
settings.py:包含 Django 项目的设置,可以在开发 Web 应用程序的过程中修改这些设置。
urls.py:包含 Django 项目的目录,可以在开发过程中对其进行修改。
wsgi.py:与 WSGI 兼容的 Web 服务器为你的项目提供服务的入口点。按原样保留此文件即可,它为生产 Web 服务器提供了连接。

2 通过运行以下命令创建一个空的开发数据库:

python manage.py migrate

当你第一次运行服务器时,它会在文件中创建一个默认的 SQLite 数据库db.sqlite3,该数据库旨在用于开发目的,但也可用于小型 Web 应用程序的生产中。
3 要验证 Django 项目,请确保虚拟环境已激活,然后使用命令python manage.py runserver启动 Django 的开发服务器。服务器在默认端口 8000 上运行,你会在终端窗口中看到类似以下的输出:

Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).
June 13, 2023 - 18:38:07
Django version 4.2.2, using settings 'web_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

Django 的内置 Web 服务器仅用于本地开发目的。但是,当你部署到 Web 主机时,Django 将改用主机的 Web 服务器。Django 项目中的wsgi.py和asgi.py模块负责连接到生产服务器。

如果要使用默认 8000 以外的端口,请在命令行上指定端口号,例如python manage.py runserver 5000

4 按住 Ctrl 键并单击终端输出窗口中的 URL http://127.0.0.1:8000/可在默认浏览器打开该地址。如果 Django 安装正确并且项目有效,你将看到如下所示的默认页面。VS Code 终端输出窗口还显示服务器日志。
在这里插入图片描述

5 完成后,关闭浏览器窗口并使用Ctrl+C在 VS Code 中停止服务器,如终端输出窗口中所示。

2.2.创建Django应用

1 在激活虚拟环境的 VS Code 终端中,在你的项目文件夹(包含manage.py文件),运行管理应用程序的 startapp命令:python manage.py startapp hello
该命令创建一个名为hello 的文件夹,其中包含许多代码文件和一个子文件夹。其中,你经常使用views.py(包含在 Web 应用程序中定义页面的函数)和models.py(包含定义数据对象的类)。子文件夹migrations被 Django 的管理实用程序使用来管理数据库版本,如本教程后面所述。还有文件apps.py(应用程序配置)、admin.py(用于创建管理界面)和tests.py(用于创建测试)。

2 修改hello/views.py以匹配以下代码,这将为应用程序的主页创建单个视图:

from django.http import HttpResponsedef home(request):return HttpResponse("Hello, Django!")

3 创建一个文件hello/urls.py,包含以下内容。你可以在该urls.py文件中指定将不同 URL 路由到相应视图的模式。下面的代码包含一个将应用程序 ( “”) 的根 URL 映射到hello/views.py中views.home函数的路由:

from django.urls import path
from hello import viewsurlpatterns = [path("", views.home, name="home"),
]

4 该web_project文件夹还包含一个urls.py文件,该文件是实际处理 URL 路由的地方。打开web_project/urls.py并修改它以匹配以下代码。此代码使用django.urls.include引入应用程序的hello/urls.py,从而将应用程序的路由包含在应用程序中。当项目包含多个应用程序时,这种分离很有帮助。

from django.contrib import admin
from django.urls import include, pathurlpatterns = [path("", include("hello.urls")),path('admin/', admin.site.urls)
]

5 保存所有修改的文件。

6 在 VS Code 终端中,再次激活虚拟环境,运行python manage.py runserver运行开发服务器,打开浏览器以 http://127.0.0.1:8000/查看呈现“Hello, Django”的页面。
在这里插入图片描述

四、创建调试器启动配置文件

可以在 VS Code 中创建自定义的启动配置文件,而无需每次都键入python manage.py runserver
1 切换到VS Code 中的“运行”视图(使用左侧活动栏或F5)。你可能会看到消息“要自定义运行和调试,请创建 launch.json 文件”。这意味着你还没有包含调试配置的文件launch.json。如果你单击创建launch.json 文件链接,VS Code 可以为你创建该文件:
在这里插入图片描述

2 选择该链接,VS Code 将提示进行调试配置。从下拉列表中选择Django launch.json ,VS Code 将使用 Django 运行配置填充新文件。该launch.json文件包含许多调试配置,每个配置都是数组中的一个单独的 JSON 对象configuration。

3 向下滚动并检查名为“Python: Django”的配置:

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Python: Django","type": "python","request": "launch","program": "${workspaceFolder}\\manage.py","args": ["runserver"],"django": true,"justMyCode": true}]
}

这个配置告诉 VS Code使用选定的 Python 解释器和args列表中的参数运行"${workspaceFolder}/manage.py"。

使用此配置启动 VS Code 调试器与使用激活的虚拟环境在 VS Code 终端中运行python manage.py runserver相同。(如果需要,你可以添加类似的端口号例如“5000”到args。)该"django": true条目还告诉 VS Code 启用 Django 页面模板的调试,你将在本教程后面看到。
4 通过选择“运行” > “开始调试”菜单命令,或选择列表旁边的绿色“开始调试”箭头 ( F5 )来测试配置:
在这里插入图片描述

5 按住 Ctrl 键并单击http://127.0.0.1:8000/终端输出窗口中的 URL,打开浏览器并查看应用程序是否正常运行。
6 完成后关闭浏览器并停止调试器。要停止调试器,请使用“停止”工具栏按钮(红色方块)或“运行” > “停止调试”命令 ( Shift+F5)。
7 现在,你可以随时使用“运行” > “开始调试”来测试应用程序,这还有一个好处是可以自动保存所有修改的文件。

五、使用模板呈现页面

到目前为止,你在本教程中创建的应用程序仅从 Python 代码生成纯文本网页。尽管可以直接在代码中生成 HTML,但开发人员要避免这种做法,因为它会使应用程序面临跨站点脚本 (XSS) 攻击。例如,在本教程的函数hello_there中,人们可能会考虑在代码中格式化输出

content = "<h1>Hello there, " + clean_name + "!</h1>"

其中content结果直接提供给浏览器。此种代码允许攻击者将恶意 HTML(包括 JavaScript 代码)放置在 以clean_name结尾的URL中,该 URL 最终会在浏览器中运行。
更好的做法是使用模板将 HTML 完全排除在代码之外,这样你的代码就只关心数据,而不关心呈现。
模板是一个 HTML 文件,其中包含代码在运行时提供的值的占位符。模板引擎负责在渲染页面时进行替换。因此,代码只关心数据值,而模板只关心标记。
Django 模板提供了灵活的选项,例如模板继承,它允许你使用通用标记定义基本页面,然后在该基础上添加特定于页面的内容。
在本节中,你将使用模板创建单个页面。在接下来的部分中,你将配置应用程序以提供静态文件,然后为应用程序创建多个页面,每个页面都包含来自基本模板的导航栏。Django 模板还支持控制流和迭代。

六、提供静态文件

静态文件是 Web 应用程序针对某些请求按原样返回的内容片段,例如 CSS 文件。提供静态文件需要settings.py中的 INSTALLED_APPS列表包含django.contrib.staticfiles,默认是包含的。
在 Django 中提供静态文件是一门艺术,尤其是在部署到生产环境时。这里展示的是一种简单的方法,适用于 Django 开发服务器以及 Gunicorn 等生产服务器。
切换到生产时,导航至settings.py、设置DEBUG=False和更改ALLOWED_HOSTS = [‘*’]以允许特定主机。使用容器时可能会需要额外的工作。

七、创建扩展基本模板的多个模板

由于大多数 Web 应用程序都有多个页面,并且这些页面通常共享许多通用元素,因此开发人员将这些公共元素分离到一个基本页面模板中,其他页面模板随后可以扩展该模板(这也称为模板继承)。
此外,由于你可能会创建许多扩展同一模板的页面,因此在 VS Code 中创建一个代码片段会很有帮助,你可以使用该代码片段快速初始化新的页面模板。代码段可帮助你避免繁琐且容易出错的复制粘贴操作。

八、处理数据、数据模型和迁移

许多 Web 应用程序都使用数据库中存储的信息,而 Django 可以轻松地使用模型来表示该数据库中的对象。在 Django 中,模型是一个派生自django.db.models.Model 的 Python 类,它表示特定的数据库对象,通常是表。你将这些类放置在应用程序的models.py文件中。
使用 Django,你几乎完全通过在代码中定义的模型来使用数据库。然后,当你随着时间的推移改进模型时,Django 的“迁移”会自动处理底层数据库的所有详细信息。一般工作流程如下:

1 更改models.py文件中的模型。
2 运行python manage.py makemigrations以在文件夹migrations中生成脚本,将数据库从当前状态迁移到新状态。
3 运行python manage.py migrate以将脚本应用到实际数据库。

本文是简要指南,若需要阅读详细内容,请访问:https://download.csdn.net/download/mx9818/90960616

相关文章:

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...