可以使用from django.http import HttpResponse来构造响应对象。
HttpResponse(content=响应体,content_type=响应体数据类型,status=状态码)
也可通过HttpResponse对象属性来设置响应体,响应体数据类型,状态码:
- content:表示返回的内容。
- status_code:返回的HTTP响应状态码。
响应头可以直接将HttpResponse对象当做字典进行响应头键值对的设置
response = HttpResponse("res",status=200)
response["name"] = "itcase" #自定义响应头name,值为itcase
demo
book/views.py,增加访问路由
from django.shortcuts import render
from django.http import HttpResponse
from book.models import BookInfo
import json,re
# Create your views here.
def response(request):
response = HttpResponse("res",status=200)
response["name"] = "itcase" #自定义响应头name,值为itcase
return response
book/urls.py
from django.urls import path
from book.views import create_book,shop,register,jsons,response
from django.urls import converters
from django.urls.converters import register_converter
# 第一步.定义转换器
class MobileConverter:
# 验证数据的关键是:正则
regex = '1[3-9]\d{9}'
# 验证没有问题的数据,给视图函数
def to_python(self, value):
return value
# def to_url(self, value):
# # 将匹配结果用于反向解析传值时使用
# return value
# 第二步.注册转换器,才能在第三步中使用
# 参数讲解
#converter :转换器类
#type_name :转换器名字
register_converter(MobileConverter,'phone')
urlpatterns = [
path('create/',create_book),
# <转换器名字:变量名>
# 转换器会对变量数据进行正则验证
# 第三步,使用
# int为系统自带转换器,python为自定义编写的转换器
path('<int:city_id>/<phone:mobile>/',shop),
path('register/',register),
path('json/',jsons),
path('res/',response),
]
通过postman请求
HttpResponse子类JsonResponse
若要返回json数据,可以使用JsonResponse来构造响应对象,作用
- 帮助我们将数据转换为json字符串
- 设置响应头Content-Type为application/json
book/views.py
from django.shortcuts import render
from django.http import HttpResponse,JsonResponse
from book.models import BookInfo
import json,re
# Create your views here.
def response(request):
info = {
"name":"itcase",
"address":"shunyi"
}
girl_firends = [
{
"name": "rose",
"address": "shunyi"
},
{
"name": "jack",
"address": "changping"
}
]
# data 返回的响应数据,一般是字典类型
"""
safe = True 表示 data是字典数据,JsonResponse 可以把字典转为json
safe = False 传入非字典,出了问题,自己负责
"""
response = JsonResponse(data = girl_firends,safe=False)
return response
结果
网友评论