(接收前端传参)视图层接收 和 设置cookie。--django.http自带的

视图层接收 和 设置cookie

from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
import json

# Create your views here.

# uri:postIndex/
@csrf_exempt
def postIndex(request):
	# 请求方式
	print('请求方式: ',request.method)
	if request.method == 'POST':
		# 请求体
		print('获取请求头: ', request.META.get('HTTP_AUTHORIZATION'))   //例子: {"authorization":123}
		#请求体
		print('获取请求体: ',request.body)
		# 默认接收from-data类型
		print('指定请求参数: ', request.POST.get("name",'获取不到参数默认我这个'))
		# 接收json类型的写法
		print(json.loads(request.body.decode('utf-8')).get("name"))
	return HttpResponse('login success!')
    //HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)


# uri:getIndex/
def getIndex(request):
	# 请求方式
	print('请求方式: ',request.method)
	if request.method == 'GET':
		#获取cookies信息
		print('获取cookie:',request.COOKIES.get('user', '获取不到参数默认我这个'))
		# 获取请求参数 ?name=123
		print(request.GET.get("name",'获取不到参数默认我这个'))
	#返回消息并写入cookie信息
	response=HttpResponse('login success!')
	response.set_cookie('user', 'test', 3600)
	return response
            
            
from django.http import HttpResponse, HttpResponseRedirect
return HttpResponseRedirect('/event_manage/')   #重定向目录,即让他去项里urls文件里面找对应地址

from django.shortcuts import render
return render(request,"index.html")  访问地址后直接访问这个文件

重定向
def response(request):
    return redirect('/get_header')

记得去url.py设置链接映射关系

urlpatterns = [
    path('admin/', admin.site.urls),
    path(r'getIndex', views.getIndex),
    path(r'postIndex', views.postIndex),
]

 

响应前端已json格式

from django.http import HttpResponse, JsonResponse
#接口回复json的api
def get_result_by_taskid(request):
        return JsonResponse({'status': "123"})

这个有空试试可不可以用 drf的序列化组件 https://www.cnblogs.com/kaibindirver/p/13264461.html

 

设置请求码

 def get(self, request):
        return HttpResponse("123",status=200)

 

 

接收 如果想从URL中获取值http://127.0.0.1:8000/18/188/

urls.py

from django.urls import path
from book.views import goods
urlpatterns = [
    path('<cat_id>/<goods_id>/',goods)
]

view.py

from django.http import JsonResponse
def goods(request,cat_id,goods_id):
    return JsonResponse({'cat_id':cat_id,'goods_id':goods_id})

 

参考: https://blog.51cto.com/u_15349841/5437616

posted @ 2022-10-08 19:28  凯宾斯基  阅读(50)  评论(0)    收藏  举报