本项目用来解决下面几个痛点: 在线表格无法选择 api 供应商 在线表格可能会触发大型批量使用限制 效果展示 GitHub - sandy9707/ai-cellfill-excel 使用方式 首先需要完成配置...,在.config文件里面输入自己的模型 api 和密钥,然后把需要启用的 api 的 ENABLED 改成 true....第三,在没有prompts.xlsx文件的情况下运行python main, 如果包齐全的话会自动生成一个表格,里面含有使用指南和需要填写的信息。...结论 总之,给自己造了个轮子,该说不说其实原来我也喜欢用 json 之类的,但是跟公司打交道多了发现关系型数据库用得多,然后二维表格妙不可言......如果可以结合 teable 之类的数据库型表格就更完美了,但是使用上的复杂度会再高一层,我觉得不好... 引用 GitHub - sandy9707/ai-cellfill-excel
刚开始写views.py模块的代码,一般都是用def定义的函数视图,不过DRF更推荐使用class定义的类视图,这能让我们的代码更符合DRY(Don't Repeat Yourself)设计原则: ?...使用APIView rest_framework.views.APIView是DRF封装的API视图,继承了django.views.generic.base.View: ?...使用generics 如果仔细看snippets/views.py的代码,就会发现我们用到了from rest_framework import generics: ?...这是DRF提供的通用API类视图,mixins只提供了处理方法,views.py中的类要成为视图,还需要继承GenericAPIView,GenericAPIView继承了本文第一小节提到的rest_framework.views.APIView...东方说 学到这里,已经开始感受到了Django REST framework的强大之处了,我觉得学一个框架,不仅要看如何使用,还需要了解它的设计思路和底层实现,这样才能更好的总结为自己的编程思想,写出更漂亮的代码
相反,我们将更新三个特定于Django REST框架的文件,以将数据库模型转换为Web API:urls.py,views.py和serializers.py。...URLs 我喜欢先从URL开始,因为它们是我们API端点的入口点。 就像在传统的Django项目中一样,urls.py文件使我们可以配置路由。...否则,urls.py和views.py文件的行为类似。 Consuming the API 传统上使用API是一个挑战。...但是Django REST框架最令人惊奇的事情之一是,它附带了功能强大的可浏览API,我们可以立即使用它。 如果您发现需要使用API进行更多自定义,则可以使用Postman之类的工具。...处理此问题的最简单方法(以及Django REST框架建议的一种方法)是使用中间件,该中间件将根据我们的设置自动包括适当的HTTP标头。
是DRF封装的API视图,继承了django.views.generic.base.View: 我们用它把函数视图改写成类视图,编辑snippets/views.py: from snippets.models...改了views.py代码后,需要同时修改snippets/urls.py: from django.urls import path from rest_framework.urlpatterns import...使用generics 如果仔细看snippets/views.py的代码,就会发现我们用到了from rest_framework import generics: 和generics.GenericAPIView...: 这是DRF提供的通用API类视图,mixins只提供了处理方法,views.py中的类要成为视图,还需要继承GenericAPIView,GenericAPIView继承了本文第一小节提到的rest_framework.views.APIView...东方说 学到这里,已经开始感受到了Django REST framework的强大之处了,我觉得学一个框架,不仅要看如何使用,还需要了解它的设计思路和底层实现,这样才能更好的总结为自己的编程思想,写出更漂亮的代码
安装好之后,创建一个新的项目django_restful,如下命令所示我是创建在D盘根目录。...api 进入到D:\django_rest\django_restful目录,打开settings.py在项目下创建api和rest_framework。...'rest_framework', 'api', ] rest_framework权限配置 默认的权限策略可以设置在全局范围内,通过DEFAULT_PERMISSION_CLASSES设置。...打开api应用下的views.py文件,编写如下代码: views.py from django.shortcuts import render from django.contrib.auth.models...在UserSerializer和GroupSerializer中定义要返回的字段。 URL路由配置 打开.../django_rest/urls.py文件,添加api的路由配置。
我从2020年开始写博客,一开始以技术笔记类为主,记录一些自己在学习技术过程中遇到的问题,主要有VUE、Django、Django Rest Frameowrk、DevOps等主题。...去年年初chatGPT突然在国内爆火,我也在2月的时候开始在日常工作中使用它来帮助我。大模型使用的越多,就越没有动力再去写技术笔记了。...比如我在这篇博客中写了如何在Django Rest Framework中做认证、权限鉴定和限流等,一个新人如果看到这篇博客,我估计起码要一个小时才能理解这边博客并将其中的内容正确地使用到自己的代码中,但是如果问大模型...以IsAuthenticated为例,在views.py文件中使用: >from rest_framework.permissions import IsAuthenticated >from rest_framework.views...所以,可以看到,我在2023年基本上没有写什么技术笔记类的博客。 但是随着在工作中使用大模型的时间变长之后,我又改变了自己的想法,我觉得还是有必要写技术笔记类博客的。
在django中很著名的一个框架是django-rest-framework,帮我们减少了很多工作量,尤其在序列化与反序列化成我们需要的格式帮了我们省了很多事 在这里就记录一下个人的学习过程 django-rest-framework...实现一组api的基本流程 在models.py中创建自己需要的数据模型 创建serializers.py在其中写出适合的serializer类,能够正确的序列化与反序列化 在views.py中写出合适的...api类,只需要继承rest_framework中generics中的某个类,重写我们需要的方法实现合适的逻辑即可 在urls.py中配置所需要的url 一组api的demo 创建一个model 在创建好的...但很多时候逻辑需要自己处理,必须按照自己的逻辑去复写父类属性 在get方法中的self.request.GET.get(‘test’, None)是取出get方法传递的参数 lookup_field...请注意,使用超链接的API时,您需要确保双方的API意见和串行类设置查找字段,如果你需要使用一个自定义值 在get_queryset()中实现的是按照name查询的,因为很多时候客户端并不知道自己的id
drf介绍 Django REST framework (简称:DRF)是一个强大而灵活的 Web API 工具。 遵循RESTFullAPI风格,功能完善,可快速开发API平台。...官网文档:https://www.django-rest-framework.org Django REST framework 最新版使用要求: Python(3.6、3.7、3.8、3.9...查看操作 DRF序列化器 序列化与反序列化介绍 在日常开发中,会从别的API获取数据或者自己写API提供数据,数据格式一般都是采用JSON格式。...反序列化应用场景示例:从别的API获取数据,在Python里处理。...data获取数据 -> 响应返回前端 反序列化(写数据):视图获取前端提交的数据 -> 数据传入序列化器 -> 调用序列化器的.is_valid方法进行效验 -> 调用序列化器的.save()方法保存数据
从我接触python到现在也就一个星期时间,我用了两天时间自己搭建了一个建议博客小站,哈哈,想想还是挺有成就感的。...我自己的博客小站域名为:www.floweroman.com 因为我自己的网名:'一枝花算不算浪漫', 而floweroman=flower romantic。...教程 代码 上面资源中已经发出了教程以及我自己的源码,感兴趣的朋友可以自行查看,这里不做重点赘述。 域名购买 当我们项目写完的时候我们当然是要挑选一个自己满意的域名。...这里不建议从国内一些网站上购买域名(我一个同事在国内一家网站上购买的域名,最近被GA打电话要求去备案),所以我们直接从外国网站上买,避免一些不必要的麻烦。...代码部署 这里才是今天要讲的重点: 一、 github仓库 把整个django项目上传到github,方便把代码拉到服务器(你也可以使用xftp软件) 二、创建新用户 一般不建议在root用户下进行配置
REST框架是用于构建Web API的功能强大且灵活的工具包。...使用REST框架的一些原因: 该网站可浏览API是你的开发人员一个巨大的可用性胜利; 身份验证策略,包括OAuth1a和OAuth2的软件包; 支持ORM和非ORM数据源的序列化; 完全可自定义...在serializers.py中实现用于保存数据的create()方法如下: from rest_framework import serializers from .models import Goods...''' return Goods.objects.create(**validated_data) views.py中实现用于提交数据的post方法如下: from rest_framework...还支持定义自己的自定义解析器,这使您可以灵活地设计API接受的媒体类型。
二、Django接入Swagger 大致步骤 1.安装django-rest-swagger 2.进入到setting.py文件,添加django-rest-swagger应用 3.进入到views.py...,将之前定义的UserViewSet和GroupViewset补充注释 4.在urls.py中添加get_schema_view辅助函数 5.启动Django服务,检测Swagger接口文档配置效果 环境说明...配置setting.py 使用Pycharm新建一个项目:t_swagger,app名为api ? ...配置views.py 进入api(应用目录),修改views.py,完整内容如下: from django.shortcuts import render, HttpResponse from django.contrib.auth.models...这里是返回了一条用户表数据,"username": "xiao",就是我新建的超级用户。 点击Authorize ? 输入新建的超级用户和密码 ? 登录成功后,效果如下: ?
在 Django 里写 REST API 是简单的,如何让 API 的速度更快呢?本文分享一种方法:用 Redis 作为缓存,可以让你的 API 的速度提升 10 倍。...这里假定你已经安装了 Redis,并且自己可以按照官方文档写出一个 Django REST API,对 Django 有一定的基础。...", } } } 然后在 views.py 中导入 redis 并创建一个 redis 实例: from django.core.cache import cache import...='127.0.0.1', port=6379, db=1) 通过在我们的 views.py 中创建一个列表函数来实现 Redis。...来个使用缓存的前后对比: 使用前:1219.266 ms: 使用后:134.002 ms: 最后 缓存确实有助于提高 Django REST API 的速度,而 Redis 又是最佳的缓存工具,可以从这里获取
当然以上故事纯属虚构,说这么多只是希望大家在开发时养成良好的习惯,一是写优雅的代码,二是一定要测试自己写的代码。...django 单元测试框架的使用方式。...梳理需要测试的接口 接下来我们就为博客的 API 接口来编写单元测试。对 API 接口来说,我们主要关心的就是:对特定的请求返回正确的响应。我们先来梳理一下需要测试的接口和功能点。...未覆盖的代码通过红色高亮背景标出,非常直观。可以看到 blog/views.py 中 CategoryViewSet 和 TagViewSet 未进行测试,按照上面介绍的测试方法补充测试就可以啦。...对 django 内置的 request 进行了包装, # 因此这里要手动使用 drf 提供的 Request 类对 django 的 request 进行一层包装。
DRF视图和常用功能 DRF视图 DRF视图类介绍 在DRF框架中提供了众多的通用视图基类与扩展类,以简化视图的编写。...View:Django默认的视图基类,负责将视图连接到URL,HTTP请求方法的基本调度,之前写类视图一般都用这个。...headers:用于响应头信息的字典 content_type:响应数据的类型 使用方法: return Reponse(data=data, status=status.HTTP_404_NOT_FOUND...示例:重写create()方法,修改数据和响应内容格式 新增app视图: myapp/views.py from rest_framework.viewsets import ModelViewSet...Swagger来了,它是一个应用广泛的REST API文档自动生成工具,生成的文档可供前端人员查看。
用我们的序列化来写常规的Django视图 让我们看看,使用我们新的序列化类,我们怎么写一些API视图。此刻,我们不会使用REST框架的其他特性,仅仅像写常规Django视图一样。...简明了很多,并且目前的代码和我们使用Forms API很相似。我们也用有意义的状态码标识符。 在views.py模块中,有一个独立的snippet视图。...相似地,虽然我们可以在响应对象中带数据,但允许REST框架渲染响应成正确的内容类型。...我们不会返回一个对象实例,而是对象实例的一个属性。 我们会是使用基类代表实例,并创建我们自己的.get()方法,而不是用普通的视图。...在使用基于类的视图代替基于函数的视图时,我们总会发现views与viewsets有相似的地方。使用视图集(viewsets)没有比你自己的视图更清晰。
同时重写save方法,在同步数据库的时候,使用pygments包把code格式化后存到highlighted字段。...我们的请求中并没有用户信息,正常来说在访问视图的时候就该被拦截了。 给视图添加认证 我们需要让API更符合常规,让未认证的用户不能执行视图中的代码。...对象级权限 为了更细粒度的控制权限,让用户只能编辑自己创建的snippet,新建snippets/permissions.py: from rest_framework import permissions...访问自己创建的snippet,可以修改和删除: ? 自定义权限 以上是官网的示例,我在Postman测试了下,发现超管dongfanger可以创建snippet: ?...这块的内容比Django的认证系统那套简洁,但是有点混淆,另外我之前参照网上实现了一版JWT,也有点不一样。看来还得写篇对比的文章才行。
* 封装了Response对象,代替了原有的django HttpResponse,视图将管理内容协商并设置正确的渲染器的响应。 * 任何APIException异常将会被捕捉,并做适当的响应。...函数基础视图(@api_view()) 一种函数基础视图来装饰django的普通视图,我们同样可以使用request来接受请求和response响应。...1)api_view()使用方法 这个视图将使用默认渲染器、解析器、身份验证设置中指定的类等。...REST框架提供的通用视图允许快速构建API观点紧密地映射到数据库模型,如果通用视图不适合的需要API, 可以使用常规APIView类,或重用mixin和基类使用的通用视图来组成自己的组可重用通用视图。...通用视图可以设置一些类属性在通用视图内,也可以根据特殊要写重写它的内部视图方法 使用.as_views()来转换成视图函数 url(r’^/users/’, ListCreateAPIView.as_view
使用视图集的一个更大的好处,就是可以配合 django-rest-framework 提供的路由器(router),自动生成 API 的 URL,不需要我们再手工将 URL 模式和视图函数绑定了。...事实上,使用路由器自动生成 URL 模式时,路由器内部就是采用了和上面手工生成视图函数并绑定 URL 一样的方式。...路由器的使用非常简单,我们在 初始化 RESTful API 风格的博客系统 中引入了 DefaultRouter 以开启 API 交互后台,DefaultRouter 实例化时默认帮我们注册了一个 API...basename 可以不指定,django-rest-framework 会自动从视图集 get_queryset 方法返回的结果所关联的 model 获取一个默认值,其值为 model 名小写。...但是我们的博客文章列表是有分页功能的,接下来我们就使用 django-rest-framework 提供的分页辅助类,一行代码就可以完成分页功能。
api/views.py from django.shortcuts import render,HttpResponse from rest_framework.views import APIView...2.在URLPATH中获取 (1)修改api/urls.py 通常情况我门应该用URLPATH的方式,而不是用前面GET()传参方式 url里面通过正则表达式定义哪些版本, # api/urls.py...views.py from django.shortcuts import render,HttpResponse from rest_framework.views import APIView from...", } 修改views.py # api/views.py from django.shortcuts import render,HttpResponse from rest_framework.views.../v1/users/ 然后后台拿到版本信息 3.反向解析访问的url (1)api/urls.py 添加name = 'api_user' # api/urls.py from django.urls
一、Django2.0的view实现商品列表页 算是对以前django知识的一个回顾,方便跟下面的drf(Django REST framework)实现商品列表页作对比 1.在apps/goods下新建...在views_base中,我被 JsonResponse,HttpResponse这两个模块之间的有什么不同所引起好奇心,都是返回字符串,一个可以返回json,而另一个需要添加一些设置才能返回json。...2 它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 显然,这解释不像人话,于是我觉得自己动手丰衣足食才是硬道理。...2 Markdown(2.1.0+) - 可浏览API的Markdown支持。 3 django-filter(1.0.1+) - 过滤支持。...name字段(昵称),而drf在找的是AbstractUser的username字段(用户名),没找到所以报错 解决方法:将UserProfile表中的__str__方法改成返回username: 1