首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DjangoRestFramework,序列化组件、视图组件

一种常见的使用场景就是Model中存在user_id作为外键,在用户提交,不允许提交user_id,但user_id定义Model又是必须字段,这种情况下就可以使用HiddenField提供一个默认值...需要注意,如果没有显式使用default参数,则当指定allow_null=True序列化过程中将会默认default=None,但并不会在反序列化时也默认。...dict,可以指定一些验证字段错误信息,如: mobile= serializers.CharField(max_length=4, required=True, write_only=True...等基础校验之外,还会会根据咱们写的这个序列化组件中设置的字段中有read_only=True属性的字段排除掉,这也是为什么我们面写多对多和一对多字段,如果字段名称和model表中多对多或者一对多的字段名称相同...使用这个序列化组件,即便是这个字段的名字和数据表中字段名字相同,也是没有问题的,只有在用户提交数据保存的时候才会有问题,所以最好的解决方式就是加read_only属性,并且改一下字段名字,不要和数据表中这个字段的名字相同

2.6K20

Django请求和响应对象

Django请求和响应对象 Django 使用请求和响应对象系统中传递状态。 当一个页面被请求Django 会创建一个 HttpRequest 对象,这个对象包含了请求的元数据。...例如,请求头里的X-CSRFTokenMETA中变为HTTP_X_CSRFTOKEN. 中间件设置的属性 Django 的 contrib 应用中包含的一些中间件会在请求中设置属性。...QueryDict对象 一个 HttpRequest 对象中, GET 和 POST 属性django.http.QueryDict 的实例,这是一个类似字典的类,用来处理同一个键的多个值。...如果你想让 cookie 只使用 https 方案进行请求才发送给服务器,请使用 secure=True。...使用 samesite=‘Strict’ 或 samesite=‘Lax’ 来告诉浏览器执行跨源请求不要发送这个 cookie。

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

Django MVT之V

视图的第一个参数必须是HttpRequest对象(一般定义视图,参数写request),django.http模块中定义了HttpRequest对象API。...如果为None则表示使用浏览器的默认设置,一般为utf-8。 这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值。...QueryDict对象 HttpRequest对象的GET和POST属性都是QueryDict类型的对象,该类型定义django.http.QueryDict中。...django.http模块中定义了HttpResponse对象API。HttpRequest对象Django框架自动创建,HttpResponse对象则由开发人员创建。...'), ] 浏览器中使用js发起ajax请求,返回json格式的数据,此处以jquery的get()方法为例。

1.9K20

Django 2.1.7 视图 - HttpReqeust对象、QueryDict对象

关于视图的篇章 Django 2.1.7 视图 Django 2.1.7 MVT模型示例 - 查询数据,返回渲染模板数据 Django 2.1.7 视图 - 自定义404错误、500错误 在前面的篇章基本讲述了视图的使用...视图的第一个参数必须是HttpRequest对象django.http模块中定义了HttpRequest对象API属性 下面除非特别说明,属性都是只读的。...session:一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django 启用会话的支持才可用。 运行服务器,浏览器中浏览首页,可以浏览器“开发者工具”中看到请求信息如下图: ?...form表单请求,method方式为post则会发起post方式的请求,需要使用HttpRequest对象的POST属性接收参数,POST属性是一个QueryDict类型的对象。...答:表单控件name属性的值作为键,value属性的值为值,构成键值对提交。 如果表单控件没有name属性则不提交。

1.5K20

详解python django面向关系数据库的ORM对象映射系统(1)

例如: Article.objects.filter(title=’xxx’).filter(type=1).distinct() 同时,QuerySet对象还具有“懒执行”的效果,只要没有真的使用查询出的行中数据...通常,我们可以Model基类中提供一个方法或者成员,返回一个包含QuerySet中方法的对象(QuerySet表示若干行,所以此时不能直接返回QuerySet),而django选择提供一个成员叫objects...这里要插一句:python使用meta元类的规则是首先在当前类中查找是否使用元类,如果没有,再依次去父类中查看是否使用元类,若查找到显式指定的元类,则直接使用该元类创建类,若未找到,则使用默认的type...所以,虽然用户描述表的Model类并没有使用元类,但仍然隐式得通过基类django.db.models.base.Model类使用了上面的ModelBase元类。..._meta.managers_map[self.manager.name] 因为__get__方法的instance其实是调用objects的对象,如果通过类调用,例如Article.objects

1.2K20

Django 之视图篇

API 属性 下面除非特别说明,属性都是只读的 path: 一个字符串,表示请求的页面的完整路径,不包含域名 method: 一个字符串,表示请求使用的HTTP方法,常用值包括: 'GET', 'POST...' encoding: 一个字符串,表示提交的数据的编码方式 如果为None则表示使用浏览器的默认设置,一般为utf-8 这个属性是可写的,可以通过修改它来修改访问表单数据使用 GET: 一个类似于字典的对象...XMLHttpResponse发起的,则返回True QueryDict对象 定义django.http.QueryDict request对象属性GET、POST都是QueryDict类型的对象...404 default.page_not_found(request, template_name='404.html') 系统引发Http404触发 默认传递request_path变量给模板,即导致错误的...方法,按照请求方法对请求进行分发,如果该 方法没有定义,则引发HttpResponseNotAllowed 类属性使用 类定义直接覆盖 调用as_view的时候直接昨晚参数使用,例如:urlpatterns

1.1K87

Django&DRF重点内容大盘点

,include('users.urls')) ] 1.4url配置 子应用中进行url地址的配置,建议严格匹配开头和结尾,避免地址匹配时候出错。...class Meta: db_table = '' 定义外键属性 hbook = models.ForeignKey(BookInfo, on_delete=models.CASCADE...filter, exclude参数中可以写查询条件 格式: 属性名__条件名=值 注意:可以写多个查询条件,默认是且的关系 F对象 用于查询字段之间的比较 from django.db.models...使用 1)配置文件中设置配置项MEDIA_ROOT='上传文件的保存目录' 2)定义模型类,图片字段的类型使用 ImageField 3)迁移生成表并在admin.py注册模型类,直接登录Admin...='图书') 注意:和对象关联的对象如果有多个,序列化器中定义嵌套序列化字段,需要添加many=True。

5.9K20

浅谈django使用restframework自定义接口与使用的区别

django可以使用restframework快速开发接口,返回前端所需要的json数据,但是有时候利用restframework开发的接口并不能满足所有的需求,这时候就需要自己手动开发接口,也就是将需要用到的某些对象转化为需要使用的...self.content 将你需要转化为字典的字段添加进函数中,当指定外键,”related_name”为指定关系名,用于反向查找,比如通过问卷查找问题,但是问卷模型类中没有question字段,但是...() return JsonResponse(data) 这里继承View类自己定义get方法与post方法处理请求,首先获取到所有的问卷对象将每一个问卷对象通过自定义的函数转化为字典,最后返回json...数据,同样处理post请求添加问卷,首先获取到问卷的标题,然后实例化一个问卷的对象,再将问卷对象保存。...以上这篇浅谈django使用restframework自定义接口与使用的区别就是小编分享给大家的全部内容了,希望能给大家一个参考。

76730

第 3 篇:实现博客首页文章列表 API

django-rest-framework,代码逻辑是一样的,只是最后返回结果,返回资源序列化后的结果。...这些过程 django 默认的视图函数处理 HTTP 请求没有提供的,而经过 api_view 装饰后的视图,则提供了上述全部功能。...401:没有提供身份认证信息 403:没有操作权限 404 :访问的资源不存在 405:不支持的 HTTP 请求方法 500:服务器内部错误 HTTP 请求和响应过程,django-rest-framework...ModelSerializer ,只需要在序列化器的内部类 Meta 中指定关联的模型,以及需要序列化的模型属性django-rest-framework 就会根据各个属性的数据类型,自动推测需要使用的系列化字段...接下来,让我们使用 django-rest-framework 提供的通用类视图,将首页 API 的视图函数改为类视图。

98620

Django实践-09前后端分离开发入门

’:False} 参数 6.基于bpmappers简化对象转字典操作 可能大家已经发现了,自己写代码将一个对象转成字典是比较麻烦的,如果对象属性很多而且某些属性又关联到一个比较复杂的对象,情况会变得更加糟糕...为此我们可以使用一个名为bpmappers的三方库来简化将对象转成字典的操作,这个三方库本身也提供了对Django框架的支持。 安装三方库bpmappers。...可以映射器中排除is_hot属性;也可以通过修改映射器来做到。...使用Vue.js渲染页面 static/html目录下新建api_subjects.html <!...开发阶段,我们通常会使用Django自带的测试服务器,如果要尝试前后端分离,可以先将静态页面放在之前创建的放静态资源的目录下。 总结 本文主要是Django系列博客。

19310

Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤

但是从代码中可以看到: 通过新建列表、其元素为单个商品信息组成的字典,一个一个地添加,显得很麻烦,可进行改进; 有些字段不能直接用json.dumps()方法序列化,如datetime,会报错,如商品列表视图修改为如下...2.serializer序列化model 使用Django自带的model_to_dict()方法可以实现直接将模型数据转化为字典形式,但是对于DateTimeField、ImageField等字段还是无法序列化...显然,序列化了所有字段,并且没有出错。...此时对于商品信息,category显示的对应GoodsCategory模型的主键,当然还可以显示Category的具体信息,此时需要使用嵌套序列化,如下: from rest_framework import...views.py中增加属性: class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): '''商品列表页,

5.3K20

七日Python之路--第十二天(Django Web 开发指南)

添加 class Meta: abstract = True #这样不会创建数据库表,只是用来为其他实体类提供属性而存在的 ---- 唉,刚吃完晚饭。外面竟下起了瓢泼大雨。...只是不再需要 abstract=True 这个 Meta 属性了。 (6)admin !...[0]或kwargs['object_id'] 而不需要再记住 URLconf中的名称了 ##当然 Django1.6中,完全可以不用在URLconf中使用 ?...模板中输出context变量,会隐式的调用unicode方法。如果试图打印没有__unicode__方法的对象模板中是不可见的。...当有关联对象Django会给表单添加一个额外的方法 save_m2m (21)区别于Model ModelForm的Meta嵌套类允许你定义两个可选属性,fields和exclude

1.7K20
领券