Django学习路11_向数据库中添加 和 获取指定条件数据
在 views.py 中添加函数 向数据库中添加数据
def add_persons(request):
for i in range(15):
person = Person()
flag = random.randrange(100)
person.p_name = "Hany_ %d"%(i)
person.p_age = flag
person.p_sex = flag%2
person.save()
return HttpResponse("批量添加成功")
注:
使用随机数,进行添加数据(目前还是静态数据)
添加表中的元素属性值
save 进行保存
在使用 random 之前先进性导入
http://127.0.0.1:8000/app4/addpersons
添加一条数据 def add_person(request):
person = Person.objects.create(p_name='Yizhan')
# 使用 objects.create 进行创建一条数据
person.save()
return HttpResponse("%s 创建成功"%(person.p_name)) 注:
使用 create 方法进行创建

获取数据 def get_persons(request):
# persons = Person.objects.filter(p_age__gt=30)
'''age 大于 30 的 '''
# persons = Person.objects.filter(p_age__gt=30).filter(p_age__lt=80)
'''.filter .filter 表示且'''
persons = Person.objects.exclude(p_age__lt=30).exclude(p_age__gt=80)
'''age 大于 30 的 , 小于 80 的,exclude 除了,不包含的意思 '''
print(type(persons))
'''<class 'django.db.models.query.QuerySet'> 结果集类型'''
context = {
'persons':persons
# 传递到前端代码中
}
return render(request,'person_list.html',context = context) 注:
.filter(表示包含的条件)
.filter(表示包含的条件).filter(表示包含的条件) 表示两个条件都需要满足,且 获取到的数据都是 QuerySet 类型,放入到值中,使用网页进行遍历
这里使用的是 render ,不是 HttpResponse p_age__gt 表示大于
p_age__lt 表示小于

获取一条数据
objects.get(条件) first() 返回查询集中的第一个对象 last() 返回查询集中的最后一个对象 count() 返回当前查询集中的对象个数 exists() 判断查询集中是否有数据,返回 True 和 False
True 表示有数据 def get_person(request):
person = Person.objects.get(p_age = 48)
context = {
'person':person
}
return render(request,'person_one.html',context = context) 注:
如果没有查询到数据,则会报 500 服务器异常
DoesNotExist 异常 如果查询到的对象多于一个,返回两个对象也会报错
MultiObjectsReturned 异常

templates 中person_list.html 内容 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>Person 大于 30 的 , 小于 80 的 :</h2>
<h4>
{% for person in persons %}
<li>
姓名:{{ person.p_name }} 年龄{{ person.p_age }}
</li>
{% endfor %}
</h4>
</body>
</html> 注:
在 for 循环的时候两边有 {% %}
正常单个语句时,使用的是 {{ 属性}}
最后要加上 {% endfor %} 此处的 属性为数据库表中的元素
不要忘了的点: urlpatterns = [
url(r'addpersons',views.add_persons),
url(r'getpersons',views.get_persons),
url(r'addperson',views.add_person)
] 在 urls.py 中 ,进行注册
启动命令 python manage.py runserver
使用类方法创建单个对象示例:
在 models.py 中自定义类方法 create 进行创建
@classmethod
def create(cls,p_name,p_age = 100,p_sex = True):
# 自定义方法进行创建对象,可以包含表达式
return cls(p_name = p_name,p_age = p_age,p_sex = p_sex)
views.py 中 add_person 函数
def add_person(request):
person = Person.create('Lao')
person.save()
return HttpResponse("创建成功")


2020-05-09
Django学习路11_向数据库中添加 和 获取指定条件数据的更多相关文章
- Django学习路6_修改数据库为 mysql ,创建mysql及进行迁徙
在项目的 settings 中修改 DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os. ...
- 如何向数据库中添加TIMESTAMP(6)类型的数据
to_timestamp('2011-11-11 11:11:11.1','yyyy-mm-dd hh24:mi:ss.ff')
- Eclipse中java向数据库中添加数据,更新数据,删除数据
前面详细写过如何连接数据库的具体操作,下面介绍向数据库中添加数据. 注意事项:如果参考下面代码,需要 改包名,数据库名,数据库账号,密码,和数据表(数据表里面的信息) package com.ning ...
- 用PHP向数据库中添加数据
显示页面(用户可见) <body><form action="chuli.php" method="post"> //将该页面接收的数 ...
- python3 + flask + sqlalchemy +orm(2):数据库中添加表
往数据库中添加一张保存文章的表,表明为article,字段有id,title,content 同样一个配置文件:config.py DEBUG = True #dialect+driver://roo ...
- 向数据库中添加数据,通过se16 不能添加,通过 代码可以添加的原因
1: 在向数据库中添加数据时,通过客户端se16 准备对 数据表进行添加数据,提示如下: 找了以下原因,如下: https://www.baidu.com/link?url=3yRtAfY1_9XG ...
- phpStudy3——往数据库中添加数据
前言: 前边介绍了查询数据库的方法,这里介绍下往数据库中添加数据的方法. 项目需求: 用户在前端页面输入的用户名和手机号码,点击提交后后端判断手机号码是否已经存在.如果不存在,那么插入数据库到数据库, ...
- 在数据库中添加数据以后,使用Mybatis进行查询结果为空
在数据库中添加数据以后,使用Mybatis进行查询结果为空,这是因为数据库中添加数据忘记commit的缘故.
- 在Settings.db数据库中添加一项新的设置(Settings默认设置)
Settiings的数据默认存放在com.android.providers.settings/database/settings.db中 数据库中的默认数据在frameworks/base/pack ...
随机推荐
- 【k8s学习笔记】使用 kubeadm 部署 v1.18.5 版本 Kubernetes集群
说明 本文系搭建kubernetes v1.18.5 集群笔记,使用三台虚拟机作为 CentOS 测试机,安装kubeadm.kubelet.kubectl均使用yum安装,网络组件选用的是 flan ...
- Netty源码学习系列之5-NioEventLoop的run方法
前言 NioEventLoop的run方法,是netty中最核心的方法,没有之一.在该方法中,完成了对已注册的channel上来自底层操作系统的socket事件的处理(在服务端时事件包括客户端 ...
- CSS3样式_实现字体发光效果
text-shadow 属性仅仅是用来设置文本阴影的,似乎并不能实现字体发光效果.其实不然,这正是 text-shadow 属性的精妙之处.当阴影的水平偏移量和垂直偏移量都为0时,阴影就和文本重合了. ...
- SQL批量插入数据【万级】
1.每4000条插入一次 for (int i = 0; i < dt.Rows.Count; i++) { IsTBProductForStockInfo model = new IsTBPr ...
- numpy基础用法学习
numpy get started 导入numpy库,并查看numpy版本 import numpy as np np.__version__ '1.14.0' 一.创建ndarray 1. 使用np ...
- JVM 专题十七:垃圾回收(一)简述
1. 什么是垃圾 1.1 C++与Java 1.2 概述 垃圾收集,不是Java语言的伴生产物.早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生. 关于垃圾收集有三个经典问题 ...
- 数据可视化之powerBI基础(四)深入了解PowerBI的工具提示功能
https://zhuanlan.zhihu.com/p/36804592 在PowerBI上个月的更新中,增加了工具提示功能,这项功能允许您将自己的可视化作品放置到工具提示中,通过鼠标悬停的方式来展 ...
- python 并发 ThreadPoolExecutor
正文:Executor是一个抽象类,子类: ThreadPoolExecutor和ProcessPoolExecutor ,一个线程池,一个进程池. future对象:在未来的某一时刻完成操作的对象. ...
- 机器学习实战基础(十四):sklearn中的数据预处理和特征工程(七)特征选择 之 Filter过滤法(一) 方差过滤
Filter过滤法 过滤方法通常用作预处理步骤,特征选择完全独立于任何机器学习算法.它是根据各种统计检验中的分数以及相关性的各项指标来选择特征 1 方差过滤 1.1 VarianceThreshold ...
- redis(十一):Redis 列表(List) (python)
# -*- coding: utf-8 -*- import redis r =redis.Redis(host="123.156.74.190",port=6379,passwo ...