- 博客(31)
- 收藏
- 关注
原创 继承modelviewset后,重写增删改查,在返回值中加入自己想要的信息。
【代码】继承modelviewset后,重写增删改查,在返回值中加入自己想要的信息。
2023-03-18 15:02:39
1199
原创 启动django时报错 :AttributeError: module ‘MySQLdb.constants.FIELD_TYPE‘ has no attribute ‘JSON‘
在这个例子中,使用PyMySQL作为Django的MySQL数据库驱动程序。还指定了字符集为utf8mb4,这是为了支持MySQL的所有字符,包括表情符号和其他Unicode字符。可以尝试使用更高版本的MySQLdb或切换到支持JSON数据类型的MySQL数据库驱动程序,例如PyMySQL或mysql-connector-python。这个错误可能是由于使用的MySQLdb版本太旧导致的。从错误信息来看,使用的MySQLdb不支持JSON数据类型。
2023-03-09 13:03:25
2001
原创 继承Modelviews重写(继承或覆盖)get,post,put,delete请求
继承Modelviews重写(继承或覆盖)get,post,put,delete请求。
2023-01-12 15:45:11
581
原创 【一文看懂】__all__
也就是说,只有以from 模块名 import * 形式导入的模块,当该模块设有 __all__变量时,只能导入该变量指定的成员,未指定的成员是无法导入的。通过在模块文件中设置__all__ 变量,当其它文件以 “ from 模块名 import * ” 的形式导入该模块时,该文件中只能使用__all__列表中指定的成员。通过该方式导入模块后,总可以通过模块名前缀(如果为模块指定了别名,则可以使用模快的别名作为前缀)来调用模块内的所有成员(除了以下划线开头命名的成员)。...
2022-08-26 17:10:02
221
原创 【一文看懂】@xxx.setter的使用方法
而用@xxx.setter是让这个更简洁,既保持直接对属性赋值的方便,又可对条件做限制。如果你已经知道了@property的用法,那么可以直接往下看了, 因为@xxx.setter是要和@property连用的。方法,用于获取值,类似于上面代码中的getName 但是@xxx.setter依赖于 @property。想使用@xxx.setter,必须要有一个被@property装饰过的方法才行。如上面的代码,正常情况下,我们对属性赋值,直接赋值就可以了。方法,用于设置值,类似于上面代码中的setName。.
2022-08-26 16:21:36
1652
1
原创 【一文看懂】python高级函数之 map
什么是map函数?map是python内置函数,会根据提供的函数对指定的序列做映射。map()函数的格式1)参数:function是一个函数名称,通过该函数对后续参数iterable进行处理iterable是一个可迭代对象,比如:字符串、列表、字典、元组、集合等2)返回值:map函数通过将指定的function函数依次作用在给定序列iterable中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。什么时候用map函数?......
2022-08-26 14:43:41
4903
1
原创 【一文看懂】@property的使用场景
场景二:与属性配合使用,防止属性被修改。通过@property的方法来进行设置。这样可以隐藏属性名,让用户进行使用的时候无法随意修改。场景一:修饰方法,让方法可以像属性一样被访问。
2022-08-26 14:05:48
613
2
原创 【一文看懂】类中的属性
2):双下划线__开头:外部不可通过instancename.propertyname来访问或者更改。1):单下划线_开头:只是告诉别人这是私有属性,外部依然可以访问更改。实际将其转化为了_classname__propertyname。最好在__init__(self,…内部调用时都需要加上self.在__init__()外初始化。......
2022-08-26 11:17:50
1348
原创 【一文看懂】python基础之构造函数
python基础之构造函数什么是构造函数:构造函数也被称为构造器,当创建对象的时候第一个被自动调用的函数函数体#1. 构造函数何时被调用# 我们来下面这段代码:class People: # tag = "创建对象" 如果写在这里,下面用到的时候就要加 self. 见下一个注释 def __init__(self, age): self.name = "ybc" self.age = age tag = "创建对象"
2021-03-23 17:38:17
6808
原创 用户功能记录
用户功能:包括增删改查模糊查询urls.py:router=routers.SimpleRouter()router.register('users', views.UserView)urlpatterns += router.urlsmodels.pyclass User(AbstractUser): # 继承的AbstractUser这个类,django自带的,里面已经有很多关于用户的字段了 """用户模型类""" user_status = models.BooleanF
2021-03-10 14:13:33
109
原创 【一文看懂】django-filter实现高级搜索
django-filter是drf的第三方包,用来实现条件过滤,和modelviewset配合使用就是如虎添翼,用最少的代码实现功能。下面是django-filter的高级搜索, 比如模糊查询,范围查询等。class User(models.Model): username = models.CharField(max_length=100) email = models.CharField(max_length=100) created_at = models.DatetimeField()
2021-02-24 16:55:13
3975
原创 【一文看懂】序列化类中的自定义字段设置
1.针对具有choices属性的字段的用法这类型字段格式都是一个字典类型,数据库中存储key,给客户端显示的是对应的value,但是正常的数据库操作只能读取key,拿不到value,这个时候需要用到source方法。格式为:source = ‘get_提取的字段名_display’,即可显示valueclass UserInfoSerializer(serializers.Serializer): user_type = serializers.CharField(source='get_
2021-01-26 18:15:08
751
原创 django中orm判断字段值不等于空或不等于null
不等于空:from django.db.models import Qname = Student.objects.filter(~Q(variable_values= ''))不等于null:name = Student.objects.filter(字段名__isnull=True)
2021-01-26 15:53:11
11018
4
原创 Django中ORM的基于双下滑线的联表查询
本篇博客是自己敲一遍加深印象用的,原博客地址:https://blog.youkuaiyun.com/m0_38109046/article/details/87984508双下划线Django 提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系。要做跨关系查询,就使用两个下划线来链接模型(model)间关联字段的名称,直到最终链接到你想要的model 为止类模型字段介绍作者:nid、name、age作者详细:nid、birthday、telep
2021-01-07 15:06:29
371
3
原创 django rest framework中视图的编写以及路由类
drf中的视图编写Django REST framework 提供的视图的主要作用:控制序列化器的执行(检验、保存、转换数据)控制数据库查询的执行[数据库的删除/查询代码写在视图中,更新和添加写在序列化器]REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写基本视图类:APIViewAPIView继承自View,他是所有drf视图类的父类,他的功能不是那么强大,所以用APIView的时候和用View的时候相差不多,区别就在于APIView里可以用requ
2020-12-29 09:49:15
368
原创 django rest framework的request和response
drf中的requestREST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。因为前后端分离的项目,[在drf中,原生的django的http请求对象,通过request._request],drf的request有一个内置的parser解析器,可以接受客户端传来的各种数据,但是如果想用drf的request,就需要继承drf专有的APIView,他继承的
2020-12-27 14:57:29
502
3
原创 django rest framework的序列化与反序列化
序列化和反序列化序列化是服务端返数据给前端的时候,将模型类对象转化成josn,一般用于get请求反序列化是接收前端json数据后反序列化成后端可操作的数据,一般用于post等从前端获取数据的请求。从前端获取到数据后需要先校验is_valid,验证数据是否是符合规范的,是否可以转化成类模型对象,正确返回true,错误返回false。delete不需要序列化器josn和字典的区别:josn是一种数据类型,键值必须用双引号引字典是一种数据结构 以键值对的形式存在打印序列化前的类型和序列化的类
2020-12-27 10:55:59
515
2
原创 pycharm连接数据库Timezone错误
pycharm连接数据库,报错:Server returns invalid timezone. Need to set ‘serverTimezone’ property.时区报错:Server returns invalid timezone. Need to set 这个问题的原因是数据库的时区是默认的。需要修改时区就可以:mysql> set global time_zone=’+8:00’;之后就可连接上了。...
2020-12-20 12:12:33
729
1
原创 source导入.sql文件中ERROR
导入.sql文件时中途出错。导入.sql文件报错ERROR:开始导入sql文件,输入“source sql文件的路径”(注意你的文件路径要是复制来的,要将""全部换成“/”),但是导入的时候,中途出现error,目前我发现的原因是数据库编码的错误,我.sql文件的编码是utf8mb4, 所以打开mysql的编码也要指定一下:mysql -uroot -pxxxxxx --default-character-set=utf8mb4,创建的database的时候要也是utfmb4的编码才行:CREATE
2020-12-20 12:11:36
1333
2
原创 记录:django复习(一)
第一天2020.12.19创建django项目:在pycharm右下角的interpreter settings下选择一个虚拟环境,一般我是比较喜欢一个项目用一个新的虚拟环境。虚拟环境其实就是一个文件夹,里面可以pip需要的依赖,一般直接在interpreter settings里面new一个就可以了,默认叫venv,放在该项目的目录下。django是MTV模式的:M: modelsT: templatesV: views 把项目跑起来python manage.p
2020-12-20 11:49:24
154
2
原创 django的orm操作
Django的ORM操作写该篇博客的原因单表数据库模型增删改查多表一对一(OneToOne)数据库模型增删改查一对多/多对一(forgenkey)数据库模型增删改查多对多(ManyToMany)数据库模型增删改查写该篇博客的原因目前在学习django,django的orm非常好用,但是网上找的orm的操作写的普遍不是很全面,找了几篇都不是很清晰,所以自己整理一下。单表数据库模型创建一个用户表(Users),其中包括id,name,age,phone,sex# 这个类在models.py(模型)文
2020-12-20 11:44:27
918
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人