一、请求
1.路径传参
路由示例
url( r'^route/(?P<a>[a-z]+)/$' , views. ro) ,
视图示例
def ro ( request, a) :
print ( "a=%s" % a)
return http. HttpResponse( "ok" )
2.查询字符串
路由示例
url( r'^query/$' , views. query) ,
视图示例
def query ( request) :
data = request. GET
a = data. get( "a" )
b = data. get( "b" )
alist = data. getlist( "a" )
print ( a)
print ( b)
print ( alist)
return http. HttpResponse( "OK" )
请求示例(可用postman)
# 方式GET
http://127.0.0.1:8000/basics/query/?a=1&b=2&a=3
# 注:ip地址由自己设置而定,随机应变
3.非表单类型
路由示例
url( r'^getbodyjs/$' , views. get_body_js) ,
视图示例
def get_body_js ( request) :
data = json. loads( request. body. decode( ) )
a = data. get( "a" )
b = data. get( "b" )
print ( a, b)
return http. HttpResponse( "OK" )
请求示例
# GET方式
# 可以先在setting中注释掉 'django.middleware.csrf.CsrfViewMiddleware',
http://192.168.230.128:8000/basics/getbodyjs/
# 请求内容:json
{
"a": 1,
"b": 3
}
4.表单类型
路由示例
url( r'^getbody/$' , views. get_body) ,
视图示例
def get_body ( request) :
data = request. POST
a = data. get( "a" )
b = data. get( "b" )
alist = data. getlist( "a" )
print ( a)
print ( b)
print ( alist)
return http. HttpResponse( "OK" )
请求示例
# POST方式
http://192.168.230.128:8000/basics/getbody/
# 表单示例:
key value
a 1
b 2
a 3
5请求头
META[ "CONTENT_TYPE" ]
META[ "REQUEST_METHOD" ]
META[ "CONTENT_LENGTH" ]
META[ "HTTP_ACCEPT_LANGUAGE" ]
META[ "HTTP_REFERER" ]
META[ "HTTP_USER_AGENT" ]
META[ "QUERY_STRING" ]
META[ "REMOTE_ADDR" ]
META[ "REMOTE_HOST" ]
META[ "REMOTE_USER" ]
META[ "SERVER_NAME" ]
META[ "SERVER_PORT" ]
二、响应
1.HttpResponse
路由示例
url( r'^res/$' , views. res) ,
视图示例
def res ( request) :
response = http. HttpResponse( 'django' )
response. status_code = 400
response[ "a" ] = "python"
return response
请求示例
# GET
http://192.168.230.128:8000/basics/res/
# body中可看到django,headers中可看到 a python
子类
HttpResponseRedirect 301
HttpResponsePermanentRedirect 302
HttpResponseNotModified 304
HttpResponseBadRequest 400
HttpResponseNotFound 404
HttpResponseForbidden 403
HttpResponseNotAllowed 405
HttpResponseGone 410
HttpResponseServerError 500
2.JsonResponse
路由示例
url( r'^resjs/$' , views. res_js) ,
视图示例
def res_js ( request) :
return http. JsonResponse( { "name" : "小明" , "age" : 18 } )
请求示例
# GET
http://192.168.230.128:8000/basics/resjs/
# 返回结果
{
"age": 18,
"name": "小明"
}
3.重定向
路由示例
url( r'^red/$' , views. red) ,
视图示例
def red ( reuqest) :
response = redirect( "try/" )
return response
请求示例
# GET
http://192.168.230.128:8000/basics/red/
# try/
重定向至:/basics/red/try/
# /try
重定向至:/try
# /try/
重定向至:/try/
# 没有写try的路由所以会找不到,看后台显示的重定向地址请求即可
4.cookie
路由示例
url( r'^setcookie1/$' , views. set_cookie1) ,
视图示例
def set_cookie1 ( request) :
response = http. HttpResponse( "set cookies" )
response. set_cookie( key= "name" , value= "sad" , max_age= 20 )
return response
请求示例
# GET
http://192.168.230.128:8000/basics/setcookie1/
# 可以看到cookie
获取方式不详述
req = request. COOKIES. get( "name" )
5.session
设置
request. session[ "name" ] = "laoli"
request. session[ "age" ] = 18
获取
name = request. session. get( "name" )
age = request. session. get( "age" )
设置时间
request. session. set_expiry( 10 )
删除
request. session. pop( "name" )
request. session. flush( )