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

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.kler.cn/a/228734.html

相关文章:

  • JetPack——databing
  • 【鸿蒙】0x02-LiteOS-M基于Qemu RISC-V运行
  • Vue项目搭建教程超详细
  • 【OpenCV(C++)快速入门】--opencv学习
  • springboot如何解析 Map 的泛型信息来确定要注入哪些 Bean?
  • 若依分页插件失效问题
  • Camera2+OpenGL ES+MediaCodec+AudioRecord实现录制音视频写入H264 SEI数据
  • 大数据信用报告查询费用一般要多少钱?
  • 设置 相关
  • 共享网盘系统PHP源码
  • 两次NAT
  • C++泛型编程:类模板(上)
  • 点灯科技esp32 idfv5.1组件库
  • 【ArcGIS Pro】从0开始
  • IP协议(2) 和 数据链路层协议基础
  • 华为自动驾驶干不过特斯拉?
  • Zephyr NRF7002 实现AppleJuice
  • openGauss学习笔记-212 openGauss 数据库运维-日志参考
  • 服务器和云服务器哪个更安全?
  • Unity3D判断屏幕中某个坐标点的位置是否在指定UI区域内
  • 小白水平理解面试经典题目_数组类LeetCode 118 Pascal‘s Triangle【回归解法】
  • 《云原生安全攻防》-- 云原生安全概述
  • Vue学习笔记之组件基础
  • 01-Datahub是什么?
  • SpringBoot中数据库的连接及Mybatis的配置和使用
  • leetcode(滑动窗口)3.无重复字符的最长字串(C++详细题解)DAY2