Django学习笔记(第一天:Django基本知识简介与启动)

devtools/2025/2/14 2:05:12/

博主毕业已经工作一年多了,最基本的测试工作已经完全掌握。一方面为了解决当前公司没有自动化测试平台的痛点,另一方面为了向更高级的测试架构师转型,于是重温Django的知识,用于后期搭建测试自动化平台。

为什么不选择Java: Python语法简洁易读,适合快速开发。Selenium、Appium、pytest、Requests 等工具对 Python 支持极好,且有丰富的文档和社区资源。

Django简介

Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式。

特点

ORM(对象关系映射): Django 提供了一个强大的 ORM,允许开发者通过 Python 代码来定义和操作数据库模型,而无需直接使用 SQL。

MVC 架构: Django 遵循 MVC(模型-视图-控制器)的软件设计模式,但它使用了稍微不同的术语。在 Django 中,模型(Model)表示数据结构,视图(View)负责呈现用户界面,而控制器(Controller)的职责被称为视图(View)。

模板引擎: Django 使用模板引擎来生成 HTML,这使得前端和后端的代码分离更加容易。

自动化 admin 界面: Django 自动生成管理后台,使得管理和操作数据库的过程变得非常简单。开发者可以轻松地创建、修改和删除数据库记录,而无需编写自定义的管理界面。

表单处理: Django 提供了强大的表单处理工具,使得用户输入的验证和处理变得更加简单。

安全性: Django 内置了一些安全性功能,例如防止常见的 Web 攻击(如 CSRF 攻击),并提供了方便的用户身份验证和授权系统。

可扩展性: Django 的组件是松耦合的,允许开发者使用现有的组件或编写自己的应用程序来扩展框架功能。

社区支持: Django 拥有庞大的社区支持。

安装教程(略)

创建Django项目

使用 django-admin 来创建 HelloWorld 项目,cmd运行

django-admin startproject HelloWorld

创建完成后我们可以查看下项目的目录结构:

$ cd HelloWorld/
$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

目录说明:

HelloWorld: 项目的容器。
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
HelloWorld/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。
HelloWorld/settings.py: 该 Django 项目的设置/配置。
HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

启动项目

接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:

python3 manage.py runserver 0.0.0.0:8000

0.0.0.0 让其它电脑可连接到开发服务器 ,8000 为端口号。如果不说明,那么端口号默认为 8000。

增加View页面

在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 views.py 文件,并输入代码:
HelloWorld/HelloWorld/views.py 文件代码:

from django.http import HttpResponsedef hello(request):return HttpResponse("Hello world ! ")

接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:
HelloWorld/HelloWorld/urls.py 文件代码:

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

整个目录结构如下:

$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py              # url 配置
|   |-- urls.pyc
|   |-- views.py              # 添加的视图文件
|   |-- views.pyc             # 编译后的视图文件
|   |-- wsgi.py
|   `-- wsgi.pyc
`-- manage.py

完成后,启动 Django 开发服务器,并在浏览器访问打开浏览器并访问:
在这里插入图片描述
我们也可以修改以下规则,修改url映射地址:
HelloWorld/HelloWorld/urls.py 文件代码:

from django.urls import pathfrom . import viewsurlpatterns = [path('hello/', views.hello),
]

通过浏览器打开 http://127.0.0.1:8000/hello,输出结果如下:
在这里插入图片描述
注意:项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。

path() 函数

Django path() 可以接收四个参数,分别是两个必选参数:route、view两个可选参数:kwargs、name

语法格式:

path(route, view, kwargs=None, name=None)

route: 字符串,定义 URL 的路径部分。可以包含变量,例如 int:my_variable,以从 URL 中捕获参数并将其传递给视图函数。

view: 视图函数,处理与给定路由匹配的请求。可以是一个函数或一个基于类的视图。

kwargs(可选): 一个字典,包含传递给视图函数的额外关键字参数。

name(可选): 为 URL 路由指定一个唯一的名称,以便在代码的其他地方引用它。这对于在模板中生成 URL 或在代码中进行重定向等操作非常有用。

Django2. 0中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过
re_path() 来实现 。

urlpatterns = [re_path(r'^index/$', views.index, name='index'),re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),re_path(r'^weblog/', include('blog.urls')),... ]

http://www.ppmy.cn/devtools/158641.html

相关文章

在 rtthread中,rt_list_entry (rt_container_of) 已知结构体成员的地址,反推出结构体的首地址

rt_list_entry (rt_container_of)宏定义&#xff1a; /*** rt_container_of - return the start address of struct type, while ptr is the* member of struct type.*/ #define rt_container_of(ptr, type, member) \((type *)((char *)(ptr) - (unsigned long)(&((type *…

【已解决】lxml.etree.ParserError: Document is empty

本专栏解决日常生活工作中非快速找到解决方案的问题。 问题背景 在爬取某网站时&#xff0c;使用开源框架报错&#xff1a;lxml.etree.ParserError: Document is empty 解决方案 1、多个搜索引擎中查找&#xff0c;建议都是对lxml的python源码进行修改&#xff0c;不好用。…

npm包管理工具

包管理工具 npm 包管理工具 介绍 Node Package Manager&#xff1a;也就是Node包管理工具但是目前已经不仅仅是Node包管理器&#xff0c;在前端项目中我们也使用它来管理依赖的包比如 vue、vue-router、vuex、express、koa 下载和安装 npm属于Node的管理工具&#xff0c;安…

【Apache Paimon】-- 作为一名小白,如何系统地学习 Apache paimon?

目录 一、整体规划 1. 了解基本概念与背景 2. 学习资料的选择 3. 学习路径与规划 4. 学习建议 5. 注意事项 6. 参考学习资料 二、详细计划 阶段 1&#xff1a;了解基础&#xff08;1-2 周&#xff09; 阶段 2&#xff1a;深入掌握核心功能&#xff08;3-4 周&#xf…

【DeepSeek】在本地计算机上部署DeepSeek-R1大模型实战(完整版)

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈人工智能与大模型应用 ⌋ ⌋ ⌋ 人工智能&#xff08;AI&#xff09;通过算法模拟人类智能&#xff0c;利用机器学习、深度学习等技术驱动医疗、金融等领域的智能化。大模型是千亿参数的深度神经网络&#xff08;如ChatGPT&…

springboot的http请求不通原因

Spring Boot 应用中 HTTP 请求不通可能由多种原因引起&#xff0c;以下是一些常见问题及解决方法&#xff1a; 1. 端口冲突 问题&#xff1a;应用端口被占用。 解决&#xff1a;检查端口占用情况&#xff0c;修改 application.properties 或 application.yml 中的端口配置。 …

ADB的安装和使用

文章目录 前言一、ADB是什么&#xff1f;一、ADB的基本概念二、ADB的主要功能三、ADB在Linux系统中的安装与使用四、ADB命令的示例 二、windows 安装ADB1.ADB不用安装&#xff0c;解压文件后添加环境变量即可2.测试是否能使用 三、与linux通信3.1 将 usb设备连接到虚拟机3.2.测…

PDF密码忘了?三步找回超简单

想要轻松解决文件密码问题&#xff1f;推荐一个优质选择—— 文件密码.top 网站。 先打开手机或电脑浏览器&#xff0c;输入 文件密码.top &#xff0c;然后找到“立即开始”。点击之后&#xff0c;就能上传你的PDF、Word、Excel、PPT、RAR或ZIP文件了。这个网站能安全高效地帮…