Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Django学习总结(五) #65

Open
PyxYuYu opened this issue Dec 11, 2016 · 0 comments
Open

Django学习总结(五) #65

PyxYuYu opened this issue Dec 11, 2016 · 0 comments
Labels

Comments

@PyxYuYu
Copy link
Owner

PyxYuYu commented Dec 11, 2016

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 类,这样可以更简便的处理表单验证以及显示
@PyxYuYu PyxYuYu added the Django label Dec 11, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant