Django基础——Django视图系统

Stella981
• 阅读 570

Django视图系统(详细点我

视图(接收请求和返回响应那部分)

一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。无论视图本身包含什么逻辑,都要返回响应。

有两种模式的视图:

1.基于函数的视图(FBV(function base view)) 

2.基于类的视图(CBV(class base view))

请求对象(request对象)  

  1. request.method --> 获取请求的方法(GET、POST等)
  2. request.GET --> 通常用来获取URL里面的参数(通常是 路径后面跟?参数) 
    127.0.0.1:8000/edit_book/?id=1&name=yimi
    request.GET --> {"id":1, "name":"yimi"}
    request.GET.get("id")
  3. request.POST --> 用来获取POST提交过来的数据
    request.PSOT也是一个字典{"name":"value"}
    request.POST.get("book_name")

请求相关的常用值 

  • path_info     返回用户访问url,不包括域名

  • method 请求中使用的HTTP方法的字符串表示,全大写表示。

  • GET 包含所有HTTP  GET参数的类字典对象

  • POST 包含所有HTTP POST参数的类字典对象

  • body 请求体,byte类型 request.POST的数据就是从body里面提取到的

注意:键值对的值是多个的时候,比如checkbox类型的input标签,select标签,需要用: 

request.POST.getlist("hobby")  

def edit_author(request):
    if request.method == "POST":
        #提交数据后也是先拿到要编辑的对象,getlis可以获得多个对象
        edit_book = request.POST.getlist("book_id")

response
基础必备三件套

导入:

from django.shortcuts import HttpResponse, render, redirect 

1. HttpResponse --> 返回字符串内容
2. render --> 返回一个html页面 
3. redirect --> 返回一个重定向(告诉浏览器再去访问新的网址,就是直接跳转到新网站)  

4. JsonResponse ---> 专门用来生成JSON编码的响应。  

from django.http import JsonResponse

response = JsonResponse({'foo': 'bar'})
print(response.content)

b'{"foo": "bar"}'

默认只能传递字典类型,如果要传递非字典类型需要设置一下safe关键字参数。

response = JsonResponse([1, 2, 3], safe=False)

python 与 json 之间的数据类型的转换;json实际上就是字符串;

在python中序列化为 json.dumps; json.dump;  反序列化为json.loads;json.load;

在json中序列化为 json.stringfy();;  反序列化为json.parse();

  Django基础——Django视图系统

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Django 视图系统
一,Django的View(视图)一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目
Stella981 Stella981
3年前
Django(十二)视图
一、Ajax基本概念【参考】:https://www.runoob.com/jquery/jqueryajaxintro.html(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.runoob.com%2Fjquery%2Fjqueryajaxi
Wesley13 Wesley13
3年前
mysql(视图 事务 索引 外键)
视图视图本质就是对查询的封装创建视图(定义视图 起名以v\_开头)createviewv\_studentsasselectclasses.nameas c\_name,students.\fromstudentsinnerjoinclassesonstudents.cls\_idclasses.id;查
Stella981 Stella981
3年前
Django基础之:views视图函数
一Django的视图函数view  一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没有
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
Django的View(视图)和路由系统
一、Django的View(视图)1、介绍一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只
Stella981 Stella981
3年前
Django 基于类的视图源码分析 一
基于类的视图(Classbasedview)是Django1.3引入的新的视图编写方式,用于取代以前基于函数(Functionbased)方式。借助于OO和Python中方便的多重继承特性,基于类的视图可以提供更好的抽象与复用能力。新的通用视图将更加优雅。Django的文档较为丰富,但在实际开发中往往仍显得不够,很多时候还是需要深入到源代码当
Easter79 Easter79
3年前
SwiftUI 跨组件数据传递
作者:Cyandev,iOS和MacOS开发者,目前就职于字节跳动0x00前言众所周知,SwiftUI的开发模式与React、Flutter非常相似,即都是声明式UI,由数据驱动(产生)视图,视图也会与数据自动保持同步,框架层会帮你处理“绑定”的问题。在声明式UI中不存在命令式地让一个视图变成xxx