PyxYuYu/MyBlog

Django学习总结(五)

PyxYuYu opened this issue · 0 comments

If a thing is worth doing it is worth doing well.

0x01 Django

  • Django Blog 学习总结
    • Django Tips
      • HTML 表单一直是交互性网站的支柱,Django 对用户通过表单提交的数据进行访问、有效性检查以及其他处理
      • HttpRequest 对象
        • 每个 views.py 中视图函数的第一个参数必须是 HttpRequest 对象,一般是 request 变量
        • HttpRequest 对象(request)包含当前请求 URL 的一些信息
          • request.path : 除域名以外的请求路径,以斜杠开头,如 /blog/
          • request.get_host() : 主机名(域名),如 127.0.0.1:8000 www.baidu.com
          • request.get_full_path() : 请求路径,可包含查询字符串,如 /blog/?id=1
          • request.is_secure() : 如果通过 HTTPS 访问,则此函数返回 True,否则 False
        • views.py 中视图函数内通过以上函数来得到 URL,可使代码更加灵活,以便重用
        • request.META 是一个 Python 字典,包含了所有本次 HTTP 请求的 Header 信息,如用户 IP 地址、用户 Agent(浏览器名称和版本号)
          • 注意: Header 信息的完整取决于用户所发送的 Header 信息和服务器端设置的 Header 信息
          • 这个字典中常见的键值有:
            • HTTP_REFERRER : 进站前链接的网页
            • HTTP_USER_AGENT : 用户浏览器的 user-agent 字符串
            • REMOTE_ADDR : 客户端 IP(如果申请是经过代理服务器的话,它可能是以逗号分割的多个客户端 IP 地址)
          • 如果访问一个不存在的键时,会触发 KeyError 异常,如果浏览器没有提供其中特定的键值时,比如 HTTP_USER_AGENT 未提供,我们试图去访问,出触发异常,所以这个时候应该用 try...except...来指定异常输出
          • 除了上面的基本元数据(用于描述数据的数据,也叫信息的信息),HttpRequest 对象还有两个重要属性包含了用户所提交的信息:
            • request.GET
            • request.POST
            • 这两个对象都是类字典对象,可以通过它们来访问 GETPOST 数据
            • 类字典对象,就是类似字典,也拥有一些差不多的方法,比如
              # 获取所有的键
              for key in request.GET
            • POST 数据来自 HTML 中的 <form> 标签提交, GET 数据可能来自 <form> 提交也可能是 URL 中的查询字符串
            • POSTGET 不同的是,当提交表单仅仅至需要获取数据时可以用 GET,而当提交表单时需要更改服务器数据的状态,或者发送 email,或者其他不仅仅是获取并显示数据的时候用 POST
      • django.forms
        • 表单框架最主要的用法是为每一个要处理的 HTML<Form> 定义一个 Form 类,这样可以更简便的处理表单验证以及显示