Django学习记录02

1.请求与响应

1.1get与post的区别

get 一般是从url输入地址,会调用get请求
post 一般是内部数据传输
# get请求
def something(request):# req是一个对象,封装了用户发送过来的所有请求相关数据# 1.获取请求方式  http://localhost:8000/something# print(request.method)# 2.在url上传递值  http://localhost:8000/something/?n1=123&n2=999# print(request.GET)
# post请求
直接利用表单传输,而不需要使用url<form method="post" action="/login/">
{#    django的安全性措施,必须加该句话#}{% csrf_token %}<input type="text" name="user" placeholder="用户名"><input type="password" name="pwd" placeholder="密码"><input type="submit" value="提交"><font style="color: red"> {{ error }}</font>
</form>

1.2 Django响应的几种方式

def something(request):req是一个对象,封装了用户发送过来的所有请求相关数据响应 1.响应请求者的请求return HttpResponse("返回浏览器,响应!")响应 2.读取html的内容+渲染,返还给浏览器字符串return render(request, "something.html")响应 3.重定向return redirect("http://www.baidu.com")

重定向

在这里插入图片描述

1.浏览器发出请求
2.django响应,告诉浏览器重定向的位置
3.浏览器向http://www.baidu.com发出请求
4.http://www.baidu.com响应浏览器

1.3 请求与相应案例分析

登录页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>登陆页面</h1>
<form method="post" action="/login/">
{#    django的安全性措施,必须加该句话#}{% csrf_token %}<input type="text" name="user" placeholder="用户名"><input type="password" name="pwd" placeholder="密码"><input type="submit" value="提交"><font style="color: red"> {{ error }}</font>
</form>
</body>
</html>

{% csrf_token %} 常见的Django安全性方式

DJango实现

1.接收浏览器请求与响应若是在url中输入访问地址(get请求),则响应登陆界面若为表单的post请求,则利用request.POST获取接收表单传来的字典封装的数据,进行比对
2.对于post请求,进行比对后,比对成功响应浏览器,重定向;比对失败,返回登陆页面
def login(request):# get 请求,url所请求的# post请求,内部的数据传输error = ''# 在url中输入地址(get请求),则返回登陆页面if request.method == 'GET':return render(request, 'login.html', {"error": error})# 若是post请求,则获取数据(返回一个字典{"name":"value"})print(request.POST)# 获取数据username = request.POST.get("user")password = request.POST.get("pwd")if username == 'admin' and password == '123':return redirect('https://www.chinaunicom.com/')error = '登陆失败'return render(request, 'login.html', {"error": error})

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

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

相关文章

前端文件下载的多种方式

前端文件下载的多种方式。 前言a标签下载a标签常用属性介绍- target&#xff0c;href&#xff0c;download。 window.location.href下载window.open下载iframe 下载动态生成a标签下载文件url下载文件流下载blob文件流转换常用类型 使用 streamSaver 看实时下载进度 前言 如果我…

互联网加竞赛 基于深度学习的行人重识别(person reid)

文章目录 0 前言1 技术背景2 技术介绍3 重识别技术实现3.1 数据集3.2 Person REID3.2.1 算法原理3.2.2 算法流程图 4 实现效果5 部分代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的行人重识别 该项目较为新颖&#xff0c;适合…

嵌入式软件bug分析基本要求

摘要&#xff1a;软件从来不是一次就能完美的&#xff0c;需要以包容的眼光看待它的残缺。那问题究竟为何产生&#xff0c;如何去除呢&#xff1f; 1、软件问题从哪来 软件缺陷问题千千万万&#xff0c;主要是需求、实现、和运行环境三方面。 1.1 需求描述偏差 客户角度的描…

GADM 4.1 全球国家行政区划下载

扫描文末二维码&#xff0c;关注微信公众号&#xff1a;ThsPool 后台回复g004&#xff0c;领取最新 GADM 4.1 全球国家行政区划 GADM概述 GADM&#xff0c;全称 Database of Global Administrative Areas&#xff0c;是一个开放获取的全球行政区划数据库&#xff0c;包含各国、…

教授LLM思考和行动:ReAct提示词工程

ReAct&#xff1a;论文主页 原文链接&#xff1a;Teaching LLMs to Think and Act: ReAct Prompt Engineering 在人类从事一项需要多个步骤的任务时&#xff0c;而步骤和步骤之间&#xff0c;或者说动作和动作之间&#xff0c;往往会有一个推理过程。让LLM把内心独白说出来&am…

React+echarts实现排名+自动滚动+X轴自定义titleTop

1、效果 2、环境准备 1、react18 2、antd 4 3、代码实现 原理&#xff1a;自动滚动通过创建定时器动态更新echar的dataZoom属性startValue、endValue&#xff0c;自定义tooltip通过监听echar的鼠标移入移出事件&#xff0c;判断tooltTip元素的显隐以及位置。 /*** 收集完成…

nacos注册服务之后调用找不到调用的service注册服务问题

我的项目只包含user用户模块、order订单模块&#xff0c;并且配置了这两个模块的服务 订单服务order模块的注册&#xff1a; 用户服务user模块的注册: 报错&#xff1a; 经过一番查询我知道了要在RestTemplate这个bean上加上LoadBalanced注解来开启负载均衡&#xff0c;上面我…

前端实现搜索框筛选

效果图 页面解析 是一个input输入框和一个button按钮组成输入框查询 内容是一个折叠面板 html代码 <div class"left-content-box"><div class"colum-search"><el-input v-model"columKey" clearable placeholder"请输入关…

【达梦数据库】使用DBeaver管理达梦数据库

使用DBeaver管理达梦数据库 Step1 安装相关程序 达梦8数据库DBeaver社区版 Step2 新建驱动 类型参数驱动名称DM8驱动类型Generic类名dm.jdbc.driver.DmDriverURL模板jdbc:dm://{host}:{port}默认端口5236默认数据库默认用户SYSDBA Step3 连接服务

标准库 STM32+EC11编码器+I2C ssd1306多级菜单例程

标准库 STM32EC11编码器I2C ssd1306多级菜单例程 &#x1f4cc;原创项目来源于&#xff1a;https://github.com/AdamLoong/Embedded_Menu_Simple&#x1f4cd;相关功能演示观看&#xff1a;https://space.bilibili.com/74495335 单片机多级菜单v1.2 &#x1f449;本次采用的是原…

docker-学习-5

docker-学习第五天 docker-学习第五天1. 昨天的练习回顾1.1. 练习11.2. 练习2 2. 命令2.1. 看镜像的详细信息 3. Dockerfile指令3.1. 常见的指令3.2. ENTRYPOINT和CMD的区别3.3. RUN中的set指令 4. 镜像的原理4.1. 为什么 Docker 镜像要采用这种分层结构呢&#xff1f;4.2. doc…

leetcode(双指针)283.移动零(C++)DAY3

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 示例 1: 输入…