• 第5章 URL,HTTP机制和视图


    csrftoken	QKrHLaRIXhoAdeMYSOvkvmqVLXv5nyoZRVqme5fbsEf7F1nhT3oKFSmtp6wYSluE
    sessionid	ftlkhm23nvo1t2einsfqjpxyyt860mvm
    
    <WSGIRequest: GET '/blog/?title=dd&body=ddd'>
    ---------------------
    {'csrftoken': 'QKrHLaRIXhoAdeMYSOvkvmqVLXv5nyoZRVqme5fbsEf7F1nhT3oKFSmtp6wYSluE', 'sessionid': 'ftlkhm23nvo1t2einsfqjpxyyt860mvm'}
    ---------------------
    <class 'django.core.handlers.wsgi.WSGIRequest'>
    <QueryDict: {u'body': [u'ddd'], u'title': [u'dd']}>
    dd
    ddd
    
    
    Cookies和会话(Session):
    
    说完了GET和POST,请求对象里接下来最常用的就是request.COOKIES,它也是一个字典,
    
    代表了存储在请求里的HTTP cookies.
    
    cookies是网页里一种在用户浏览器里存放持久化信息的手段---
    
    大多数网站的认证系统都会用到它。
    
    
    通常来说,大多数cookies都是用来支持一个叫做会话(session)的特性,
    
    这代表一个网页可以向浏览器要求一个能标识用户的值(这个信息可以在用户首次连接网站或是登陆的时候设置),
    
    然后用这个信息来为那个用户提供定制行为的页面。
    
    由于cookies在客户端可以被轻易修改,所以存放关键数据是很不安全的,
    
    
    大多数网站都会选择把信息存放在一个服务器端的会话对象里 只在cookies里保留一个唯一的会话ID。
    
    
    其他服务器变量:
    
    前面讲到的都是请求对象是最常用的属性,不过请求对象里还有很多其他变量,这些变量都是只读的。
    
    path:URL 里域名后的部分,例如,/blog/2007/1/04,这个通常也是URLconf要处理的字符串:
    
     print req.COOKIES
      print req.path
    
    
    {'csrftoken': 'QKrHLaRIXhoAdeMYSOvkvmqVLXv5nyoZRVqme5fbsEf7F1nhT3oKFSmtp6wYSluE', 'sessionid': 'ftlkhm23nvo1t2einsfqjpxyyt860mvm'}
    /blog/
    
    method:"GET"或"POST" 两者之一,表明了这个请求用的是哪一个HTTP请求方法
    
    
    {'csrftoken': 'QKrHLaRIXhoAdeMYSOvkvmqVLXv5nyoZRVqme5fbsEf7F1nhT3oKFSmtp6wYSluE', 'sessionid': 'ftlkhm23nvo1t2einsfqjpxyyt860mvm'}
    /blog/
    GET
    
    
      print req.COOKIES
      print req.path
      print req.method
    
    
    encoding:表妹了用来解码表单提交数据所需的编码字符集的字符串:
    
    
    响应对象:
    
      到此,你已经读入传递视图函数的信息了,现在我们来看看负责返回的响应。
    
    
    对我们来说,响应比请求更简单一点---。
    
    
    最常用的方法就是创建响应对象---HttpResponse接受一个字符串作为构造函数的参数,并将它保存到content里。
    
    
    
      print '------------------------------------------'
      #return HttpResponse(template.render(context, req))
      return HttpResponse("<html>this is a tiny web page!</html>")
    
    
    这样就有了一个完整的响应对象,可以返回给web服务器并转发给用户浏览器了。
    
    
    中间件:
    
    虽然Django应用程序的基本流程还是比较简单的(接受请求,找到适合的视图函数,返回响应),
    
    不过还可以在上面加注更多层次来变得更灵活强大。
    
    
    其中之一就是中间件(middleware)---这些Python函数可以在上述过程里的多个地方执行来改变整个应用程序的输入
    
    
    5.3 视图和逻辑:
    
    
    视图(也叫控制器)是所有Django Web应用程序的核心,因为它们提供了几乎所有的实际的程序逻辑。
    
    
    在定义和使用模型的时候,我们是数据库管理员,在编写模板的时候,我们是界面设计师,
    
    
    而在编写视图的时候,我们才是真正的软件工程师
    
    
    就是Python函数:
    
      本质上来说,Django视图就是Python函数那么简单,对视图函数的唯一要求就是它们必须接收一个
    
    HttpRequest 对象并返回一个HttpResponse对象。
    

  • 相关阅读:
    github代码上传下载慢问题
    React Native环境搭建
    分布式模式之Broker模式
    如何构建技术体系
    https nginx配置
    自我管理--拖延 vs 心理
    idea+maven本地仓库更新问题
    后台服务集群日志管理
    技术男励志圣经
    线段树合并
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349424.html
Copyright © 2020-2023  润新知