美文网首页
django路由views.py详解_Django学习笔记(五)

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

作者: a_嗝嗝 | 来源:发表于2017-08-29 14:11 被阅读0次

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

    1.  http请求产生的对象

    2.HttpRequest

    a. 表单提交

    1. method=get 表单提交

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

    上图:静态页面

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

    1. method=post 表单提交

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

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

    上图:处理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

    如图:

    举例:

    deftest(request):

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

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

    b. django传值template 传值

    需导入:fromdjango.templateimportloader

    fromdjango.httpimportHttpRequest, HttpResponse

    如图:

    举例:

    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

    如图:

    举例:

    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学习笔记(五)

          本文链接:https://www.haomeiwen.com/subject/iapodxtx.html