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

django写接口(入门篇)

请求则保存数据 elif request.method == "POST": # 将 request 参数取出来进行序列化 data = JSONParser...modified_time', 'excerpt'] # exclude 为展示字段名,和 fields 不能同时设置 # exclude = ['id', 'author...post,不存在直接返回 404 NOT FOUND # 如果 settings.py 下 DEBUG 属性设置为 True 的话,django展示 404 页面,设置成 False 即可...获取详情 通过上面的两个例子,我们发现 tags 字段返回信息只有 id,但是很多时候我们需要具体信息,如果只返回一个 id 的话就是说我们还要用 tag id 再去做请求获取具体 tag 信息...,太麻烦了,我们对 model 存在 ForeignKey 和 MaynToMany 链表结构字段做些必要调整,使其能够返回全部信息。

2.8K30

django写接口(优化篇)

DRF Request 和 Response。...Request 继承 HttpRequest,里面有个 request.data 属性,可以处理任意数据,例如 'POST','PUT','PATCH',其用法类似表单 request.POST (...Request 和 Response 我们将分别通过 @api_view,APIView 和通用视图类对 view 进行一些改造 api_view 注解重构 # ....import 省略 # 将该视图请求方法写在注解...在结束文章最后,记录自己写时候遇到一个坑,当更新 ManyToMany 字段时候,我们需要重新写 post 方法,直接传 id 是不能更新,直接传 id 是不能更新,直接传 id 是不能更新...# 假设我们 post 有一个 ManyToMany 字段 tags class PostDetailView(APIView): # 更新时候,需要约定好 ManyToMany

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

Django

,请求之间无关系 # cookie 保存在浏览器上键值对,访问时会自动添加 # 例如:登录,输入密码登陆后,若成功,响应请求,让浏览器保存cookie本机,下次访问会默认带上cookie #...装饰器第一个参数是request,匹配 # 解决方案:form django.utils.decorators import method_decorator # get或post方法上 @...即时sttting中注释了,验证跨站请求,加了本装饰器,也会验证 @method_decorator(csfr_exempt) 即时sttting验证跨站请求,加了本装饰器,也不会验证,即取消跨站验证...在全局 # 操作Django请求和响应模块!...属性 --> 字段 # # Django连接MySQL数据库步骤: # 1. # 手动创建库 # 2. # 配置settings.py数据库连接信息 # 3. # 修改settings.py同目录下

3.4K20

django 1.8 官方文档翻译: 5-1-1 使用表单

除非你计划构建网站和应用只是发布内容而不接受访问者输入,否则你将需要理解并使用表单。 Django 提供广泛工具和库来帮助你构建表单来接收网站访问者输入,然后处理以及响应输入。...Django 会处理表单工作三个显著不同部分: 准备并重新构造数据 为数据创建HTML 表单 接收并处理客户端提交表单和数据 可以手工编写代码来实现,但是Django 可以帮你完成所有这些工作。...我们可能想使用非常复杂字段,以允许用户做类似从日历挑选日期这样事情,等等。 这个时候,让Django 来为我们完成大部分工作是很容易。...这是我们在第一个访问该URL 时预期发生情况。 如果表单提交使用POST 请求,那么视图将再次创建一个表单实例并使用请求数据填充它:form = NameForm(request.POST)。...表单和跨站请求伪造防护 Django 原生支持一个简单易用跨站请求伪造防护。当提交一个启用CSRF 防护POST 表单时,你必须使用上面例子csrf_token 模板标签。

4.2K20

django 博客使用 annotate 统计分类下文章数量

那么 annotate 工作原理究竟是怎么样呢?...在 Post 模型我们通过 ForeignKey 把 Post 和 Category 关联了起来,这时候它们数据库表结构就像下面这样: Post 表: id title body category_id...当 django 要查询某篇 post 对应分类时,比如 post 1,首先查询到它分类 id 为 1,然后 django 再去 Category 表找到 id 为 1 那一行,这一行就是 post...category 1 在 Category 表对应 id 是 1,django 就在 Post搜索哪些行 category_id 为 1,发现前 3 行都是,把这些行取出来就是 category...此外,annotate 方法局限于用于本文提到统计分类下文章数,你也可以举一反三,只要是两个 model 类通过 ForeignKey 或者 ManyToMany 关联起来,那么就可以使用 annotate

2.1K70

Django学习笔记之Queryset详解

注意:这里只是查询Entry表,返回a每条记录只包含Entry表字段值,不管Entrymodel是否有onetoone、onetomany、manytomany字段,都不会关联查询。...不过update()键值对键只能是主表字段,不能是关联表字段,如下 Entry.objects.update(blog__name='foo') #错误,无法修改关联表字段,只能修改Entry...聚合函数可以像filter那样关联表,即在聚合函数Django对OneToOne、OneToMany、ManyToMany关联查询及其反向关联提供了相同方式,见下面例子。...数量,字段命名为ut_num,返回QuerySet每个object都有 #这个字段。...,它们每个元素包含若干主表和关联表字段包含任何实体和关联实例,这种情况要用values()和values_list();第四种:返回model instance;第五种:单个值,如aggregate

2.7K30

关于“Python”核心知识点整理大全55

模板 这个模板需要显示主题名称和条目的内容;如果当前主题包含任何条目,我们还需向用 户指出这一点: topic.html {% extends 'learning_logs/base.html...如果请求方法不是POST请求就可能是GET, 因此我们需要返回一个空表单(即便请求是其他类型,返回一个空表单也不会有任何问题)。...由于实例化TopicForm时我们没有指定任何实参,Django将创建一个可供用户 填写空表单。 如果请求方法为POST,将执行else代码块,对提交表单数据进行处理。...函数is_valid() 核实用户填写了所有必不可少字段(表单字段默认都是必不可少),且输入数据与要求 字段类型一致(例如,字段text少于200个字符,这是我们在第18章models.py...这 种自动验证避免了我们去做大量工作。如果所有字段都有效,我们就可调用save()(见), 将表单数据写入数据库。保存数据后,就可离开这个页面了。

12510

Django教程(二)- Django视图与网址进阶1. HTML表单2.CSRF3.代码操作

在返回 HTTP 响应 cookie 里,django 会为你添加一个 csrftoken 字段,其值为一个自动生成 token 在所有的 POST 表单时,必须包含一个 csrfmiddlewaretoken...字段 (只需要在模板里加一个 tag, django 就会自动帮你生成,见下面) 在处理 POST 请求之前,django 会验证这个请求 cookie 里 csrftoken 字段值和提交表单里...在所有 ajax POST 请求里,添加一个 X-CSRFTOKEN header,其值为 cookie 里 csrftoken Django 里如何使用 CSRF 防护: 首先,最基本原则是...也就是说任何处理 GET 请求代码对资源访问都一定要是“只读“。...修改项目中urls.py 把新定义app加到settings.pyINSTALL_APPS 测试: ? 输入正确用户名和密码: ? 反之: ?

4.3K40

37.Django1.11.6文档

如果使用POST请求提交表单,该视图将再次创建一个表单实例,并使用请求数据填充表单:形式 = NameForm(request.POST)这被称为“将数据绑定到表单”(现在是绑定形式)。...如果renderer是None,则使用FORM_RENDERER设置渲染器。 在Django更改1.11: 添加了renderer参数。 支持不接受子类将在Django 2.1被删除。...记住 prefix 在POST请求和非POST 请求均需设置,以便他能渲染和执行正确 (11)表单和字段验证 表单验证发生在数据验证之后。 ...这个方法返回任何东西且不应该改变任何值。 当你遇到不可以或不想放在validator 验证逻辑时,应该覆盖它来处理验证。...Paginator.page()放回在所请求页面无效(比如不是一个整数)时,或者包含任何对象时抛出异常。

24.2K80

PythonWeb框架之Django

它可以与任何客户端框架一起工作,并且可以提供几乎任何格式(包括 HTML,Rss源,JSON,XML等)内容。你正在阅读网站就是基于Django。...在传统数据驱动网站,Web应用程序会等待来自Web浏览器(或其他客户端)HTTP请求,当接收到请求时,应用程序根据URL和可能Post数据或GET数据信息确定需要内容,根据需要,可以从数据库读取或写入信息...其他任何情况下,模版继承都将无法工作,模板渲染时候django都不知道你在干啥。 在base模版设置越多 {% block %} 标签越好。...ORM参数 (1)null 如果为True,Django 将用NULL 来在数据库存储空值。 默认值是 False. (1)blank 如果为True,该字段允许填。...如果你没有指定任何一个字段primary_key=True, Django 就会自动添加一个IntegerField字段做为主键,所以除非你想覆盖默认主键行为, 否则没必要设置任何一个字段primary_key

2.5K50

Django-choices字段值对应关系(性别)-MTV与MVC科普-Ajax发json格式与文件格式数据-contentType格式-Ajax搭配sweetalert实现删除确认弹窗-自定义分页器

目录 models 字段补充 choices 参数/字段(用很多) MTV与MVC模型 科普 Ajax 发送 GET、POST 请求几种常见方式 用 Ajax 做一个小案例 准备工作 动手用 Ajax...自定义分页器 批量插入测试数据 bulk_create 分页 使用最终版实现分页器 models 字段补充 choices 参数/字段(用很多) 用户性别、用户学历、工作状态、婚否(可限范围内可以罗列出来...发送 GET、POST 请求几种常见方式 a 标签 href 属性 GET请求 直接在浏览器窗口输入 url 敲回车 GET请求 form 表单提交...(这一特点给用户感觉是在不知不觉完成请求和相应过程) 用 Ajax 做一个小案例 页面上有三个 input 框,在前两个 input 框输入数字,点击按钮发送 ajax 请求,在刷新页面的情况下...,在第三个框自动填写两数之和 咱们这里是 jQuery ajax,别忘了先引入 jQuery 准备工作 新建一个项目,完成基本配置 因为要用到 post 请求,所以先暂时把 settings

6K30

统计各个分类下文章数

数据库数据聚合 annotate 方法在底层调用了数据库数据聚合函数,下面使用一个实际数据库表来帮助我们理解 annotate 方法工作原理。...当 Django 要查询某篇 post 对应分类时,比如 post 1,首先查询到它分类 id 为 1,然后 Django 再去 Category 表找到 id 为 1 那一行,这一行就是 post...category 1 在 Category 表对应 id 是 1,Django 就在 Post搜索哪些行 category_id 为 1,发现前 3 行都是,把这些行取出来就是 category...因为 num_posts 值小于 1 表示该分类下没有文章,没有文章分类我们希望它在页面显示。关于 filter 函数以及查询表达式(双下划线)在之前已经讲过,具体请参考 分类与归档。...将 Annotate 用于其它关联关系 此外,annotate 方法局限于用于本文提到统计分类下文章数,你也可以举一反三,只要是两个 model 类通过 ForeignKey 或者 ManyToMany

95740

Django 2.1.7 查询数据返回json格式

需求问题 在日常工作,对于前端发送过来请求,后端django大部分都是采用json格式返回,也有采用模板返回视图方式。...在模板返回视图方式的确很方便,但是如果涉及到动静分离、ajax请求这类,django就只能返回json格式数据了。...那么这里就带来了一个问题,如何将django从数据库模型类查询数据以json格式放回前端。 然后前端如果获取读取返回过来数据呢?...,只是获取输入内容,然后点击提交按钮发送一个ajaxpost请求即可。...这样子返回前端的话,每条数据对象包含 fields,model,pk三个对象,分别代表字段、模型、主键,我更想要一个只包含所有字段字典对象。

3K20

django框架菜鸟教程_django框架菜鸟教程

DEBUG 调试模式,创建工程后初始值为True,即默认工作在调试模式下。 作用: 修改代码文件,程序自动重启 Django程序出现异常时,向前端显示详细错误追踪信息....路由解析顺序 Django在接收到一个请求时,从主路由文件urlpatterns列表以由上至下顺序查找对应路由规则,如果发现规则为include包含,则再进入被包含urlsurlpatterns...,即假使客户端进行POST方式请求,依然可以通过request.GET获取请求查询字符串数据。...user:请求用户对象。 path:一个字符串,表示请求页面的完整路径,包含域名和参数部分。 encoding:一个字符串,表示提交数据编码方式。...中间件是一个轻量级、底层插件系统,可以介入Django请求和响应处理过程,修改Django输入或输出。

3K40

Django 多对多字段更新和插入数据实例

普通字段 一对多字段 多对多字段 插入数据 #插入数据 def add(request): G_title=request.POST.get('title')#-------值为:python...从图可以看出生成了三张表,一个是book(书籍)表包含id,title两个字段,一个是author(作者表)包含id,name,email三个字段,这是我们刚刚在models.py文件创建两个模型,但是有一点需要注意是在...从多对多字段删除值(删除多对多关系): ?...,Django允许指定一个用于管理多对多关系中间模型,然后就可以把这些额外字段添加到这个中间模型,具体方法就是在ManyToMany字段中指定through参数指定作为中介中间模型,修改上述models.py...,add(),remove(),create()这些方法都会被禁用,所以在创建这种类型关系时候唯一方法就是通过创建中间模型实例 以上这篇Django 多对多字段更新和插入数据实例就是小编分享给大家全部内容了

4.2K30

Django学习之旅(五)

想到了解更多字段,可以去看下Django源码django.forms.fields这个文件。 然后label这个有什么用呢?我想卖个关子,等会你就知道了。...这是Django提供防止伪装提交请求功能。POST方法提交表格,必须有此标签。 4)在 urls.py 对应写上这个函数 ?...居然有输入框。我们在 forms.html 并没有添加相对应标签和输入框啊。这就是Django强大之处,它会根据forms字段来渲染出相对应控件。 ?...如果你没有填写任何信息,Django页面内部帮你做简单判空处理。 ? 正常输入内容 ? 返回结果如下: ? 2 文件上传 如果你把表单学会了,可以往下学习。...注意request.FILES 只有在请求方法为POST,并且发送请求 拥有enctype="multipart/form-data" 属性时,才会包含数据。否则request.FILES 为空。

65310

浅谈Python Django框架

2) views.py:处理用户发出请求,与urls.py对应, 通过渲染templates网页可以将显示内容,如登陆后用户名,用户请求数据等输出到网页。...4) forms.py:表单,用户在浏览器上输入数据提交,对数据验证工作以及输入生成等工作,也可以不使用。...(max_length=20)   类名代表了数据库表名,且继承了models.Model,类里面的字段代表数据表字段(name),数据类型则由CharField(相当于varchar)、DateField...② 新建 search2.py 文件并使用 search_post 函数来处理 POST 请求: [python] view plain copy from django.shortcuts import...render   from django.views.decorators import csrf   # 接收POST请求数据   def search_post(request):      ctx

2.2K20
领券