JsonResponse


1 json格式的数据有什么用
  • 前后端数据交互需要使用json作为过渡,实现跨语言传输数据
2 前后端方法对应
  • JSON.stringify() -  json.dumps()
  • JSON.parse()     -  json.loads()
3 JsonResponse 对象实现
import json
from django.http import JsonResponse
def jsonx(request):
user_dict = {'nickname':'iyuyixyz', 'email':'iyuyi.xyz@gmail.com', 'hobby':'dj', '小姨子'}
# 先转成json格式字符串
# json_str = json.dumps(user_dict, ensure_ascii=False)
# 将该字符串返回
# return HttpResponse(json_str)
return JsonResponse(user_dict, json_dumps_params = {'ensure_ascii':False}) # 对列表序列化
# list = [1, 2, 3, 4, 5]
# return JsonResponse(list, safe = False)
# 默认 safe=True 代表只能序列化字典对象,safe=False 代表可以序列化字典以外的对象
# In order to allow non-dict objects to be serialized set the safe parameter to False.
 

FBV和CBV


Django 的视图层由两种形式构成:FBV和CBV

  • FBV基于函数的视图(Function base view)我们之前一直介绍的都是FBV
  • CBV基于类的视图 (Class base view)

案例

urls.py

from django.urls import path, register_converter, re_path
from app import views urlpatterns = [
re_path(r'^login/',views.LoginView.as_view()), # 必须调用类下的方法 as_view
]

views.py

from django.shortcuts import render, HttpResponse, redirect
from django.views import View class LoginView(View):
def dispatch(self, request, *args, **kwargs): # 可在该方法内做一些预处理操作
# 当请求url为:http://127.0.0.1:8008/login/会先触发dispatch的执行
# 如果http协议的请求方法为GET,则调用下述get方法
# 如果http协议的请求方法为POST,则调用下述post方法
obj = super().dispatch(request, *args, **kwargs) # 必须继承父类的dispatch功能
return obj # 必须返回obj def get(self,request):
return render(request, 'login.html') def post(self,request):
name = request.POST.get('name')
pwd = request.POST.get('pwd')
if name == 'xyz' and pwd == '123':
result='登录成功'
else:
result='用户名或密码错误'
return HttpResponse(result)

测试

python manage.py runserver

验证GET请求:在浏览器输入:http://127.0.0.1:8001/login/验证POST请求:在表单内输入数据然后提交。

采用CBV可以引入面向对象的思想对数据进行更高程度的封装。

Django 之视图层的更多相关文章

  1. 03-01 Django之视图层

    Django之视图层 一 视图函数 视图函数,简称视图,属于Django的视图层,默认定义在views.py文件中,是用来处理web请求信息以及返回响应信息的函数,所以研究视图函数只需熟练掌握两个对象 ...

  2. 4、Django之视图层

    一 视图函数 视图函数,简称视图,属于Django的视图层,默认定义在views.py文件中,是用来处理web请求信息以及返回响应信息的函数,所以研究视图函数只需熟练掌握两个对象即可:请求对象(Htt ...

  3. python 全栈开发,Day69(Django的视图层,Django的模板层)

    昨日内容回顾 相关命令: 1 创建项目 django-admin startproject 项目名称 2 创建应用 python manage.py startapp app名称 3 启动项目 pyt ...

  4. Django框架(四) Django之视图层

    视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . ...

  5. 6 Django 的视图层

    视图函数 一个视图函数,简称视图,是一个简单的 Python 函数,它接受 Web 请求并且返回 Web 响应.响应可以是一张网页的 HTML 内容,一个重定向,一个 404 错误,一个 XML 文档 ...

  6. 关于Django的视图层

    视图函数 通俗来讲:视图函数是在url配置是所匹配好了将要调用的对应函数(逻辑代码)        是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容 ...

  7. 6 Django的视图层

    视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . ...

  8. Django之路——4 Django的视图层

    一个视图函数简称称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何 ...

  9. Django之视图层

    一.视图函数 一个视图函数,简称视图,是一个简单的python函数,接收web请求并返回web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误等.在函数中必须写一个request的参 ...

  10. Django 的视图层

    什么是视图: 之前我们也了解了urls路由 那么路由的主要作用是决定你下一步走哪个视图函数 ,视图就是用来存放一个个的函数的python文件,主要存储的函数就是你Django主要的流程的控制 都存放在 ...

随机推荐

  1. NC16462 [NOIP2015]跳石头

    NC16462 [NOIP2015]跳石头 题目 题目描述 一年一度的"跳石头"比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块 ...

  2. Android Studio 的初次使用

    记录我第一次使用Android Studio时遇到的问题以及一些简单的笔记. 我所使用的是Android Studio 2.2版本 遇到的问题 创建一个Hello World!项目无疑是相当简单的,我 ...

  3. day11 Java反射机制

    java反射机制 反射是java中的动态机制,它允许我们在程序运行期间再确定类的实例化,方法的调用,属性的调用等,而不是传统意义上的在编码期间确定. 因此,反射可以大大的提高代码的灵活度,但是随之而来 ...

  4. jdbc 01: 连接mysql,并实现数据插入

    jdbc连接mysql,并实现数据插入 package com.examples.jdbc.o1_连接与插入; import java.sql.*; /* jdbc数据库连接六步 */ public ...

  5. 7.5 The Morning after Halloween

    本题主要是存储的问题,在存储上笔者原先的代码占用了大量的内存空间 这边笔者采用暴力的思想直接硬开所有情况的16^6的数组来存储该问题,当然这在时间上是十分浪费的,因为初始化实在太慢了,剩下的就是状态转 ...

  6. 对象数组的foreach循环操作和集合容器

    ForEach标签可以循环数组,list,map集合 采用 foreach循环遍历 ,并每次循环允许执行一次回调函数 for (容器中元素类型 临时变量: 容器变量) { System.out.pri ...

  7. React报错之Property 'X' does not exist on type 'HTMLElement'

    正文从这开始~ 总览 在React中,当我们试图访问类型为HTMLElement 的元素上不存在的属性时,就会发生Property 'X' does not exist on type 'HTMLEl ...

  8. js Fetch返回数据res.json()报错问题

    前言 一直以来在简单的场景中经常使用fetch代替第三方请求库, fetch是JavaScript的原生函数, 简单.高效.快速.稳定.可定制等等诸多优点.一直也是用着很是舒服,直到有一天它竟然报错了 ...

  9. 基于 Next.js实现在线Excel

    如果要从头开始使用 React 构建一个完整的 Web 应用程序,需要哪些步骤? 这当然不像把大象装进冰箱那么简单,只需要分成三步:打开冰箱,拿起大象,塞进冰箱就好. 我们需要考虑细节有很多,比如: ...

  10. 学习与尝试 --> 事件风暴

    事件风暴 1. 基础概念 术语 执行者 -----> 是指执行的角色,系统的主体,是导致系统状态变化的触发源 人员,系统的用户,操作人员等 系统,系统本身执行的,或者调度的,自动触发的 ,第三方 ...