Django中request对象与response对象

浏览器向服务器传参数,主要通过以下四种方式

视图函数定义方式

from django.shortcuts import render
from django.http import HttpResponse, JsonResponse
import json

# 1获取URL中的参数
def get_params(request, id, category):
    print(id, category)
    # 2获取查询字符串中的参数
    fquery = request.GET.get('fquery')
    sqquery = request.GET.get('squery')
    print(fquery, squery)
    return HttpResponse('OK')

# 3获取请求体参数
def post1(request):
    # 接收表单数据
    dict1 = request.POST
    id = dict1.get('id')
    categoty = dict1.get('category')
    print(id, category)
    return HttpResponse('接受表单数据成功')

def json1(request):
    # 接受非表单数据
    # 1.接受json数据,类型为Bytes
    json_bytes = request.body
    # 将字节转成字符串
    json_str = json_bytes.decode()
    # 将字符串转成字典
    json_dict = json.loads(json_str)

    title = json_dict.get('title')
    address = json_dict['address']
    print(title, address)

    # return JsonResponse({'title':'hello'})
    return JsonResponse('hello world', safe=False)

# 4获取请求头的参数
def cookie_test(request):
    # cookie的读写操作
    # 写
    response = HttpResponse('ok')
    # response.set_cookie('hello','django',max_age=60*60*24)

    # 读
    hello = request.COOKIES.get('hello')
    print(request.COOKIES)  # {'hello': 'django'}

    print(hello)
    return response

def session_test(request):
    # session的读写操作
    # 写
    # request.session['name'] = 'wanger'
    # 读
    # print(request.session.get('name'))
   
    # 删除某个键及值
    # del request.session['name']
    # 删除所有的键及值
    request.session.clear()
    # 删除整条数据 session唯一标识符也从redis中删除
    request.session.flush()
    return HttpResponse('成功')

JsonResponse是HttpResponse的子类,用来返回json数据,当返回的数据不是json类型时,需要指定参数safe=False

app/urls映射关系的定义

from django.conf.urls import url
from .import views
urlpatterns = [
    # 获取url中的参数,未命名
    # url('^(\d{4})/(\d{2})$', views.get_params),
    # 获取url中的参数,参数命名
    url(r'^(?P<id>\d{4})/(?P<category>\d{2})/$',views.get_params),
    # 获取表单数据
    url(r'^post1/$',views.post1),
    # 获取非表单数据json
    url(r'^json1/$',views.json1),
    # 设置cookie和session缓存
    url(r'^cookie/$',views.cookie_test),
    url(r'^session$',views.session_test),
]

猜你喜欢

转载自blog.csdn.net/w18306890492/article/details/84502410