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

Django模型(数据库)及Django Query常用方法

创建数据表 我们来同步一下数据库(我们使用默认的数据库 SQLite3,无需配置) 先 cd 进入 manage.py 所在的那个文件夹下,输入下面的命令 # Django 1.6.x 及以下 python...我们会看到,Django生成了一系列的表,也生成了我们新建的people_person这个表,那么如何使用这个表呢?...使用 Django 提供的 QuerySet API Django提供了丰富的API, 下面演示如何使用它。...__(双下划线,因为在Django QuerySet API中有特殊含义(用于关系,包含,不区分大小写,以什么开头或结尾,日期的大于小于,正则等) 也不能有Python中的关键字,name 是合法的...= Author.objects.get(name="Sara") aut.name="LiMing" aut.email="Liming@163.com" aut.save() # 最后不要忘了保存

2.6K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    tp中遇到的相关方法

    系统会在模型首次实例化的时候自动获取数据表的字段信息(而且只需要一次,以后会永久缓存字段信息,除非设置不缓存或者删除),如果是调试模式则不会生成字段缓存文件,则表示每次都会重新获取数据表字段信息。...字段缓存保存在Runtime/Data/_fields/ 目录下面,缓存机制是每个模型对应一个字段缓存文件(注意:并非每个数据表对应一个字段缓存文件),命名格式是: 数据库名.数据表前缀+模型名(小写...可以通过设置DB_FIELDS_CACHE 参数来关闭字段自动缓存,如果在开发的时候经常变动数据库的结构,而不希望进行数据表的字段缓存,可以在项目配置文件中增加如下配置: // 关闭字段缓存 'DB_FIELDS_CACHE...如果需要显式获取当前数据表的字段信息,可以使用模型类的getDbFields方法来获取当前数据对象的全部字段信息,例如: $User = M('User'); $fields = $User->getDbFields...如果不希望依赖字段缓存或者想提高性能,也可以在模型类里面手动定义数据表字段的名称,可以避免IO加载的效率开销,例如: namespace Home\Model; use Think\Model; class

    49420

    Mybatis系列第11篇:类型处理器,这个你得会玩!

    (rs.getInt(3)); 如果使用mybatis实现,mybatis可以将sql结果自动映射到UserModel中的属性中,mybatis内部给UserModel的id设置值的时候,mybatis...其他3个方法是从结果集中读取数据的,内部具体是调用结果集的getInt方法还是getString方法或者是getObject方法,每个转换器内部实现也是不一样的。...t_user中是数字类型的,最后通过mybatis查询,需要赋值给UserModel中的sex字段,这个字段是一个枚举类型的,mybatis不知道这两者之间如何进行转换,所以报错了。...再来总结一下自定义类型转换器的使用步骤: 自定义类型转换器,继承BaseTypeHandler 将自定义类型转换器注册到mybatis中,需要在mybatis配置文件中通过typeHandler元素进行引入...mapper xml中就可以使用了。

    69610

    MyBatis系列第3篇:Mybatis使用详解(1)

    主要内容 1、 快速入门 准备数据库 我们的需求 使用idea创建项目 pom.xml中引入mybatis依赖 配置mybatis全局配置文件 创建Mapper xml文件 mybatis全局配置文件中引入...配置mybatis全局配置文件 使用mybatis操作数据库,那么当然需要配置数据库相关信息,这个需要在mybatis全局配置文件中进行配置。...org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory这个,mybatis和其他框架集成,比如和spring集成,事务交由spring去控制,...上面说的都是一些配置文件,配置文件都ok了,下面我们就需要将mybatis跑起来了,此时需要使用到mybatis中的一些java对象了。...需要插入的值从UserModel对象中获取,取UserModel对象的的字段,使用#{字段}这种格式可以获取到UserModel中字段的值。

    63520

    Mybatis系列第7篇:各种查询详解

    "/> userModel.name"/> 这个地方使用到了级联赋值,多级之间用.进行引用,此处我们只有一级,可以有很多级。...=UserModel(id=2, name=路人甲Java)) 方式2 这次我们需要使用mapper xml中另外一个元素association,这个元素可以配置关联对象的映射关系,看示例。...=UserModel(id=2, name=路人甲Java)) 从结果的最后一行可以看出,所有字段的值映射都是ok的。...总结 mybatis全局配置文件中通过mapUnderscoreToCamelCase可以开启sql中的字段和javabean中的骆驼命名法的字段进行自动映射 掌握resultMap元素常见的用法 一对一关联查询使用...Model中最好只定义一些和单表字段关联的属性,不要掺杂着其他对象的引用。

    69230

    Django+JWT实现Token认证

    sessionid保存在cookie中,之后浏览器的每次请求都一并将sessionid发送给服务器,服务器根据sessionid与记录的信息做对比以验证身份 Token的鉴权方式就清晰很多了,客户端用自己的账号密码进行登录...而Token的主要目的是为了鉴权,同时又不需要考虑CSRF防护以及跨域的问题,所以更多的用在专门给第三方提供API的情况下,客户端请求无论是浏览器发起还是其他的程序发起都能很好的支持。...所以目前基于Token的鉴权机制几乎已经成了前后端分离架构或者对外提供API访问的鉴权标准,得到广泛使用 JSON Web Token(JWT)是目前Token鉴权机制下最流行的方案,网上关于JWT的介绍有很多...,这里不细说,只讲下Django如何利用JWT实现对API的认证鉴权,搜了几乎所有的文章都是说JWT如何结合DRF使用的,如果你的项目没有用到DRF框架,也不想仅仅为了鉴权API就引入庞大复杂的DRF框架...django.http import JsonResponse from django.contrib.auth import get_user_model from django.core.exceptions

    2.8K20

    【愚公系列】2022年01月 Django商城项目 23-自定义文件存储系统

    文章目录 前言 一、自定义的存储系统类 二、配置文件中 三、页面中使用 1.原本 2.自定义后 补充 前言 如果你需要提供自定义文件储存功能把文件储存在远程系统中,Django可以自定义一个存储类可以完成这一任务...这意味着任何设置都应该来自django.conf.settings 3.您的存储类必须实现_open()和_save() 方法以及适用于您的存储类的任何其他方法 4.您的存储类必须是可解构的, 以便在迁移中的字段上使用时可以对其进行序列化...只要您的字段具有可自行序列化的参数,就 可以使用 django.utils.deconstruct.deconstructible类装饰器 (这就是Django在FileSystemStorage上使用的...# 自定义完成了存储类之后,告诉系统,使用我们的自定义存储类 DEFAULT_FILE_STORAGE = 'utils.fdfs.faststorage.MyStorage' 三、页面中使用 只需要在字段中假...Django会将该方法的返回值保存到数据库中对应的文件字段,也就是说该方法应该返回要保存在数据库中的文件名称信息。

    35730

    Hibernate入门

    Object之间的关系  7:Object中属性的个数和名称可以和表中定义的字段个数和名称不一样 ORMapping的基本实现方式: 使用JDBC,用SQL来操作数据库,只是看动态生成还是人工写代码来实现...HelloWorld 要研究怎么做,先得搞清楚需要做什么 根据刚才的学习,做基本的Hibernate应用程序,要完成下面的工作:Object、数据库的表、两种配置文件、客户端程序来调用Hibernate...:cn.javass.h4.hello.UserModel,有四个属性:uuid,userId,name,age 在数据库中建表 设若构建一个表为tbl_user,字段:uuid,userId,name...其他: 1:SessionFactory sf = new Configuration().configure().buildSessionFactory();这句话的意思是读取hibernate.cfg.xml...Hibernate接口,约相当于JDBC的Connection+Statement/PreparedStatement的功能,是线程不安全的 3:在Hibernate4里面,已经不推荐使用Configuration

    73860

    springData Jpa 快速入门前言:一、简介:二、JPA核心概念:三、springboot集成jpa案例:总结:

    三、springboot集成jpa案例: 本案例使用gradle构建,前端使用thymeleaf,数据库用到了H2和mysql,使用jpa完成crud操作。...5、service层: 因为本案例service层并无其他逻辑,所以直接省略。...9、H2数据库: H2数据库是一个内存数据库,数据保存在内存中,项目一重启数据就没了。且其无需安装任何服务或者客户端,要在项目中使用也不用怎么配置,直接添加其依赖即可。...那么如何查看数据是否保存到了H2数据库中呢?...它提供了一个网页版控制台,网址为http://localhost:8080/h2-console,这个控制台默认是不启用的,所以刚才在application.properties中加上了spring.h2

    75020

    MyBatis系列第2篇:入门篇,带你感受一下mybatis独特的魅力!

    ,这个mapper.insert方法可以根据UserModel对象字段是否有值来组装我们需要的sql,是不是很牛逼,这就是动态插入。...类型的参数,只是2个UserModel对象的字段值不一样,最后产生的2个update语句也是不一样的,这个update语句是mybatis动态组装的,mybatis可以根据UserModel中字段是否为...后面有多个条件,这种查询也是比较常用的,有些表可能有几十个字段,可能我们只需要几个字段,就可以使用上面这种查询。...下面我们就可以使用mybatis来操作db了。...能不能第一次解析好然后放在内存中,以后直接使用,SqlSessionFactoryBuilder就是搞这个事情的,将mybatis配置文件、mapper xml文件、mapper xml文件和Mapper

    69740

    SwiftUI @State @Published @ObservedObject 深入理解和使用

    新出面向未来、跨多端解决方案、声明式编程 SwiftUI最新版本 2.0 但是需要 IOS 14 支持,多数现在还用的是IOS 13 所以很多不完善的东西都用SwiftUIX 以及各种库代替,bug也是层出不穷...是的,这感觉有点像作弊,你可能想知道为什么我们不使用类-它们可以自由修改。...比如我们定义的数据结构Model,前提是 @Published 要在 ObservableObject 下使用 然后用 @ObservedObject 来引用这个对象,当然@State 不会报错,但是无法更新...因为SwiftUI更新数据的前提是触发 第一层 绑定的对象 wrapperModel下的属性(字段)发生更新才会调用视图层更新数据 但是 第一次下绑定的对象还绑定了 @ObservedObject 或者其他类型的对象呢...就会调用View视图进行更新 /// 在BaseModel里面实现 notifyUpdate 更新当前对象 _lastUpdateTime 字段,实现自身全部字段更新 @Published

    3.4K10

    【Django】 开发:静态文件,应用和模型层

    应用的分布式路由 Django中,主路由配置文件(urls.py)可以不处理用户具体路由,主路由配置文件的可以做请求的分发(分布式请求处理)。...同步您对模型所做更改(添加字段,删除模型等) 到您的数据库模式的方式 1.生成或更新迁移文件 ​ 将每个应用下的 models.py 文件生成一个中间文件,并保存在 migrations 文件夹中...字段选项为这些字段提供附加的参数信息 字段类型 1.BooleanField() 数据库类型:tinyint (1) 编程语言中:使用 True 或 False 来表示值 在数据库中:使用 1 或...:varchar (200) 编程语言和数据库中使用字符串 10.ImageField() 数据库类型:varchar (100) 作用:在数据库中为了保存图片的路径 编程语言和数据库中使用字符串 11...,表示为该列增加索引 unique 如果设置为True,表示该字段在数据库中的值必须是唯一(不能重复出现的) db_column 指定列的名称,如果不指定的话则采用属性名作为列名 verbose_name

    1.8K20

    自定义模型类

    1.模型类通常需要继承系统的\Think\Model类或其子类,下面是一个Home\Model\UserModel类的定义: namespace Home\Model; use Think\Model;...class UserModel extends Model { } 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型层的名称(默认定义是Model),例如: ?...表字段定义(属性,可选) 1.部署模式 -自动生成 系统会在模型首次实例化的时候自动获取数据表的字段信息(而且只需要一次,以后会永久缓存字段信息,除非设置不缓存或者删除)   2.调试模式-自动生成...不会生成字段缓存文件,每次都会重新获取数据表字段信息。...php class UserModel extends Model{ /*****第一部分:表信息定义 (可选),参考2 ********/ //不需要加表的前缀,表前缀在配置文件中定义

    85630

    Mybatis系列第4篇:Mybatis使用详解(2),一起跟上节奏!

    元素批量注册别名 方式3:使用package结合@Alias批量注册并指定别名的名称 别名不区分大小写 mybatis内置的别名 别名的原理 别名使用建议 3、属性配置详解(properties) 属性配置的...(id=4, name=林志玲, age=45, salary=88888.88, sex=2) 也是正常的,说明别名使用时是不区分大小写的。...方式2:resource引入配置文件 方式1中,我们的配置文件还是写在全局配置文件中,mybatis支持从外部引入配置文件,可以把配置文件写在其他外部文件中,然后进行引入。...方式3:url的方式引入远程配置文件 mybatis还提供了引入远程配置文件的方式,如下: 配置文件的路径" /> 这次还是使用properties元素,不过使用的是...属性配置文件使用建议 上面我们说了3中方式,第2中方式是比较常见的做法,建议大家可以使用第二种方式来引入外部资源配置文件。 问题 如果3种方式如果我们都写了,mybatis会怎么走?

    1.1K10

    【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-3模型创建

    简言之, ORM 库帮我们封装了对关系型数据库的 CRUD 操作, 我们不需要编写一行 SQL, 即可完成对数据库的操作. 2 数据库配置 打开 ttsx/settings.py 文件, 在该配置文件中默认使用的是...除了 CharField, 我们还发现有其他不同的字段类型, 常用字段类型以及含义如下表所示: 使用时需要引入 django.db.models 包,字段类型如下: 字段类型 描述 AutoField...自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性....参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false.参数auto_now_add表示当对象第一次被创建时自动设置当前时间...null.如果为True,Django 将会把数据库中空值保存为NULL。默认值是 False. blank. 如果为True,该字段允许为空值,默认为False。要注意,这与 null 不同。

    1.1K10

    Thinkphp中模型的正确使用方式,ORM的思想概念

    User; // 设置字段的值 有多个字段就多个设置 $user->name= 'thinkphp'; // 保存,自己去插入吧~ $user->save(); 误区 看了使用之后,很多初学者就开始写代码了...如果使用不对,不仅不能提高效率,反而会影响自己。(比如代码规范不统一、新增表还要新增对应的模型文件等等) 代码演示: <?...php $userModel = new User(); // 这里就相当于初始化Db类 $userOneInfo = $userModel->where(['u_id' => 1])->find();...执行其他逻辑 比如判断上下级 操作权限等等 // 业务需求不只是读取用户的数据这么简单 // 还要扣除余额(就是更新数据库) $userOneRes = $userModel->where(['u_id...执行其他逻辑 因为一个对象映射一条数据,所以我们在操作同样where条件的数据,直接操作对象就可以了, 就不用反复编写where u_id =1更新, u_id = 1 要删除 使用模型,还有很多用处

    2.2K20
    领券