django中request相关用法
URL相关信息:
HttpRquest对象包含当前请求url的一些信息,通过这些信息,你可以获得正在访问这个页面的用户,或者使用的浏览器:
- request.path :除域名以外的请求路径,以正斜杠开头,例:“/hello/”
- request.get_host() : 主机名或者域名,例:"127.0.0.1:8000" or “https://github.com”
- request.get_full_path() :请求路径,可能包含查询字符串,例:“/hello/?print=true”
- request.is_secure() :如果通过https访问,则此方法返回true,否则返回false。
request的其他信息:
request.META 是一个python字典,包含了所有本次http请求的header信息,比如用户ip地址、用户Agent(通常是浏览器的名称和版本号)。 注:header信息完整列表取决于用户所发送的header信息和服务器端设置的header信息。这个字典中常见的键值如:
- HTTP_REFERER :进站前链接网页,如果有的话,(需要注意:它是REFERRER的笔误)
- HTTP_USER_AGENT : 用户浏览器的user-agent字符串。 例如:"Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.8.1.17)Gecko/20080829 Firefox/2.0.0.17" 3.REMOTE_ADDR :客户端ip,如:“127.0.0.1” ,若申请是经过代理服务器的话,那么它可能是以逗号分隔的多个ip地址。如:"12.345.67.89,23.456.78.90" 注:因为request.META是一个普通的python字典,因此当视图访问一个不存在的键时,会触发一个KeyError异常。(HTTP header信息是由用户的浏览器所提交的、不应该给予信任的“额外”数据,因此你总是应该好好设计你的应用以便当一个特定的Header数据不存在时,给出一个优雅的回应。)你应该用 try/except 语句,或者用Python字典的get()方法来处理这些“可能不存在的键”:
#### BAD!
def ua_display_bad(request):
ua = request.META['HTTP_USER_AGENT'] # Might raise KeyError!
return HttpResponse("Your browser is %s" % ua) #### GOOD (VERSION 1)
def ua_display_good1(request):
try:
ua = request.META['HTTP_USER_AGENT']
except KeyError:
ua = 'unknown'
return HttpResponse("Your browser is %s" % ua) #### GOOD (VERSION 2)
def ua_display_good2(request):
ua = request.META.get('HTTP_USER_AGENT', 'unknown')
return HttpResponse("Your browser is %s" % ua)
django中request相关用法的更多相关文章
- django中request对象详解(转载)
django中的request对象详解 Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将 HttpRequest对象 作为第一个参数传入该函数. ...
- 详解Django中Request对象的相关用法
原文链接:http://www.jb51.net/article/69624.htm 1.从Request对象中获取数据 我们在第三章讲述View的函数时已经介绍过HttpRequest对象了,但当时 ...
- Django中模板的用法简介
1. 模板系统的介绍 Django作为一个Web框架,其模板所需的HTML输出静态部分以及动态内容插入 模板由HTML代码和逻辑控制代码构成 Django框架的模板语言的语法格式: {{var_nam ...
- Django 中form的用法
form的主要作用:1.在html中生成表单框架,2.验证数据(实话实说,很简洁,但不实用,灵活性差) from django.db import models # Create your model ...
- django中tag的用法
在app里建一个子的python包,包含__init__.py,包名为templatetags,里面新建一个tags.py(这个名字可以随意) from django import templater ...
- JAVA中request.getParameterMap()用法笔记
一. 根据Java规范:request.getParameterMap()返回的是一个Map类型的值,该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系.这个返回值有个特别 ...
- Ionic3,装饰器(@Input、@ViewChild)以及使用 Events 实现数据回调中的相关用法(五)
标题栏的渐变效果 使用到的相关装饰器.Class以及相关方法:@Input.@ViewChild.Content.ionViewDidLoad ① @Input 装饰器:用来获取页面元素自定义属性值. ...
- Django中_Meta 部分用法
周一了,就不长篇大论了,给大家分享一个很实用的知识点,希望大家周末过得开心,愉快,诗和远方在等着你们.而我还在苦逼的撸代码,只为了应付眼前的苟且! model.UserInfo._meta.app_l ...
- django中're_path'的用法
1.re_path和path的作用是一样的.只不过're_path'是在写url的时候可以用正则表达式,功能更加强大.2.写正则表达式都推荐使用原生字符串.也就是以‘r’开头的字符串:r'move/' ...
随机推荐
- HDU 1074 Doing Homework (状态压缩DP)
Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- day4--老Word模板使用指南
Word常用快捷键 Ctrl + 1 一级标题 Ctrl + 2 二级标题 Ctrl + 3 三级标题 Ctrl + 5 代码块输入 Ctrl + 6 正文输入 专业的排版,一定要规范,目录,生成目录
- 使用Docker安装Mysql
最近使用阿里云服务器,学习一下Docker,今天学着使用Docker安装MySQL. 首先,从阿里云的Docker Hub 上pull一个MySQL的image. [centos@loovelj~]$ ...
- 在C#中interface与abstract class的区别
1)在继承抽象类时,必须覆盖该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值,这一点与接口相同. 2)当父类已有实际功能的方法时,该方 ...
- 函数chdir、fchdir和getcwd
函数chdir.fchdir和getcwd chdir.fchdir函数 每个进程都有一个当前工作目录,当前目录是进程的一个属性 当用户登录UNIX系统时,其当前工作目录通常是口令文件 ...
- [转]ORACLE SQL解析之硬解析和软解析
http://blog.chinaunix.net/uid-25909722-id-3363789.html 当客户端进程,将SQL语句通过监听器发送到Oracle时, 会触发一个Server pro ...
- Go环境搭建
Linux系统golang环境搭建 1.下载安装包go1.8.linux-amd64.tar golang安装包下载地址:https://golang.org/dl/ ( 有可能被FQ) 2.解 ...
- Python基础-数据类型和变量
数据类型 python中包含6种标准数据类型:1.Number 数值类型2.String 字符串类型3.List 列表类型4.Tuple 元祖类型5.Dict 字典类型6.Set 集合类型 注意:除了 ...
- 那些年我们写js烦的不疼不痒的错误
1.Js 字符变量不加双/单引号. 列如:var strJsonInfo = '@Html.Raw(ViewBag.JsonInfo)'; 2.js 对象初始化器,最后一个属性值加逗号. 例如:var ...
- “战术竞技类”外挂打击已开始!揭秘腾讯We Test游戏安全服务新动作!
商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. 原文链接:http://wetest.qq.com/lab/view/353.html We Test导读 国服PUBG的游戏安全将由我 ...