Django框架之给客户端返回数据

在Django框架中,我们可以通过视图函数返回响应对象来给客户端返回指定的数据。

接下来我将给大家简述一下如何利用响应对象给客户端返回指定数据。

1. 自定义响应对象

第一种方式:

from django.http import HttpResponse, JsonResponse# 自定义响应对象
def index(request):
    # 第一种方式构建自定义响应对象
    return HttpResponse(content=‘Page Is Run.....‘, content_type=‘text/html;charset=utf8‘,status=404)

第二种方式:

from django.http import HttpResponse, JsonResponse# 自定义响应对象
def index(request):
    # # 第一种方式构建自定义响应对象
    # return HttpResponse(content=‘Page Is Run.....‘, content_type=‘text/html;charset=utf8‘,status=404)

    第二种方式构建自定义响应对象
    resp = HttpResponse()
    resp.content = ‘Page Not Found...‘
    resp.status_code = 200
    resp[‘laowang‘] = ‘This is Laowang...‘
    return resp

2.  定义一个JSON接口

在Django框架中我们可以利用返回JSON类型的对象来实现一个接口。

import pymysql
import json
from django.http import JsonResponse

# 定义一个接口
def index(request):
    db = pymysql.Connection(host=‘localhost‘,port=3306,database=‘school‘,user=‘root‘,passowrd=‘root‘,charset=‘utf8‘)
    cur = db.cursor()
    sql = ‘‘‘ select name,age from student‘‘‘
    cur.execute(sql)
    data = cur.fetchall()
    cur.close()
    db.close()
    json_list = []
    for key in data:
        json_dict = {}
        json_dict[key] = json_dict.get(key)
        json_list.append(json_dict)
    return JsonResponse(json_list)

3.  重定向

将客户端发送的请求重定向到指定页面上。

重定向有三种方式来实现:

1. 直接重定向到外网网址:

def index(request):
    return redirect(‘https://www.baidu.com‘)

2.  重定向到站内路径:

from django.urls import reverse

def index(request):
    # 不带参数的反向解析
    return redirect(reverse(‘users:views‘))
    # 带参数的反向解析
    return redirect(reverse(‘users:views‘, args=(‘name‘,‘age‘)))

原文地址:https://www.cnblogs.com/chao666/p/12100621.html

时间: 2024-10-14 18:41:38

Django框架之给客户端返回数据的相关文章

php给客户端返回数据注意。

亲身测试: 返回的时候不要直接返回字符串,要用数组的方式返回数据客户端才能接收. 看代码. 1 <?php 2 require_once("../base.php"); 3 4 function add_order(){ 5 // echo "asdfasfd"; 6 // exit(); 7 // $logger = Logger::getRootLogger(); 8 // $postParam = RequestUtil::postParam("

django框架学习:12.数据操作增删改查

前言 django的modles模块里可以新增一张表和字段,通常页面的操作都是源于数据库的增删改查,怎样通过django实现数据库的增删改查呢? 数据库新增数据 上一篇我们创建了ke24_user表,将use_name ="liushui",psw ="123456",mail = "[email protected]" 在urls同级目录下创建testdb.py 文件,创建add_user方法如下: 给上面创建的方法在urls.py创建一个访问

ICE学习第四步-----客户端请求服务器返回数据

这次我们来做一个例子,流程很简单:客户端向服务器发送一条指令,服务端接收到这条指令之后,向客户端发送数据库中查询到的数据,最终显示在DataGridView上. 根据上一篇文章介绍的Slice语法,我们先来定义ICE文件.我定义两个ICE文件,一个用来描述测试数据库表中属性相关信息,另一个则是请求数据的方法. 结构如下:    定义结构体,和数据库中表的列对应,添加序列(相当于数组类型). 在获取表的方法中注意要记得#include带有结构的ice文件,并把接口函数的返回值类型写成之前定义的数组

Django框架进阶6 多对多三种创建方式, Ajax, Content-Type前后端传输数据编码格式, Ajax发送文件数据, django内置的序列化功能, Ajax结合sweetalert实现删除二次确认, 批量插入数据, 自定义分页器, ajax结合sweetalert实现删除二次确认

多对多三种创建方式 1.全自动(较为常用) class Book(models.Model): title = models.CharField(max_length=32) authors = models.ManyToManyField(to='Author') # orm就会自动帮你创建第三张表 class Author(models.Model): name = models.CharField(max_length=32) ''' 好处:第三张表自己创建 不足之处:第三张表无法扩展额外

SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码

场景: 在实际运用场景中,当前台发起请求后,我们需要从后台返回数据给前台,这时,如果返回的数据中包含中文,则经常会出现在后台查询出来都是好好,但是传输回去就莫名的乱码了,而且,我们明明已经在 web.xml 中进行编码过滤了,但还是乱码,让人很头疼. 解决办法: 第一种:这种方法,估计很多人都知道,那就在 controller 中的每个方法的  @RequestMappering 注解中进行编码设置,如下所示: @RequestMapping(value = "/queryUserById&qu

django 关于render的返回数据

1,问题探讨 : 通过ajax 发送请求,接受render返回的数据.到底是什么样的类型呢? def text(request): # v = reverse("test") # print(v) return render(request, "myblog/shuige.html", {"name": "michael"}) 首先 ,render是一种渲染,返回的render是 模板 结合 数据 的 字符串. 所以ajax 

框架----Django框架知识点整理

一.cbv 1 cbv(class-base-view) 基于类的视图 2 fbv(func-base-view) 基于函数的视图 a.基本演示 1 urlpatterns = [ 2 3 url(r'^login.html$', views.Login.as_view()), 4 ] urls.py 1 from django.views import View 2 3 class Login(View): 4 """ 5 get 查 6 post 创建 7 put 更新

【转】对Django框架架构和Request/Response处理流程的分析

本文转载于疯狂的蚂蚁. 一. 处理过程的核心概念 如下图所示django的总览图,整体上把握以下django的组成: 核心在于中间件middleware,django所有的请求.返回都由中间件来完成. 中间件,就是处理HTTP的request和response的,类似插件,比如有Request中间件.view中间件.response中间件.exception中间件等,Middleware都需要在 "project/settings.py" 中 MIDDLEWARE_CLASSES 的定

python django框架(一)

s4day63内容回顾: 1. 安装 2. 创建用户 + 授权 3. 连接 - 数据库 终端创建数据库(字符编码) - 数据表 终端 ORM pymysql create ...)engine=innodb - 数据行 增 删 改 查 - limit - group by .... 关闭 问题:简述ORM原理? day64内容 1. 自己开发Web框架 - socket - http协议 - HTML知识 - 数据库(pymysql,SQLAlchemy) HTTP特点: 无状态.短连接 TCP