202009-29 解决django框架model中外键不落实到数据库问题 在外键字段的参数中添加db_constraint=False即可,数据库中没有外键关系,代码中依然可以按照正常外键方式使用。例如:classUser(models.Model):name=models.CharField(max_length=255)room=models.ForeignKey(Room,db_constraint=False)classRoom(models.Model):status=models.IntegerField(default=1)补充知识:Django不通过外键查询多对多的数据,数据库表设计不使用外键终于解决了如何没有通过外键查询多对多的数... 继续阅读 >
202009-29 django 解决model中类写不到数据库中,数据库无此字段的问题 如果你遇到了这个错误?MySQLStrictModeisnotsetfordatabaseconnection‘default'还有这种错误,models中的代码为什么会出现这种错误呢?有两种可能,一种settings少了options,一中是你的models文件中加了逗号第一种可能settings中需要添加以下字段DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'mxshop','HOST':'127.0.0.1','PORT':'3306','USER':'mxshop','PASS... 继续阅读 >
202009-29 Django 解决model 反向引用中的related_name问题 问题:定义表Apple:classApple(models.Model):origin_level=models.ForeignKey(AppleLevel)new_level=models.ForeignKey(AppleLevel)出现如下问题:monitor.apple:Accessorforfield‘origin_level'clasheswithrelatedfield‘AppleLevel.apple_set'.Addarelated_nameargumenttothedefinitionfor‘origin_level'.monitor.apple:Accessorforfield‘new_level'clasheswithrelatedfield‘AppleLe... 继续阅读 >
202009-29 Django Model中字段(field)的各种选项说明 字段与选项CharField()字符字段max_length=xxxorNone#必选项blank=True和default=''#如果不是必填项,可以设置unique=True#如果想要使其唯一,比如用于username,可以设置choices=xxx_CHOICES#如果有choice选项,可以设置TextField()文本字段max_length=xxxblank=True和default=''#如果不是必填项,可以设置DateField()andDateTimeField()日期与时间字段defaultdate#一般建议设置默认日期... 继续阅读 >
202009-29 重写django的model下的objects模型管理器方式 django自定义管理器和model的继承在我写代码时建立的很多数据库需要一些共同的字段,比如is_active,create_time这些字段,所以可以建立一个基类model模型的继承我们可以充分利用oop特性,建立一个基类model,以后所有的model都继承这个类,就不用在每个类都额外添加字段classBaseModel(models.Model):is_active=models.BooleanField(default=True)create_time=models.DateTimeField()classMeta:'''指定这个类... 继续阅读 >
202009-29 Django在Model保存前记录日志实例 Django中如何在Model保存前做一定的固定操作,比如写一句日志?关键词:信号利用Django的Model的SignalDispatcher,通过django.db.models.signals.pre_save()方法,在事件发生前,发射触发信号,这一切都被调度中的receiver方法深藏功与名的保存了。信号的处理一般都写在Model中,举个例子:importloggingfromdjango.dbimportmodelsfromdjango.db.models.signalsimportpre_savefromdjango.dispatchimportreceiverclas... 继续阅读 >
202009-29 Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】 本文实例讲述了NodeMongoose用法。分享给大家供大家参考,具体如下:Mongoose简介是一个将JavaScript对象与数据库产生关系的一个框架,Objectrelatedmodel。操作对象,就是操作数据库了。对象产生了,同时也持久化(数据进入数据库)了。初步使用Mongoose连接数据库varmongoose=require('mongoose');//创建数据库连接vardb=mongoose.createConnection('mongodb://localhost:27017/zf');//监听open事件db.once('open',functi... 继续阅读 >
202009-25 Python3之外部文件调用Django程序操作model等文件实现方式 我就废话不多说啦,还是直接看代码吧!importosimportsysimportdjangosys.path.append(r'C:\Users\Administrator\PycharmProjects\yourprojectname')os.chdir(r'C:\Users\Administrator\PycharmProjects\yourprojectname')os.environ.setdefault("DJANGO_SETTINGS_MODULE","yourprojectname.settings")django.setup()fromcrmimportmodelsv=models.Customer.objects.all()print(v)补充知识:Django媒体文件的调用和配置... 继续阅读 >
202009-25 TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】 本文实例讲述了TP5框架model常见操作。分享给大家供大家参考,具体如下:使用model查询数据,添加数据,修改数据,删除数据聚合操作获取器,修改器自动添加时间戳(创建时间,修改时间)软删除1、使用model查询数据$res=User::get(1);//获取主键为1的数据,得到的是一个对象$res=$res->toArray();//将对象转化为数组dump($res->name);//获取$res里name字段的值//使用闭包函数查询id=1的记录$res=User:... 继续阅读 >
202009-25 django model的update时auto_now不被更新的原因及解决方式 gmt_create自动添加auto_now_add;gmt_modify自动更新auto_nowclassCommonInfo(models.Model):"""基类,提供共同信息,不会创建真实的table"""classMeta:#声明自己为抽象基类abstract=True#下面表示先根据更新时间gmt_modify降序排序,如果更新时间相同,再根据创建时间gmt_create降序排序ordering=['-gmt_modify','-gmt_create']gmt_create=models.DateTimeField('创建时间,自动创建',auto_now_add=True,nul... 继续阅读 >
202009-25 django model通过字典更新数据实例 example:models中的表#modelsclassUserInfo(models.Model):id=models.BigAutoField(primary_key=True)user_name=models.CharField(max_length=100,verbose_name='用户名')cellphone=models.CharField(max_length=100,blank=False,null=True,verbose_name='手机')password=models.CharField(max_length=225,verbose_name='密码')更新代码如下:datas={'user_name':'张三'}user=UserInfo.objects.filte... 继续阅读 >
202009-24 动态设置django的model field的默认值操作步骤 问题背景django的modelfield需要动态设置默认值,具体案例如下:原始代码如下,model是Application,其中字段ignore_fort的默认值设置为FalseclassApplication(TimestampedModel):name=models.CharField(max_length=255,null=True)ignore_fort=models.BooleanField(default=False)然而现在有这样一个需求:default需要根据某个变量ENV进行动态设置,如果ENV是UAT或者FAT(不区分大小写,具体分支,比如uaT01也可以),... 继续阅读 >
202009-24 django 实现手动存储文件到model的FileField 通过POST请求,上传了文件,想要将文件存储在模型的FileField中request.FILES中的值均为UploadedFile类文件对象表单上传的文件对象存储在类字典对象request.FILES中,表单格式需为multipart/form-dataFieldFile.save(name,content,save=True)name:命名文件名content:必须是django.core.files.File或django.core.files.base.ContentFile二者之一的一个实例fromdjango.core.files.baseimportContentFile#fromdjango.core.file... 继续阅读 >
202009-24 利用django model save方法对未更改的字段依然进行了保存 我就废话不多说了,直接上代码吧!obj=Obj.objects.get(id=1)printobj.name#此时name的值假定为'abc'defhandler(oid):obj=Obj.objects.get(id=oid)obj.name='123'obj.save()handler(obj.id)obj.age=10obj.save()printobj.name最终的name结果依然为'abc'。save()保存时,虽然没有更改其它字段,但依然会将内存中的值,再次存入数据库,子函数和其它进程更改的值会被覆盖。补充知识:DjangoSignals之pre_save&po... 继续阅读 >
202009-24 Django 实现对已存在的model进行更改 1.删除app下的migrations中的数据库操作的.py记录2.删除数据库django_migrations中相应记录3.pythonmanage.pymakemigrationsyourappname4.pythonmanage.pymigrateyourappname补充知识:djangomodelsave方法对未更改的字段依然进行了保存如下所示:obj=Obj.objects.get(id=1)printobj.name#此时name的值假定为'abc'defhandler(oid):obj=Obj.objects.get(id=oid)obj.name='123'obj.save()handler(obj.id)o... 继续阅读 >
202009-24 Django多数据库配置及逆向生成model教程 在项目中我们每个app对应不同的数据库,其中有一个是从数据库逆向生成model,做个笔记。1、修改项目的setting.py配置:DATABASES={'default':{'ENGINE':'django.db.backends.mysql',#默认用mysql'NAME':'bk',#数据库名(默认与APP_ID相同)'USER':'root',#你的数据库user'PASSWORD':'root',#你的数据库password'HOST':'xxx.xxx.xxx.xxx',#开发的时候,使用localhost'PORT':'33... 继续阅读 >