class Person ( models . Model ) : # 定义用户名是唯一的 p_name = models . CharField ( max_length = 20 , unique = True , db_column = 'name' ) # 更改数据库中的列名为age p_age = models . IntegerField ( default = 18 , db_column = 'age' ) p_sex = models . BooleanField ( default = True , db_column = 'sex' ) # 更改数据库表名称 class Meta : db_table = 'person'

二、数据筛选过滤,filter与exclude

1、filter

表示查询符合设定条件的集合

  • =  直接筛选符合条件的

  • __gt  大于(为双下划线)

  • __gte  大于等于

  • __lt  小于

  • __lte  小于等于

  • __contains  包含(加 i 忽略大小写)

  • __startswith  开头是

  • __endswith  结尾是

  • __in  其中之一

  • __range  范围

2、exclude

表示查询出不符合条件设定的集合

筛选方式与filter一致

3、代码实例

遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! from django . shortcuts import render from App_four . models import Person import random from django . http import HttpResponse # 给数据库批量添加数据 def person ( request ) : word_list = [ 'a' , 'b' , 'c' , 'd' , 't' , 'j' , 'k' , 'l' , 'n' , 's' , 'e' , 'f' , 'o' , 'p' , 'y' , 'z' , 'w' ] for i in range ( 20 , 60 ) : person = Person ( ) # 在列表中随机选取4个字母组合成一个名字 words = random . sample ( word_list , 4 ) name = '' for word in words : name += word person . p_name = name person . p_age = i person . p_sex = random . choice ( [ 0 , 1 ] ) person . save ( ) return HttpResponse ( '批量添加成功!' ) # 筛选过滤数据 def get_person ( request ) : persons = Person . objects . all ( ) # 获取20岁的person person20 = persons . filter ( p_age = 20 ) # 获取40岁以上的person person40 = persons . filter ( p_age__gt = 40 ) # 获取40-50之间的人 person50 = persons . exclude ( p_age__lt = 40 ) . filter ( p_age__lt = 50 ) # 获取年龄在30-40岁之间的人并且性别为男的人 person30 = persons . exclude ( p_age__lt = 30 ) . filter ( p_age__lt = 40 ) . filter ( p_sex = 1 ) content = { 'persons1' : person20 , 'persons2' : person40 , 'persons3' : person50 , 'persons4' : person30 , return render ( request , 'person.html' , context = content ) 一、数据库表名修改与数据表中列名修改from django.db import modelsclass Person(models.Model): # 定义用户名是唯一的 p_name = models.CharField(max_length=20,unique=True,db_column='name') # 更改数据库中的列名为age p_age = models.IntegerField(default=18,db_column='age') p_sex 数据库 表名 自动生成,按照APPname+ 表名 生成的,但是由于接口需要, 表名 不可以是这样的构造,只能是 表名 称自己,不可以加前缀,以下记录一下 修改 过程以及命令。 Django 版本:1.6 第一步:生成空文件,以记录变更 命令: python manage.py schemamigration appname --empty name_of_migration appname:app的...
Background 使用 django 框架会在原 数据库 生成一些框架所使用的表,其 User、Permission、Group三个 model 表名 没有 django 前缀,为了与项目 的业务表区分开,我们这里把 django 框架使用的表,没有 django 前缀的给它加上。 1、找到auth模块位置 Python 安装环境目录/lib/ python 3.x/site-packages/ django /contrib/auth 例如我的如下所示 /usr/local/ python 3/lib/ python 3.7/sit
class redis_data( model s. Model ): class Meta: db_table='redis_data' key= model s.CharField(max_length=128) value= model s.CharField(max_length=128) 转载于:https://www.cnblogs.com/biboxie/p/...
@app.errorhandler(CustomError) def handle_custom_exception(error: CustomError): response = jsonify({"code": error.status_code, "data": error.message}) response.status = 20 return response 仅开发模式使用debug=True能捕获到自定义异常,debug= False时直接程序报错该怎么解决? Python3的四舍五入round()函数 M1r4n: Python3的四舍五入round()函数值得学习,非常受益,期待sinat_38682860的下一篇文章 Python3的四舍五入round()函数 M1r4n: Python3的四舍五入round()函数值得学习,非常受益,期待sinat_38682860的下一篇文章