007---Django的视图层
视图函数
一个视图函数,简称视图,是一个简单的python函数。它接收web请求并且返回web响应.
1、一张网页的HTML内容
2、一个重定向
3、一个404错误
4、一个xml文档
5、一个字符串
def current_time(request):
"""
1、首先,我们从django.shortcuts模块导入了HttpResponse类。以及Python的datetime库
2、然后,定义了current_time函数,这个函数就是视图函数,每个函数都会有第一个参数request,通常称之为request。
视图函数的名称不重要,能反应其功能就ok
3、这个视图函数会返回一个HttpResponse对象。
:param request: request 接收请求
:return: HttpResponse 返回响应
"""
now = datetime.datetime.now()
html = "<html><body>当前时间:%s</body></html>" % now
return HttpResponse(html)
无论视图本身包含什么逻辑,都要返回响应。
视图层,熟练掌握;两个对象即可:请求对象(request)和响应对象
HttpRequest对象
request属性
def index(request):
# 请求方式
print(request.method) # 最常见的有GET、POST两种
# 请求数据 django的内置数据类型,其实跟python的字典一样,get取值
# 判断是否是POST方法,不能用if request.POST:pass 应该使用if request.method == 'POST':pass
# 还有一些键值对是多个值的时候,比如说checkbox,select标签就要用request.POST.getlist('hobby')来取值
print(request.GET) # <QueryDict: {'name': ['1'], 'age': ['2']}>
print(request.POST) # <QueryDict: {'name': ['111'], 'age': ['222']}>
# 请求路径 一个字符串 不包含域名
'''
url:协议://ip:port/路径/?参数
'''
print(request.path) # /index/
print(request.path_info) # 和path类似。最后使用这个
# 文件
file_obj = request.FILES # request.FILES获取上传文件信息 只有在POST切form带有enctype="multipart/form-data" 的情况下才会
# 包含数据。否则,FILES 将为一个空的类似于字典的对象。
print(file_obj) # 获取文件名称 file_obj.name
# request.COOKIES 一个标准的python字典,包含所有的cookie。键值都是字符串
# request.session 一个既可读又可写的类似于字典的对象,表示当前的会话。只有当Django 启用会话的支持时才可用。和cookie一样,都是会话相关
# request.user 用户认证组件下使用,可用来判断用户是否登陆
# 方法
print(request.get_full_path()) # /index/?name=1&age=2 有路径 还有携带的参数
print(request.is_ajax()) # 判断请求方式是否为ajax发起的 bool
print(request.get_host()) # 获取用户ip和端口
python = 'Hello Python'
# return HttpResponse("<h1 style='color:red'>1314</h1>")
return render(request, 'index.html', {"python": python})
HttpResponse对象
响应对象主要有三种形式:
1、HttpResponse()
2、render()
3、redirect()
HttpResponse()括号内直接跟一个具体的字符串作为响应体,比较直接很简单。所以介绍后两种形式
render
render(request, template_name[, context])
参数:
request:用于生成响应的请求对象
template_name:要使用的模版的完整名称,可选
context:一个字段,添加到模版上下文的字典,视图将在渲染模版之前调用它。
作用:render()就是将一个模版页面的模版语法进行渲染,最终渲染成一个html响应体。
redirect
传递一个重定向的硬编码url 也可以是一个reverse反向解析的url
return redirect('/some/url')
007---Django的视图层的更多相关文章
- 03-01 Django之视图层
Django之视图层 一 视图函数 视图函数,简称视图,属于Django的视图层,默认定义在views.py文件中,是用来处理web请求信息以及返回响应信息的函数,所以研究视图函数只需熟练掌握两个对象 ...
- 4、Django之视图层
一 视图函数 视图函数,简称视图,属于Django的视图层,默认定义在views.py文件中,是用来处理web请求信息以及返回响应信息的函数,所以研究视图函数只需熟练掌握两个对象即可:请求对象(Htt ...
- python 全栈开发,Day69(Django的视图层,Django的模板层)
昨日内容回顾 相关命令: 1 创建项目 django-admin startproject 项目名称 2 创建应用 python manage.py startapp app名称 3 启动项目 pyt ...
- Django框架(四) Django之视图层
视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . ...
- 6 Django 的视图层
视图函数 一个视图函数,简称视图,是一个简单的 Python 函数,它接受 Web 请求并且返回 Web 响应.响应可以是一张网页的 HTML 内容,一个重定向,一个 404 错误,一个 XML 文档 ...
- 关于Django的视图层
视图函数 通俗来讲:视图函数是在url配置是所匹配好了将要调用的对应函数(逻辑代码) 是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容 ...
- 6 Django的视图层
视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . ...
- Django之路——4 Django的视图层
一个视图函数简称称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何 ...
- Django之视图层
一.视图函数 一个视图函数,简称视图,是一个简单的python函数,接收web请求并返回web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误等.在函数中必须写一个request的参 ...
- Django 的视图层
什么是视图: 之前我们也了解了urls路由 那么路由的主要作用是决定你下一步走哪个视图函数 ,视图就是用来存放一个个的函数的python文件,主要存储的函数就是你Django主要的流程的控制 都存放在 ...
随机推荐
- iDempiere 使用指南 采购开票付款流程
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- Refactoring in Coding
Make changes on existing code for subsequent and constant changes of requirement. Reference:http://w ...
- EF--payload or not
负载加载非负载加载适用于多对多场境. 一.非负载(payload-free)加载 1.1创建表 create table Album ( AlbumId ,), AlbumName ) ) creat ...
- Linux 下安装使用 oh-my-zsh
Ubuntu 下安装 oh-my-zsh 安装 zsh sudo apt install zsh 安装 git(如果你的系统没有自带的话) sudo apt install git 安装 oh-my- ...
- windows10下 Jupyter 添加anaconda环境
参考:https://blog.csdn.net/weixin_39934500/article/details/79138235 首先查看 anaconda下的环境信息 conda env lis ...
- 还是要精简开发呀,VS2015太大,VS2010不想装
公司电脑配置没有很好,所以对于我就是一个挑战. vs2015装上了,但是一打开就卡卡卡,基本没法办公. 公布能用记事本吧,太多不方便: Notepad++做辅助的局部修改还是很好用的,装上插件就智能提 ...
- php中增删改查以及返回结果(一)
虽然毕业后找的第一份正式的工作并不那么令人满意,但是在度过最初的迷茫期后,自己还是决定成为一个程序猿. 最近也是利用上班偶尔闲下来的时间,开始看书,撸代码,写一些小程序. 这两个礼拜主要的写的都是有关 ...
- nginx缓存批量清除
研究了一段时间的缓存清除,说说了解的三种方式吧. 1. 原始的只增加缓存模块的,根据访问的路径一条条清除. 根据此方式要进行批量清除的话,必须在设定的缓存目录下通过自己写的程序来读取ng ...
- 2017.9.16 Web 应用开发环境搭建与开发工具安装
1.JDK的下载与安装 1.1 在网址:http://javase/downloads/index.jsp网站下载最新的JDK版本 1.2 安装jdk,双击下载好的.exe文件运行,一般默认安装在c盘 ...
- redis redis的连接
昨天2017年12月26日,我刚刚从网上下载了redis.经过一天的摸索,踩了不少坑.昨天下午,比较磕磕巴巴,今天早上 终于比较完善地完成了一次小操作. 使用cmd的重要步骤 1.输入redis-se ...