Django学习记录:初步认识django以及实现了简单的网页登录页面的前后端开发

Django学习记录:初步认识django以及实现了简单的网页登录页面的前后端开发

1、可以先删去template文件夹,并在setting里面删掉这一行

在这里插入图片描述

2、在pycharm中创建app:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3、启动app:编写URL与视图函数关系【urls.py】

​ 编写视图函数【views.py】

​ 启动pycharm项目
在这里插入图片描述

4、引用静态文件

在这里插入图片描述

其中有两个文件的导入:(jquery和bootstrap)

jquery:https://code.jquery.com/jquery-3.6.0.min.js 可以直接复制下来创建记事本保存并更改为js文件即可使用。

bootstrap:https://v3.bootcss.com/getting-started/#download 可以在该网站直接下载,但下载端在github。(有需要的也可以私信我)


模板语法

视图函数的render内部:

1.读取含有模板语法的HTML文件

2.内部进行渲染(模板语法执行并替换数据),最终得到只包含HTML标签的字符串。

3.将渲染(替换)哇长城的字符串返还给用户浏览器

views.py下的代码:

from django.shortcuts import render,HttpResponse# Create your views here.
def index(request):return HttpResponse("欢迎使用")def user_list(request):# 1.如果未删除默认setting中dirs那行代码,则有限去项目根目录的templates中寻找(提前先配置)【不配置就是无效】# 2.根据app的注册顺序,在每个app下的templates目录中寻找【更改设置后】return render(request, "user_list.html")def user_add(request):return render(request, "user_add.html")def tpl(request):name = "饺子"# 列表,元组与列表相同role =["保安","CEO","管理员"]# 字典user_info={"name":"包子","salary":10000,"role":"CTO"}data_list=[{"name": "包子", "salary": 10000, "role": "CTO"},{"name": "馒头", "salary": 10000, "role": "CTO"},{"name": "馄饨", "salary": 10000, "role": "CTO"},]return render(request, "tpl.html", {"n1":name, "n2":role,"n3":user_info,"n4":data_list})

tpl.html下的代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>模板语法的学习</h1>
<div>{{ n1 }}</div>
<div>{{ n2 }}</div>
<div>{{ n2.0 }}</div>
<div>{{ n2.1 }}</div>
<div>{{ n2.2 }}</div>
<div>{% for item in n2 %}<span>{{ item }}</span>{% endfor %}
</div>
<hr/>
{{ n3 }}
{{ n3.name }}
{{ n3.role }}
<ul>{% for k,v in n3.items %}<li>{{ k }}={{ v }}</li>{% endfor %}
</ul><hr/>
{{ n4.0 }}
{{ n4.1.name }}{% for item in n4 %}<div>{{ item.name }}  {{ item.salary }}</div>{% endfor %}<hr/>
{% if n1 == "饺子" %}<h1>dadadadada</h1>
{% else %}<h1>dududududu</h1>
{% endif %}</body>
</html>

网页端显示:
在这里插入图片描述

请求和相应

def sth(request):# request是一个对象,封装了用户发送过来的所有请求相关数据# 1.获取请求方式 GET/POSTprint(request.method)# 2.在URL上传递值(即在网址后面添加:/sth/?n1=123&n2=999,则会传回n1,n2对应的值)print(request.GET)# 3.在请求体中提交数据print(request.POST)# 4. (响应)HttpResponse("返回内容"),内容字符串内容返回给请求者# return HttpResponse("返回内容")# 5.(响应)读取HTML的内容 + 渲染(替换) —> 字符串,返回给用户浏览器# return render(request,'sth.html',{"title":"来了"})# 6.(响应)让浏览器重定向到其他的页面return redirect("http://www.baidu.com")

登录界面的编写

def login(requset):if requset.method == "GET":return render(requset, "login.html")# 如果是POST请求,获取用户提交的数据# print(requset.POST)username = requset.POST.get("user")password = requset.POST.get("pwd")if username == 'root' and password == "123":# return HttpResponse("登陆成功")return redirect("https://www.bbac.com.cn/cn/")# 可删去else,以省略嵌套。else:# return HttpResponse("登陆失败")return render(requset, 'login.html', {"error_msg": "用户名或密码错误"})
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>用户登录</h1>
<form method="post" action = "/login/">{% csrf_token %}<input type = "text" name = "user" placeholder="用户名"><input type = "password" name = "pwd" placeholder="密码"><input type = "submit" value="提交"><span style="color:red;"> {{ error_msg }}</span></form></body>
</html>

登录失败:则如下界面;登录成功,则跳转网页。
在这里插入图片描述

课程来源:
2022 B站最详细django3教程(django从入门到实践)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/16227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ 教程 | 第5章 RabbitMQ 管理

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

设计模式五:建造者模式(Builder Pattern)

建造者模式(Builder Pattern)是一种创建型设计模式&#xff0c;用于通过一系列步骤来构建复杂对象。它将对象的构建过程与其表示分离&#xff0c;从而允许相同的构建过程可以创建不同的表示。 建造者模式中的几个角色&#xff1a; 产品(Product)&#xff1a;表示被构建的复杂…

SpringCloud学习路线(13)——分布式搜索ElasticSeach集群

前言 单机ES做数据存储&#xff0c;必然面临两个问题&#xff1a;海量数据的存储&#xff0c;单点故障。 如何解决这两个问题&#xff1f; 海量数据的存储问题&#xff1a; 将索引库从逻辑上拆分为N个分片&#xff08;shard&#xff09;&#xff0c;存储到多个节点。单点故障…

Golang之路---02 基础语法——流程控制(if-else , switch-case , for-range , defer)

流程控制 条件语句——if-else if 条件 1 {分支 1 } else if 条件 2 {分支 2 } else if 条件 ... {分支 ... } else {分支 else }注&#xff1a; Golang编译器&#xff0c;对于 { 和 } 的位置有严格的要求&#xff0c;它要求 else if &#xff08;或 else&#xff09;和 两边…

Python正则表达式re模块的相关知识积累与博文汇总

正则表达式的内容很多&#xff0c;也很灵活和强大&#xff0c;有必须做下记录&#xff0c;进行汇总。 01-初学Python的re模块的正则表达式的常用方法与常见问题记录 链接1&#xff1a;https://blog.csdn.net/wenhao_ir/article/details/125960370 链接2&#xff1a;https://b…

Mysql 查询统计最近12个月的数据

包括当月: SELECTt1.yf AS month,count( t2.uuid ) AS total FROM(SELECTDATE_FORMAT(( CURDATE()), %Y-%m ) AS yf UNIONSELECTDATE_FORMAT(( CURDATE() - INTERVAL 1 MONTH ), %Y-%m ) AS yf UNIONSELECTDATE_FORMAT(( CURDATE() - INTERVAL 2 MONTH ), %Y-%m ) AS yf UNION…

F5 LTM 知识点和实验 2-负载均衡基础概念

第二章&#xff1a;负载均衡基础概念 目标&#xff1a; 使用网页和TMSH配置virtual servers&#xff0c;pools&#xff0c;monitors&#xff0c;profiles和persistence等。查看统计信息 基础概念&#xff1a; Node一个IP地址。是创建pool池的基础。可以手工创建也可以自动创…

基于canvas画布的实用类Fabric.js的使用

目录 前言 一、Fabric.js简介 二、开始 1、引入Fabric.js 2、在main.js中使用 3、初始化画布 三、方法 四、事件 1、常用事件 2、事件绑定 3、事件解绑 五、canvas常用属性 六、对象属性 1、基本属性 2、扩展属性 七、图层层级操作 八、复制和粘贴 1、复制 2…

Redis常用命令

目录 Redis通用命令 进入Redis 1.进入redis容器 2.进入redis-cli 查询Redis中储存的key 删除key 查询key的过期时间,以毫秒为单位返回 key 的剩余的过期时间 查询key的数据类型 Redis数据结构 Redis数据查询 1.string 查询key对应的值 设置key对应的值 2.list 查…

【ARM 常见汇编指令学习 3 -- ARM64 无符号位域提取指令 UBFX】

文章目录 ARM64 无符号位域提取指令 上篇文章&#xff1a;ARM 常见汇编指令学习 2 – 存储指令 STP 与 LDP 下篇文章&#xff1a;ARM 常见汇编指令学习 4 – ARM64 比较指令 cbnz 与 b.ne 区别 ARM64 无符号位域提取指令 在代码中如何监控寄存器的某1bit&#xff0c; 或者某几…

ACL原理

ACL原理 ACL是一种用于控制网络设备访问权限的技术&#xff0c;可以通过配置ACL来限制特定用户、应用程序或网络设备对网络资源的访问。 1、ACL&#xff08;Access Control List&#xff09; 2、ACL是一种包过滤技术。 3、ACL基于IP包头的IP地址、四层TCP/UDP头部的端口号、…

磁盘均衡器:HDFS Disk Balancer

HDFS Disk Balancer 背景产生的问题以及解决方法 hdfs disk balancer简介HDFS Disk Balancer功能数据传播报告 HDFS Disk Balancer开启相关命令 背景 相比较于个人PC&#xff0c;服务器一般可以通过挂载多块磁盘来扩大单机的存储能力在Hadoop HDFS中&#xff0c;DataNode负责最…

canvas实现图片平移,缩放的例子

最近有个水印预览的功能&#xff0c;需要用到canvas 绘制&#xff0c;canvas用的不是很熟&#xff0c;配合chatAI 完成功能。 效果如下 代码如下 原先配置是响应式的&#xff0c;提出来了就不显示操作了&#xff0c;模拟值都写死的 界面给大家参考阅读。 <!DOCTYPE html…

Spring AOP 的概念及其作用

一、什么是 Spring AOP&#xff1f; 在介绍 Spring AOP 之前&#xff0c;首先要了解一下什么是 AOP &#xff1f; AOP &#xff08; Aspect Oriented Programming &#xff09;&#xff1a;面向切面编程&#xff0c;它是一种思想&#xff0c; 它是对某一类事情的集中处 理 。…

软件测试面试题——接口自动化测试怎么做?

面试过程中&#xff0c;也问了该问题&#xff0c;以下是自己的回答&#xff1a; 接口自动化测试&#xff0c;之前做过&#xff0c;第一个版本是用jmeter 做的&#xff0c;1 主要是将P0级别的功能接口梳理出来&#xff0c;根据业务流抓包获取相关接口&#xff0c;并在jmeter中跑…

【前端知识】React 基础巩固(四十三)——Effect Hook

React 基础巩固(四十三)——Effect Hook 一、Effect Hook的基本使用 Effect Hook 用来完成一些类似class中生命周期的功能。 在使用类组件时&#xff0c;不管是渲染、网路请求还是操作DOM&#xff0c;其逻辑和代码是杂糅在一起的。例如我们希望把计数器结果显示在标签上&…

8.事件对象

8.1获取事件对象 ●事件对象是什么 也是个对象&#xff0c;这个对象里有事件触发时的相关信息 例如&#xff1a;鼠标点击事件中&#xff0c;事件对象就存了鼠标点在哪个位置等信息 ●使用场景 可以判断用户按下哪个键&#xff0c;比如按下回车键可以发布新闻 可以判断鼠标点击…

【Java|golang】143. 重排链表---快慢指针

给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln - 1 → Ln 请将其重新排列后变为&#xff1a; L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。 …

CentOS7.3 安装 docker

亲测、截图 阿里云服务器 文章目录 更新源2345 启动开机自启 更新源 sudo yum update -y2 sudo yum install -y yum-utils device-mapper-persistent-data lvm23 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo4 sudo yum …

【软件测试】性能测试工具- LoadRunner的介绍和使用

目录 1. LoadRunner是什么2. LoadRunner环境搭建3. LoadRunner三大组件4. LoadRunner脚本录制4.1 WebTous项目介绍启动WebTous项目访问WebTous项目相关配置 4.2 脚本录制新建脚本录制脚本运行脚本 4.3 脚本加强插入事务插入集合点插入检查点插入日志字符串比较 1. LoadRunner是…