使用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