django路由views.py详解_Django学习笔记(五)-python3

django路由views.py详解_Django学习笔记(五)-python3

1.  http请求产生的对象

django路由views.py详解_Django学习笔记(五)-python3_第1张图片

2.HttpRequest

a. 表单提交

1. method=get 表单提交

附:需要表单验证 -{% csrf_token %}

django路由views.py详解_Django学习笔记(五)-python3_第2张图片

上图:静态页面

django路由views.py详解_Django学习笔记(五)-python3_第3张图片

上图:views.py 方法接收传递值

1. method=post 表单提交

附:需要表单验证 -{% csrf_token %}

django路由views.py详解_Django学习笔记(五)-python3_第4张图片

上图:页面form表单以post方式提交

django路由views.py详解_Django学习笔记(五)-python3_第5张图片

上图:处理form表单post方式提交的值

常见参数:

HttpRequest代表一个来自uesr-agent的HTTP请求。

大多重要的请求信息都是作为HttpRequest 对象的属性出现(see Table H-1). 除了session外,其他所有属性都是只读的。

path

请求页面的全路径,不包括域名—例如, "/music/bands/the_beatles/"。

method

请求中使用的HTTP方法的字符串表示。全大写表示。例如:

if request.method == 'GET':

do_something()

elif request.method == 'POST':

do_something_else()

GET

包含所有HTTP GET参数的类字典对象。参见QueryDict 文档。

POST

包含所有HTTP POST参数的类字典对象。参见QueryDict 文档。

服务器收到空的POST请求的情况也是有可能发生的。也就是说,表单form通过HTTP POST方法提交请求,但是表单中可以没有数据。因此,不能使用语句if request.POST来判断是否使用HTTP POST方法;应该使用if request.method == "POST" (参见本表的method属性)。

注意: POST不包括file-upload信息。参见FILES属性。

COOKIES

包含所有cookies的标准Python字典对象。Keys和values都是字符串。参见第12章,有关于cookies更详细的讲解。

FILES

包含所有上传文件的类字典对象。FILES中的每个Key都是标签中name属性的值. FILES中的每个value 同时也是一个标准python字典对象,包含下面三个Keys:

filename: 上传文件名,用Python字符串表示

content-type: 上传文件的Content type

content: 上传文件的原始内容

注意:只有在请求方法是POST,并且请求页面中有enctype="multipart/form-data"属性时FILES才拥有数据。否则,FILES 是一个空字典。

META

包含所有可用HTTP头部信息的字典。 例如:

CONTENT_LENGTH

CONTENT_TYPE

QUERY_STRING: 未解析的原始查询字符串

REMOTE_ADDR: 客户端IP地址

REMOTE_HOST: 客户端主机名

SERVER_NAME: 服务器主机名

SERVER_PORT: 服务器端口

META 中这些头加上前缀HTTP_最为Key, 例如:

HTTP_ACCEPT_ENCODING

HTTP_ACCEPT_LANGUAGE

HTTP_HOST: 客户发送的HTTP主机头信息

HTTP_REFERER: referring页

HTTP_USER_AGENT: 客户端的user-agent字符串

HTTP_X_BENDER: X-Bender头信息

user

是一个django.contrib.auth.models.User 对象,代表当前登录的用户。如果访问用户当前没有登录,user将被初始化为django.contrib.auth.models.AnonymousUser的实例。你可以通过user的is_authenticated()方法来辨别用户是否登录:

if request.user.is_authenticated():

# Do something for logged-in users.

else:

# Do something for anonymous users.

只有激活Django中的AuthenticationMiddleware时该属性才可用

关于认证和用户的更详细讲解,参见第12章。

session

唯一可读写的属性,代表当前会话的字典对象。只有激活Django中的session支持时该属性才可用。 参见第12章。

raw_post_data

原始HTTP POST数据,未解析过。 高级处理时会有用处。

原文出自:http://blog.csdn.net/liu_yanna/article/details/50174851

3.HttpRespons

1. 页面访问传值的方式:

a.  django默认传值render(request对象,views页面,{'key':value})

需导入:fromdjango.shortcutsimportrender

如图:

django路由views.py详解_Django学习笔记(五)-python3_第6张图片

举例:

deftest(request):

key = request.POST.get('key')

returnrender(request,'index.html',{'key':key})

b. django传值template 传值

需导入:fromdjango.templateimportloader

fromdjango.httpimportHttpRequest, HttpResponse

如图:

django路由views.py详解_Django学习笔记(五)-python3_第7张图片

举例:

defblog(request, a):

users = User.objects.all()

view = loader.get_template('index.html')

c  = {'users':users}

returnHttpResponse(view.render(c,request),

content_type="text/html")

。c. django传值 render_to_response(views页面,{'key':value})

需导入:fromdjango.shortcutsimportrender_to_response

如图:

举例:

defblog(request, a):

print(a)

users = User.objects.all()

returnrender_to_response('index.html', {'users': users})

。d. django方法跳转redirect(views页面,{'key':value})

需导入:fromdjango.shortcutsimportrender,redirect

如图:

django路由views.py详解_Django学习笔记(五)-python3_第8张图片

举例:

defblog(request, a):

print(a)

users= User.objects.all()

returnredirect('/index/12/sadsa')

defindex(request, id, key):

print(id)

print(key)

returnrender(request,'index.html')

。e. django页面传值快捷函数render_to_response('index.html',locals())

如图:

注释:locals()这个函数表示将方法blog模块里面所有的变量

你可能感兴趣的:(django路由views.py详解_Django学习笔记(五)-python3)