Django学习总结(五)
PyxYuYu opened this issue · 0 comments
PyxYuYu commented
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
- 这两个对象都是类字典对象,可以通过它们来访问
GET
和POST
数据 - 类字典对象,就是类似字典,也拥有一些差不多的方法,比如
# 获取所有的键 for key in request.GET
POST
数据来自HTML
中的<form>
标签提交,GET
数据可能来自<form>
提交也可能是URL
中的查询字符串POST
和GET
不同的是,当提交表单仅仅至需要获取数据时可以用GET
,而当提交表单时需要更改服务器数据的状态,或者发送email
,或者其他不仅仅是获取并显示数据的时候用POST
- 注意:
- 每个
django.forms
库- 表单框架最主要的用法是为每一个要处理的
HTML
的<Form>
定义一个Form
类,这样可以更简便的处理表单验证以及显示
- 表单框架最主要的用法是为每一个要处理的