django的 render和 返回httpsresponse的区别
2. View层中的响应方式在Django中主要有3种方式:
(1)返回的是一个HttpResponse对象,可以设定任意的对象类型返回(字符串对象,json格式数据,迭代器对象等)
(2)redirect:表示重定向到指定的一个地址,相当于返回的状态码是301.302(URL重定向)
(3)render:表示的是返回指定配置模板中的静态资源,该操作必须配置settings中的模板路径
小牛的用法
1.在views层用的是render,原因,是返回给指定的写好的,页面,页面去拿各个对应的字段
2.但是 在littlecowclient层的view里面,仍然有用到HttpResponse返回,这个是单个功能,返回给小牛窗口的结果的。
3.找一个功能具体分析一下。如下面的第三张图。这个整个页面,是我画好的,在littlecowweb的views层用的返回render就像上面说的,是返回指定资源的。拿下面的例子,就是我在views层写一个方法这个方法。就是专门去数据库拿,对应用例的对应字段。去填充到写好的,哪个页面的各个位置上的。如 主医生id,输入框,患者用户名,提交按钮,。等这些都是这个功能,在数据库用例的各个字段。
4.而这个功能,的具体逻辑是在client层去写,我在这头页面,的提交按钮,是有表单的,指定的方法路径,就是client层的方法。触发方式是通过用例的url找到逻辑层。
5.而这个逻辑层,用的就是 返回的HttpResponse. 因为是要一个运行结果就行。返回的结果是放在那个,页面的小展示框内的,所以用到了。返回HttpResponse.和上面的说的一样,是可以返回任意格式的。
6.而littlecowclient层,又分了,views和逻辑层,主要是做个小区分。 views层是返回的方法用的是注释,和接受 request 返回 HttpResponse的django的模板格式。那么每个小逻辑,不可能都写在这方法里面,所以单写个逻辑层,去处理。这个views只负责调用小逻辑。然后返回结果用的。区分的更仔细一些而已。如图第四张
(第三张图)
第四张
1.简单的, 就一个文件夹,一个路由,一个views 直接返回给html
2. 细分, 一个文件夹 一个路由,一个views,一个逻辑层, views调用逻辑层代码,结果返回给html
3, 2个文件夹, 一个web的,一个路由分两部分, 一个views写返回给html的代码, 逻辑层,再写个views写各业务返回的httpresponse的结果,在写个逻辑层,可以命名为services,去写真正的逻辑