django之 使用py文件操作django项目中的表
要想在一个另外的py文件中操作django,可以使用如下的代码
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE",'mysite.settings') #mysite用的是自己的project
import django
django.setup() from app01 import models #app01是项目名
基本操作
| 方法 | 解释 |
| get() | 获取指定条件的对象,在views.py里面有且只能有一个,否则报错 |
| all() | 获取所有对象 |
| filter() | 获取满足条件的所有对象 ---》对象列表 |
| exclude() | 获取所有不满足条件的对象,也就是get()的取反 |
| values() | 括号内有参数就是获取指定字段的结果,不写就是显示所有字段 |
| values_list() | 区别于values,是以元组的形式来表示 |
| order_by() | 以某个字段来排列,- 是以降序排列 |
| reverse() | 对排列好的结果取反 |
| distinct() | 去重
models.Book.objects.all().values("price").distinct()
|
| count() | 计算结果的数量 |
| first() | 取出满足条件的第一个结果 |
| last() | 取出满足条件的最后一个结果 |
| exists() | 判断结果是否存在 |
| delete() | 删除记录
models.Book.objects.filter(price__lte=100).delete() |
| update() | 修改记录
models.Book.objects.filter(title__startswith="py").update(price=120) |
下面是举例:
首先我们设置打印格式:
class User(models.Model):
id=models.AutoField(primary_key=True)
name=models.CharField(max_length=32,db_column='user',verbose_name='姓名')
age=models.IntegerField(verbose_name='年龄')
birth=models.DateTimeField(auto_now=True,null=True) def __str__(self):
return "<User:id-{} name-{}>".format(self.id,self.name) class Meta:
#数据库的表面修改,自定义
db_table="user" #admin中显示的表名称
verbose_name='个人信息' #在admin中Site administration显示
verbose_name_plural='所有用户信息'


下面是一些双下滑线的操作命令:
__gt= 大于某个数 __lt= 小于某个数 __lte= 小于等于某个数 __in=[] 在某些数字中 __range=[1,3] 在一和三之间 __contain= 包含 __icontain= 包含忽略大小写 __year= 某个时间字段中的年 __startwith endswith 以什么开始,以什么结尾
举例
ret1=models.User.objects.filter(id__gt=1)
# <QuerySet [<User: <User:id-2 name-he>>, <User: <User:id-3 name-ren>>, <User: <User:id-4 name-wo>>]>
print(ret1) #查询在某个区间的结果,可以放入不在数据库里面的id
ret2=models.User.objects.filter(id__in=[1,2,4,100])
print(ret2) #查询在某个范围的结果
ret3=models.User.objects.filter(id__range=[1,3])
print(ret3) #包含
ret4=models.User.objects.filter(name__contains='e')
print(ret4) #忽略大小写,在sqlite数据库里面和contains是一样的,可以使用mysql验证
ret5=models.User.objects.filter(name__icontains='e')
print(ret5) #查询字段birth的时间中year是2018
ret6=models.User.objects.filter(birth__year='')
print(ret6)
django之 使用py文件操作django项目中的表的更多相关文章
- 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Application Data 中的媒体
[源码下载] 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Ap ...
- 怎样将.h文件添加到项目中
作为C++的初学者,在运行别人的程序时,第一个遇到的问题就是无法将程序中写到的.h文件包含到项目中来.下面来写一下处理方法.本文以easyx.h为例进行说明 首先右键你的工程 选择Properties ...
- django模型models.py文件内容理解
首先,要理解这句话:模型是你的数据的唯一的.权威的信息源.它包含你所存储数据的必要字段和行为.通常,每个模型对应数据库中唯一的一张表 基础:每个模型都是django.db.models.Model的一 ...
- pycharm 当有多个.py文件在开发环境中时,如何操作可以保证运行当前面对自己的文件?
Alt+shift+F10选择自己的py文件,执行就可以了.
- SpringBoot项目中,表单的验证操作
在创建Springboot项目中,我们使用了表单验证操作,这一操作将极大地简化我们编程的开发 1.接收数据,以及验证 @PostMapping("/save") public Mo ...
- Django框架----models.py(数据库操作文件)
利用一个中间模块 帮助我们连接数据库,写SQL语句,执行SQL语句,拿到结果 models.py 一.数据的对应关系 1. 类 ---> 表 2. 对象 ---> 数据行 3. 属性 -- ...
- 无状态的web应用(单个py文件的Django占位图片服务器)
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 阅读本文建议了解Django框架的基本工作流程,了解WSGI应用,如果对以上不是很清楚,建议结 ...
- django项目中form表单和ajax的文件上传功能。
form表单文件上传 路由 # from表单上传 path('formupload/',apply.formupload,name='formupload/'), 方法 # form表单文件上传 de ...
- 08 Django REST Framework 解决前后端分离项目中的跨域问题
01-安装模块 pip install django-cors-headers 02-添加到INSTALL_APPS中 INSTALLED_APPS = ( ... 'corsheaders', .. ...
随机推荐
- vue+canvas踩坑之旅
let img=new Image(); if(img.complete) { console.log('dd'); } img.src="http://localhost:8888/sta ...
- Linux下安装Julia1.0.0
MIT正式发布编程语言Julia 1.0:Python.R.C++三合一! 由于官方文档提示中安装的不是最新的Julia版本,官方的0.7版本安装方法为: ...
- SQL-49 针对库中的所有表生成select count(*)对应的SQL语句
题目描述 针对库中的所有表生成select count(*)对应的SQL语句CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_dat ...
- GetSystemInfo 和 GlobalMemoryStatus获取系统信息,内存信息
// GetSystemInfo.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #in ...
- python变量进阶(可变不可变,局部变量和全局变量)
变量进阶(理解) 目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引 ...
- NOIP2011提高组 选择客栈
原题 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖 ...
- 疑问:VS在调试的过程中,总是会提示正在加载picface.dll的符号,然后卡死在那
环境: 硬件环境: PC 软件环境: Windows7 VS2012 MFC程序调试 现象: 调试的过程中,提示“正在从以下目录加载picface.dll的符号:C:\windows\dll”,然后就 ...
- thinkphp获取后台所有控制器和action
<?phpnamespace Admin\Controller;use Think\Controller;class AuthorController extends PublicControl ...
- ReactiveCocoa进阶
1.ReactiveCocoa常见操作方法介绍. 1.1 ReactiveCocoa操作须知 所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,而R ...
- php7之严格模式RFC
首先需要开启严格模式: declare(strict_types = ); 严格模式下,形参和返回值可加限制.对返回值的限制需要在参数的()后面加上引号加类型限制即可,例: function demo ...