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,去写真正的逻辑

原文地址:https://www.cnblogs.com/zhenglai/p/13435030.html