2020/02/28 02-GET和POST调试、模板原理

模板技术是做BS开发绕不掉的,response给用户是一个凑好的html,但是真的要凑一个html太麻烦了。
网页中其实只有一小部分内容是从数据库里找出来的,只要把模板凑好,把这一小部分替换掉就成了

在这里插入图片描述
postman是前端众多调试工具中的一个,如果restful风格的接口开发的时候,往往接口需要调试,这一次采用的前后端分离,调用接口全是restfu风格。用restful风格的接口暴露,来让别人调用功能,这种接口用http暴露出来的,给的是url链接

在这里插入图片描述
这一栏有一个加号
在这里插入图片描述
在这里插入图片描述
使用get方法,左边打点的意思就是修改过的在这里插入图片描述
参数里有id,name,name
在这里插入图片描述
get方法提交参数的方式只有查询字符串的方式,查询字符串是get方法和服务器进行数据交互的一种方式
在这里插入图片描述
查询字符串是通过get方法,post依然可以写字符串,post的那一部分内容在body中,但是如果查询字符串写在url里,本身就是url的一部分,就写在提交的头部分,第一行里,写在了url中,所以get方法,查询字符串是在head中的第一行,post的请求,请求内容是在body中的
在这里插入图片描述
多写一个name会自动解析

在这里插入图片描述

这一块整个是写请求的地方,下面是response
在这里插入图片描述
send方法在这里插入图片描述
get方法就有 了
在这里插入图片描述
现在改成post方法,依然是查询字符串,左边这样就不合适了
在这里插入图片描述
post保存一下

在这里插入图片描述
现在只要一send就变成post了,(上一次使用post,网页里写了很多表单控件,表单控件里面name的出现了三次,name不一定是check box)
在这里插入图片描述
在这里插入图片描述
因为有这个东西存在,返回403阻止了
在这里插入图片描述
pretty是漂亮点的格式
在这里插入图片描述
preview是变成网页
在这里插入图片描述
对post请求做了一个安全性验证机制

在这里插入图片描述
在middleware中间件,把csrf验证注释掉,这样就可以测试了
在这里插入图片描述
点击send,东西是 回来了
在这里插入图片描述
post的之前是方法,然后打了个横杠,然后下面是空的,也就是post内容没有拿到
在这里插入图片描述
因为用的是查询字符串,查询字符串用的是参数
在这里插入图片描述
在body里写,form-data是一个一个写进去
在这里插入图片描述
这次选择row
在这里插入图片描述
把url的查询字符串删除
在这里插入图片描述
send了还是没有

在这里插入图片描述
应该把row的东西放到别的,因为row的东西不在能够解析的范围中,是放在另一个属性中
在这里插入图片描述
现在感觉好像混在一起
在这里插入图片描述
现在算一个
在这里插入图片描述
取消钩就不发了
在这里插入图片描述
提示要用new line来排
在这里插入图片描述
这样改了
在这里插入图片描述
在这里插入图片描述
现在就对了,但是等号还是有点问题
在这里插入图片描述
分隔符是冒号在这里插入图片描述
把等于号改成冒号
在这里插入图片描述
在这里插入图片描述
提交下 数据
在这里插入图片描述
现在就有了

在这里插入图片描述

在这里插入图片描述
body部分可以预览可以用漂亮格式,还可以看head在这里插入图片描述
花了多长时间,大小
在这里插入图片描述
这是response的head,请求的header是我们自己填的在这里插入图片描述
返回的类型是utf-8在这里插入图片描述
请求我们没写header,实际上默认就是用的这种方式,这是默认表单提交方式在这里插入图片描述
这些是提交的数据,放在request中的body部分
在这里插入图片描述
这是定义cookie

在这里插入图片描述
get post是 最常用的方法,开发最常用的就是get和post,head一般做测试用(返回的只有头)。
主要还会用到put和delete,在用restful风格的时候会用,会写put和delete。
get相当于查询,post是insert,put是modified修改,delete 删

在这里插入图片描述
这四种方法加上url,就可以表达出我们想要表达的操作,这种东西就叫restful

在这里插入图片描述
在这里插入图片描述
模版就是为我们构建一个html出来,因为我们自己用拼接字符串的方式太累 了,所谓的模版就是带图带表的html,我们要做的就是从数据库填数据到表里,通过for循环,塞进去

现在这几项信息比较重要,path,getmethod,路径信息以及post都是我们关心的
在这里插入图片描述
django的模版使用自己发明的一种语言,跟orm一样,自己用自己的,django自己的模版语言称为DTL
在这里插入图片描述
模版需要setting,需要告诉别人去哪里找模版,模版按照你指定的路径去找,后台自己找类,会在模版路径当中去找,路径写在第二项DIRS【】这是模版搜索路径列表
APP_DIRS,所有已经注册的app

在这里插入图片描述
也就是这些app。去app的目录下找模版
在这里插入图片描述
改成false,就不去找了,后台admin就找不到模版了,找不到模版直接抛出异常
在这里插入图片描述
路径喜欢这么写,一般在网站跟目录下建个文件夹,把模版塞进去
在这里插入图片描述
用这种路径,os.path是解释器直接加载的,所以省事了,不然要import os.path才能使用
在这里插入图片描述
basedir就是blog12,blog12下的templates在这里插入图片描述
做前后端分离,后端就是提供数据的数据源,前端才是做网页的,(前端用react,js+css前部完成,后端纯粹用django来解决数据的问题,前端通过url访问你,你只要给数据即可,前端拿到数据,由react这些框架把页面绘制出来,这就是前后端分离)

在项目根目录创建一个templates文件夹,里面创建index。html 在这里插入图片描述
直接访问index.html是找不到的 在这里插入图片描述
还没有使用views.py,按照道理index函数是不写在这里的,url是做路由映射的
在这里插入图片描述
现在试试直接用json返回,d构造一个字典
在这里插入图片描述
在这里插入图片描述
虽然传的是json,但是现在是正文部分
在这里插入图片描述
正文部分恰好描述就是json格式的
在这里插入图片描述
看相应头部信息

在这里插入图片描述
现在告诉的是发回来的是json数据
在这里插入图片描述
假如数据返回来,里面可以调用到js,用ajax来调用,用它来访问后台服务,前后端分离就需要用ajax在这里插入图片描述
现在只是返回 了一个纯json数据 在这里插入图片描述
django有模板,可以看下模板里有什么东西可以用
在这里插入图片描述
有几个东西需要使用,1.loader模板加载,把模板加载了,然后我们需要在里面填充数据
在这里插入图片描述
loader有一个get模板
在这里插入图片描述
第一个参数是模板名,后面的参数先缺省值,这就是获得了一个模板对象
在这里插入图片描述
有了模板就不能用json响应了,就需要http响应,先打印整个对象类型,再看看有什么方法
在这里插入图片描述
刷新一下

在这里插入图片描述
告诉你是这么一个类型,django后台的一个类型
在这里插入图片描述
html拿到之后要渲染,这里是假的渲染,把数据拿到后,把html凑出来,真的渲染丢给前端
在这里插入图片描述
刷新一次,现在就出来了

在这里插入图片描述
现在已经把index.html转成str了,要返回回去就要看看类型
在这里插入图片描述
刷新一下
在这里插入图片描述
text估计就是字符串
在这里插入图片描述
能不能把字符串转换二进制
在这里插入图片描述
在这里插入图片描述
现在就把html.encode,放到http响应试试
在这里插入图片描述
所谓的html模板,还是该response还是response,只不过正文来自字符串,字符串来自模板的渲染,模板的渲染相当于对html的模板loader进来,所谓的load只不过就是调用一下文件IO,将HTML读进来(用open方法把里面的东西拿到)要的时候,把里面的内容当字符串给你在这里插入图片描述
现在想把网页做活,往里面添加东西,这里是html的语法。hr可以不必口,但是在react的时候,是JSX,xml的语法一定要有开口就有闭口,这里不是react,忘记react。
写个变量school

在这里插入图片描述
查看在render函数中提供了什么
在这里插入图片描述
有一个上下文,make_context上下文,要用这些内容,根据模板定义,将大字符串拼接而起来

现在就是缺一个上下文对象,变量名和值组织起来就只能使用字典。
如果这样成功,说明你用模板加载好html后,里面有很多空,现在准备填空,填空好后,整个str就准备好了,把str编码直接丢给response就ok了,所以所谓的模板技术就是在拼接字符串。给的空需要用名字找,名字多 了,要管理起来,就用字典

在这里插入图片描述
内容就有了
在这里插入图片描述
现在知道什么是模板了,就是写一个html在里面挖空,空号后,用上下文,字典来填,填好后生成respoonse,大字符串是正文部分,就response回去。
这个时候浏览器看到的已经是拼接好的字符串,这个MIME类型是html,就构建DOM树渲染出来

在这里插入图片描述
这样用起来太累

在这里插入图片描述
看看简单的方法,django有一些快捷的方式,render
在这里插入图片描述
看看render需要什么参数,request请求信息,template_name模板名,context上下文,response的状态码也可以替代

在这里插入图片描述

它连response都想替代
在这里插入图片描述
再次刷新
在这里插入图片描述
一样的效果

在这里插入图片描述
这个就是快捷方法,如果用模板用它就更合适 了,模板最重要的就是掏了什么空,你把空用什么填
在这里插入图片描述
request用不用其实无所谓

在这里插入图片描述
更多的时候是,把request处理生成后,生成一个上下文字典,凑到index模板当中去,然后形成一个大字符串,再response回去
在这里插入图片描述
做前后端分离,render就很少使用了
在这里插入图片描述
模板首先需要告诉路径,要写绝对路径,不然找不到,绝对路经要告诉从哪里开始,base_dir是项目跟目录,这就是一个模板搜索路径的修改
在这里插入图片描述
模板想要复用就放到app_dir(user)
下没放到其他项目里就可以直接用了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个是上下文dict的key,其实是用这个key到上下文字典里去找在这里插入图片描述
模板写好了,要使用,第一步就需要通过文件IO先加载
如果模板有空但是没数据,是否会报错
在这里插入图片描述在这里插入图片描述
没有出下面任何错误
在这里插入图片描述
如果找不到不显示的数据,也就不给你显示而已,数据没了就没了
在这里插入图片描述
首先加载模板,渲染就是真正生成一个返回浏览器端的一个真正html的大字符串,将这些内容直接拿到即可。
第一步load,第二部凑上下文,然后渲染出来得到大字符串,该bytesbytes,该字符串字符串

在这里插入图片描述
提供了一个render方法,只需要把request,模板名给了,就去模板的搜索路径去找,找到之后就会用你的上下文,用字符串拼出来,然后发送出去
在这里插入图片描述
所谓的渲染的目的就是连加载带渲染,生成一个字符串,然后把字符串想办法返回回去,这个就是正文的内容。正文的内容就需要告诉response类型以及状态,这就是satrt_response里要写的内容,start_response在讲wsgi接口的时候,start_response要写什么,start_response要状态,mime文档类型
在这里插入图片描述
loader之后得到一个模板,然后再把模板变字符串,最后把内容返回回去
在这里插入图片描述
模板有django的自己的语言,DTL
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值