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 ...
随机推荐
- Logstash7.6.2同步Mysql数据到ElasticSearch
1.准备工作:存在的mysql的数据库表.创建好的elasticsearch索引 2.下载mysql-connector 下载地址:https://dev.mysql.com/downloads/co ...
- Netty 源码解析(八): 回到 Channel 的 register 操作
原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 今天是猿灯塔“365篇原创计划”第八篇. 接下来的时间灯塔君持续更新Netty系列一共九篇 Netty 源码解析(一): 开始 Netty 源 ...
- Windows常用注册表文件
内容转载自我的博客 目录 1. 删除Visual Studio的右键菜单 2. 恢复Visual Studio的右键菜单 3. 右键菜单添加功能 4. USB3.0连接安卓手机刷机出现问题 1. 删除 ...
- 【PyMuPDF和pdf2image】Python将PDF转成图片
前言: 在最近的测试中遇到一个与PDF相关的测试需求,其中有一个过程是将PDF转换成图片,然后对图片进行测试. 粗略的试了好几种方式,其中语言尝试了Python和Java,总体而言所找到的Python ...
- 状压DP之中国象棋
题目 传送们 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法.大家肯定很清楚,在中国象棋中炮的行走方 ...
- centos-pip不存在安装失败的解决办法
1.centos下安装pip失败 2.解决办法 需要先安装扩展源EPEL. EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL ...
- 某cms代码审计
前言 前几个礼拜上课老师带着挖cms的洞,挖出个cookie反序列化注入漏洞,和报错注入并且提交了cnvd.昨天去找源码的时候发现它更新了一个版本,更新日志上也没说修复,就想着看看漏洞还存不存在, ...
- element-ui(vue)upload组件的http-request方法的使用
element-ui(vue)upload组件的http-request方法的使用 官方文档: http-request方法有一个默认的参数 content content 是一个object对象:里 ...
- java 基本语法(十六)Lambda (三)函数式接口
方法引用1.理解:方法引用可以看做是Lambda表达式深层次的表达.换句话说,方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法. 2.使用情境:当要传递给Lam ...
- python数据处理(七)之数据探索和分析
1.探索数据 1.1 安装agate库 1.2 导入数据 1.3 探索表函数 a.排序 b.最值,均值 c.清除缺失值 d.过滤 e.百分比 1.4 连结多个数据集 a.捕捉异常 b.去重 c.缺失数 ...