使用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 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

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

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任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

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

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

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

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

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

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

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

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 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用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.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...