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

很详细的Django开发入门详解(图文并茂)

1.Django概述

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。

Django 框架的核心组件有:

  • 用于创建模型的对象关系映射;
  • 为最终用户设计较好的管理界面;
  • URL 设计;
  • 设计者友好的模板语言;
  • 缓存系统。

Django已经成为web开发者的首选框架,是一个遵循 MVC 设计模式的框架。MVC是Model、View、Controller三个单词的简写,分别代表模型、视图、控制器。Django其实也是一个MTV 的设计模式。

MTV是Model、Template、View三个单词的简写,分别代表模型、模版、视图 。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:

在这里插入图片描述

2.Django项目环境搭建

搭建Django开发环境,主要有以下六个步骤

2.1创建并激活虚拟环境

cd D:\djangotest #自己创建空文件夹存放项目
python -m venv djangoenv #创建虚拟环境

图片

运行以下命令,激活虚拟环境

cd D:\djangotest
djangoenv\Scripts\activate #激活虚拟环境

 2.2安装django模块

#1激活虚拟环境
cd D:\djangotest
djangoenv\Scripts\activate
#2安装django模块
pip install Django #激活虚拟环境后安装Django模块

 

上述命令执行后,会把Django模块,安装到了djangoenv/Lib/site-packages 下,也就是说,此Django模块仅仅在虚拟环境中,而不是安装在Python全 局环境。目录如下图所示

在这里插入图片描述

2.3创建Django项目

安装了Django之后,我们就可以使用Django的管理工具------>django-admin了

我们创建一个名称为loginweb的Django项目,命令如下:

#1激活虚拟环境
cd D:\djangotest
djangoenv\Scripts\activate
#2创建一个loginweb的项目
django-admin startproject loginweb
或者
python -m django startproject loginweb

此命令执行后,会在djenv的同级目录,创建一个名称loginweb的Django 项目。目录结构如下图所示:

在这里插入图片描述

用Pycharm打开项目,项目结构文件含义如下:

外层的loginweb目录:是项目的容器,Django不关心它的名字,我 们可以将它重命名为任何我们喜欢的名字

里面的loginweb目录:它是一个纯python包。我们可以称呼它为项目的名称,不能随意重命名

manage.py :它是Django的一个非常重要的工具,通过它可以调用 django shell和数据库等,如:创建app应用程序、创建数据库表、清 空数据、启动项目等操作

settings.py :Django 项目的配置文件。包含了项目的默认设置,包 括数据库信息,调试标志以及其他一些工作的变量

urls.py :Django 项目的URL路由声明,负责把URL模式映射到应用 程序

wsgi.py:Web服务器网关接口(Python Web Server Gateway Interface的缩写),Python应用和Web服务器之间的一种接口,可以 看成是一种协议、规范。它是基于Http协议的,不支持WebSoket

asgi.py:异步网关协议接口,能够处理多种通用的协议类型,包括 HTTP,HTTP2和WebSocket,可以看成ASGI是WSGI的扩展

3.Django开发登录功能

3.1创建app应用程序

一般一个项目包含多个app应用程序(当然,通用的app也可以在多个项目中使用) 下面我们为loginweb项目,创建login

#1激活虚拟环境
cd D:\djangotest
djangoenv\Scripts\activate
#2切到django项目中
cd loginweb
#3创建一个叫login的应用
django-admin startapp login

在这里插入图片描述

上述命令执行后,目录结构如下图所示

图片

3.2注册app

app应用程序创建以后,必须把app注册到Django,才能够被Django项目所管理。我们只需要把login应用的名称,配置到 loginweb/settings.py文件中即可。如下图所示:

图片

3.3Django视图

Django视图的作用:用于接受Web请求并且返回Web响应的简单Python 函数。该函数一般定义在各自应用的views.py文件中。在视图函数中,有 两个重要的对象:请求对象和响应对象。

下面是一个最简单的视图函数:

# 例:在login/views.py 中
from django.http import HttpResponse
# Create your views here.def login(request):return HttpResponse("登录页面")

其中:request参数为必填参数,代表用户的请求,它是HttpRequest对象

3.4Django路由

Django的路由定义文件为:项目目录urls.py文件。我们所有的路由配置,都以列表的方式,定义在urls.py文件中,添加我们想要的路由

# 例:在loginweb/urls.py 中
from django.contrib import admin
from django.urls import path
from login import views
urlpatterns = [path("admin/", admin.site.urls),path("login/",views.login)
]

3.5启动Django项目

在开发环境下,我们需要在本地启动Django项目,来开发与调试我们的代 码。启动Django项目命令如下:

python manage.py runserver [port]
#[port] 为应用访问端口,可以缺省不写,默认为8000。

此时,我们就可以用浏览器访问我们的项目了。结果如下图所示

图片

访问我们写好的路由

图片

3.6登录功能改良

在login底下新写建一个templates目录,存放编写的html前端页面

图片

 login.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>登录页面</title><style>body{text-align:center;}</style>
</head>
<body>
<form action="/login/" method="post">{% csrf_token %}<h1 align="center">登录页面</h1><p class="divs"><label for="username">用户名:</label><input type="text" id="username" name="username" align="center"></p><p class="divs">&nbsp&nbsp&nbsp<label for="password">密码:</label><input type="password" id="password" name="password"></p><input type="submit" value="登录"><span style="color:red">{{ error }}</span>
</form></body>
</html>

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>这里是主页</title><style>h1 { color:red }</style>
</head>
<body><h1>这里是主页</h1>
</body>
</html>

修改试图函数

from django.shortcuts import render,redirect
# Create your views here.def login(request):if request.method == 'POST':username = request.POST.get('username')passowrd = request.POST.get('password')if username=='songqin' and passowrd =='123456':return redirect('/index')else:return render(request,'login.html',{"error":"用户名或密码错误"})return render(request,'login.html')def index(request):return render(request,'index.html')

修改loginweb/urls.py

from django.contrib import admin
from django.urls import path
from login import views
urlpatterns = [path("admin/", admin.site.urls),path("login/",views.login),path("index/",views.index)
]

再次启动Django项目

python manage.py runserver [port]
#[port] 为应用访问端口,可以缺省不写,默认为8000。

访问http://127.0.0.1:8000/login/项目

在这里插入图片描述

输入不是用户名密码不是songqin/123456

在这里插入图片描述

输入songqin/123456点击登录 跳转到主页面

图片

最后: 我给大家整理了一份完整的软件测试全套学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

资料获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片进群领取。

相关文章:

很详细的Django开发入门详解(图文并茂)

1.Django概述 Django是一个开放源代码的Web应用框架&#xff0c;由Python写成。采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。 Django 框架的核心组件有&#xff1a; 用于创建模型的对象关系映射&#xff1b;为最终用户设计较好的管理界面&#xff1b;…...

Ansible 部署

ansible 自动化运维工具&#xff0c;可以实现批量管理多台&#xff08;成百上千&#xff09;主机&#xff0c;应用级别的跨主机编排工具 特性&#xff1a; 无agent的存在&#xff0c;不要在被控制节点上安装客户端应用 通过ssh协议与被控制节点通信 基于模块工作的&#xff0c…...

【操作系统】计算机操作系统知识点总结

文章目录 前言一、操作系统的概念与发展二、操作系统的结构与功能1、操作系统的结构2、操作系统的功能 三、进程管理1、进程2、进程的创建3、进程管理的实现4、进程控制块 四、内存管理1、内存2、内存管理3、内存管理的实现 五、文件系统1、文件系统2、文件系统的主要任务3、文…...

springmvc整合thymeleaf

概述 Thymeleaf提供了一组Spring集成&#xff0c;使您可以将其用作Spring MVC应用程序中JSP的全功能替代品。 这些集成将使您能够&#xff1a; Controller像使用JSP一样&#xff0c;将Spring MVC 对象中的映射方法转发到Thymeleaf管理的模板。在模板中使用Spring表达式语言&…...

Redis 内存管理机制

Redis作为一个内存数据库&#xff0c;内存资源非常珍贵。因此&#xff0c;Redis引入了3种内存管理机制来释放不必要的内存&#xff0c;包括定期删除、惰性删除和内存淘汰机制。 定期删除 定期删除是Redis内存管理机制的一种&#xff0c;它用于删除过期的键值对。Redis每隔 10…...

Apache Zeppelin系列教程第九篇——Zeppelin NoteBook数据缓存

背景 在使用Zeppelin JDBC Intercepter 对于Hive 数据进行查询过程中&#xff0c;如果遇到非常复杂的sql&#xff0c;查询效率是非常慢 比如&#xff1a; select dt,count(*) from table group by dt做过数据开发的同学都知道&#xff0c;在hive sql查询过程中&#xff0c;hive…...

用代码实现一个简单计算器

作者主页&#xff1a;paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《C语言》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造…...

运维圣经:挖矿木马应急响应指南

目录 挖矿木马简介 挖矿流程 挖矿木马应急响应 一. 隔离被感染主机 二. 确定挖矿进程 三. 挖矿木马清除 1、阻断矿池地址的连接 2、清除挖矿定时任务、启动项等 3、禁用可疑用户 4、定位挖矿木马文件的位置并删除 5、全盘杀毒、加固 挖矿木马简介 挖矿&#xff1a;…...

【Flutter】Flutter 如何获取安装来源信息

文章目录 一、 前言二、 安装来源信息的基本概念1. 什么是安装来源信息2. 为什么我们需要获取安装来源信息 三、 如何在 Flutter 中获取安装来源信息1. 准备工作2. 安装必要的依赖库3. 编写代码获取安装来源信息 四、 完整示例代码五、总结 一、 前言 在这篇文章中&#xff0c…...

Stimulsoft Reports用户手册:Report Designer介绍

Stimulsoft Reports.Net是一个基于.NET框架的报表生成器&#xff0c;能够帮助你创建结构、功能丰富的报表。StimulReport.Net 的报表设计器不仅界面友好&#xff0c;而且使用便捷&#xff0c;能够让你轻松创建所有报表&#xff1b;该报表设计器在报表设计过程中以及报表运行的过…...

跨模态检索论文阅读:Dissecting Deep Metric Learning Losses for Image-Text Retrieval(GOAL)

Dissecting Deep Metric Learning Losses for Image-Text Retrieval 剖析图像文本检索中的深度度量学习损失 2022.10 视觉语义嵌入&#xff08;VSE&#xff09;是图像-文本检索中的一种流行的应用方法&#xff0c;它通过学习图像和语言模式之间的联合嵌入空间来保留语义的相似性…...

贪心算法part5 | ● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

文章目录 435. 无重叠区间思路思路代码困难 763.划分字母区间思路官方题解代码困难 56. 合并区间思路思路代码 今日收获 435. 无重叠区间 思路 重叠问题都需要先排好序&#xff0c;再贪心 思路代码 func eraseOverlapIntervals(intervals [][]int) int {sort.Slice(interva…...

IMX6ULL裸机篇之SPI实验-ICM20608代码实现

一. SPI 实验 SPI实验&#xff1a;学习如何使用 I.MX6U 的 SPI 接口来驱动 ICM-20608&#xff0c;读取 ICM-20608 的六轴数据。 本文学习 SPI通信实验中&#xff0c;涉及从设备的 SPI代码编写。 之前学习了 SPI 主控芯片代码的编写&#xff0c;如下所示&#xff1a; IMX6ULL…...

51单片机读取DS18B20温度传感器

1.首先我们知道DS18B20是单总线协议&#xff0c;只有一根数据线。所以Data数据线即使发送端又是接收端&#xff0c;同时DS18B20内部接了弱上拉电阻&#xff08;如图一所示&#xff09;&#xff0c;数据线默认为高电平。有了这些概念&#xff0c;我们就能进行下一步。 图一&…...

set/map学习

我们要开始学习map和set的使用&#xff0c;虽然使用更加复杂&#xff0c;但是STL整体的设计&#xff0c;本身就具有很强的前瞻性和延续性&#xff0c;比如说迭代器等&#xff0c;我们顺着文档来看。这也是除了vector之外最重要的容器&#xff0c;当然还有unordered_map 和 unor…...

JavaScript Web APIs学习总结

以后声明变量我们有限使用哪一个&#xff1f; const 有了变量先给const&#xff0c;如果发现它后面是要被修改的&#xff0c;再改为let 为什么const声明的对象可以修改里面的属性&#xff1f; 因为对象是引用类型&#xff0c;里面存储的是地址&#xff0c;只要地址不变&…...

萤石摄像头RTSP流获取(黑屏解决)

前言 在获取萤石摄像头RTSP视频流时&#xff0c;视频流获取不成功&#xff0c;黑屏并且一直显示缓冲中。下面对获取过程中查阅的资料和解决方案做一下汇总。 打开RTSP 在萤石云视频APP中打开RTSP&#xff0c;【我的】-【工具】-【局域网设备预览】-【开始扫描】-【选择摄像头…...

ThreadLocal引发的内存泄漏分析

预备知识&#xff08;引用&#xff09; Object o new Object(); 这个o&#xff0c;我们可以称之为对象引用&#xff0c;而new Object()我们可以称之为在内存中产生了一个对象实例。 当写下 onull时&#xff0c;只是表示o不再指向堆中object的对象实例&#xff0c;不代表这个…...

银行数据治理:数据质量管理实践

现代商业银行日常经营活动中积累了大量数据&#xff0c;这些数据除了支持银行前台业务流程运转之外&#xff0c;越来越多地被用于决策支持领域&#xff0c;风险控制、产品定价、绩效考核等管理决策过程也都需要大量高质量数据支持。银行日常经营决策过程的背后&#xff0c;实质…...

2.7V至25V宽输入电压15A 峰值电流

HT7179是一款高功率异步升压转换器&#xff0c;集成 20mΩ功率开关管&#xff0c;为便携式系统提供高效的 小尺寸解决方案。 HT7179具有2.7V至25V宽输入电压范围&#xff0c;可为 采用单节或两节锂电池&#xff0c;或12V铅酸电池的应 用提供支持。该器件具备15A开关电流能力&a…...

【大白话说Java面试题 第49题】【JVM篇】第9题:什么是双亲委派机制?介绍一下运作过程。?

&#x1f4cc; PDF&#xff1a;大白话说Java面试题 — 02-JVM篇 第9题&#xff1a;什么是双亲委派机制&#xff1f;介绍一下运作过程。 &#x1f4da; 回答&#xff1a; 核心概念&#xff1a; 双亲委派机制 是 JVM 中类加载器的工作模式&#xff0c;用于保证类加载的安全性和…...

从泊松比到广义胡克定律:物理仿真中的材料形变建模指南

1. 泊松比&#xff1a;材料形变的"性格密码" 第一次接触泊松比这个概念时&#xff0c;我正对着橡胶减震器的仿真结果发愁——明明设置了正确的杨氏模量&#xff0c;为什么变形效果总是不对劲&#xff1f;直到导师指着屏幕问&#xff1a;"你考虑过这个橡胶材料的…...

【Midjourney v8图像修复终极指南】:9大隐藏参数调优+3类高频崩坏场景实战修复(2024官方未公开文档级解析)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney v8图像修复功能全景概览 Midjourney v8 引入了革命性的图像修复&#xff08;Image Inpainting&#xff09;能力&#xff0c;不再依赖外部图层或第三方工具&#xff0c;而是通过原生提示词指…...

如何5分钟掌握Jump:从安装到高效使用的完整教程

如何5分钟掌握Jump&#xff1a;从安装到高效使用的完整教程 【免费下载链接】jump Jump helps you navigate faster by learning your habits. ✌️ 项目地址: https://gitcode.com/gh_mirrors/ju/jump Jump是一款能够通过学习用户习惯来加速导航的命令行工具&#xff0…...

QtScrcpy终极指南:高效实现Android投屏控制

QtScrcpy终极指南&#xff1a;高效实现Android投屏控制 【免费下载链接】QtScrcpy Android实时投屏软件&#xff0c;此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcpy QtScr…...

BLAST实战指南:从算法原理到精准搜索

1. BLAST算法基础&#xff1a;从序列比对的本质说起 第一次接触BLAST时&#xff0c;我被它惊人的搜索速度震撼到了。要知道在1990年之前&#xff0c;研究人员比对两条蛋白质序列需要数小时&#xff0c;而BLAST能在几秒钟内完成数据库搜索。这背后的魔法&#xff0c;其实源自几个…...

从Nautilus案看专利权利要求撰写:如何避免模糊性陷阱

1. 专利权利要求“模糊性”的边界&#xff1a;从Nautilus案看撰写核心 在科技行业&#xff0c;尤其是半导体、硬件和软件开发领域&#xff0c;专利是保护创新、构筑商业壁垒的生命线。但你是否想过&#xff0c;你或你的公司赖以生存的那份专利文件&#xff0c;其核心——权利要…...

选择Token Plan套餐后在实际开发中感受到的成本控制优势

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 选择Token Plan套餐后在实际开发中感受到的成本控制优势 1. 从按量计费到固定额度的转变 在项目开发的早期阶段&#xff0c;尤其是…...

在ubuntu上为nodejs后端服务接入taotoken多模型api的步骤

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在 Ubuntu 上为 Node.js 后端服务接入 Taotoken 多模型 API 的步骤 为后端服务集成大模型能力是现代应用开发的常见需求。如果你在…...

告别Let‘s Encrypt:用开源XCA构建私有CA,签发全站浏览器信任的SSL证书

1. 为什么你需要私有CA&#xff1f; 每次看到浏览器里那个"不安全"的红色警告&#xff0c;我就浑身难受。以前我也和大家一样用Lets Encrypt&#xff0c;直到有次紧急发布时遇到证书续期失败&#xff0c;整个团队熬夜排查到凌晨三点。从那天起&#xff0c;我就开始研…...