博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
54 Django 模型层(1) 单表查询
阅读量:5068 次
发布时间:2019-06-12

本文共 4965 字,大约阅读时间需要 16 分钟。

单表操作:      一 项目的操作顺序:          1 在model.py文件中创建表结构             class Book(models.Model):                 id=models.AutoField(primary_key=True)                 title=models.CharField(max_length=32)                 price=models.DecimalField(max_digits=5,decimal_places=2)                 publish=models.CharField(max_length=32)                 pub_date=models.DateTimeField()          2 连接数据库创建表             (1)先创建数据库bms             (2)配置                     DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', 'NAME':'bms',      # 要连接的数据库,连接前需要创建好 'USER':'root',       # 连接数据库的用户名 'PASSWORD':'',       # 连接数据库的密码 'HOST':'127.0.0.1', # 连接主机,默认本级 'PORT':3306     # 端口 默认3306 } }
DATABASES = {'default': {        'ENGINE': 'django.db.backends.mysql',        'NAME': 'bms',# 要连接的数据库,连接前需要创建好'USER': 'root',# 连接数据库的用户名'PASSWORD': '',# 连接数据库的密码'HOST': '127.0.0.1',  # 连接主机,默认本级'PORT':3306# 端口 默认3306},     'app1': {        'ENGINE': 'django.db.backends.mysql',        'NAME': 'bms',# 要连接的数据库,连接前需要创建好'USER': 'root',# 连接数据库的用户名'PASSWORD': '',# 连接数据库的密码'HOST': '127.0.0.1',  # 连接主机,默认本级'PORT':3306# 端口 默认3306}, 'app2': {        'ENGINE': 'django.db.backends.mysql',        'NAME': 'bms',# 要连接的数据库,连接前需要创建好'USER': 'root',# 连接数据库的用户名'PASSWORD': '',# 连接数据库的密码'HOST': '127.0.0.1',  # 连接主机,默认本级'PORT':3306# 端口 默认3306}}
不同app 可以配置不同的数据库
 
(3)数据库迁移                 python manage.py  makemigrations                 python manage.py  migrate                 KEY: Django在执行迁移命令时只会为settings中install_app中的应用中的models创建表结构           3 启动项目: python manage.py runserver          二 表记录操作              (1) 添加记录                  # 方式1                  book=Book(title="",price="",publish="",pub_date="2012-12-12")                  book.save()                  # 方式2                  book=Book.objects.create(title="",price="",publish="",pub_date="2012-12-12")                  print(book.id)                  print(book.title)              (2) 查询记录                  KEY:queryset数据类型                 Book.objects.all()    # 返回queryset对象    [obj,obj2,obj3,...]                                            Book.objects.all()first()   # Book模型类对象                                             Book.objects.all().last()   # Book模型类对象                 Book.objects.filter(title="python") # 返回queryset对象    [obj,obj2,obj3,...]                  Book.objects.get(title="python") # Book模型类对象                 Book.objects.exclude(title="python") # 返回queryset对象    [obj,obj2,obj3,...]                 Book.objects.all().count() # 返回int                 Book.objects.all().order_by("-price")# 返回queryset对象                 Book.objects.all().order_by("-price").reverse() # 返回queryset对象                 Book.objects.all().exist() # 返回布尔值                 Book.objects.all().values("title") # 返回queryset对象   [{"title":""},{"title":""}]                 Book.objects.all().values_list("title","price") # 返回queryset对象   [("python",122),("linux",233)]                 Book.objects.all().values("price").distinct()                 模糊查询:                     Book.objects.filter(price__gt=100)                     Book.objects.filter(price__lt=100)                     Book.objects.filter(price__in=[100,200,300])                     Book.objects.filter(price__range=[100,200])                     Book.objects.filter(title__startswith="py")                     Book.objects.filter(title__contains="py")                     Book.objects.filter(title__icontains="py")                     Book.objects.filter(pub_date__year="2012")             (3) 删除                 Book.objects.all().delete()                 Book.objects.get(id=1).delete()             (4) 更新                 Book.objects.filter(id__gt=5).update(price=100)         例子:                 1 查询老男孩出版社出版过的价格大于200的书籍                                           Book.objects.filter(price__gt=200,publish="老男孩出版社")                 2 查询2017年8月出版的所有以py开头的书籍名称                   Book.objects.filter(title__startswith="py",pub_date__year=2017,pub_date__month=8).values("title")                 3 查询价格为50,100或者150的所有书籍名称及其出版社名称                   Book.objects.filter(price__in=[50,100,150]).values("title","publish")                 4 查询价格在100到200之间的所有书籍名称及其价格                   Book.objects.filter(price__range=[100,200]).values("title","price")                 5 查询所有人民出版社出版的书籍的价格(从高到低排序,去重)                    Book.objects.filter(publish="人民出版社").order_by("-price").values("price").distinct()

 

单表查询连接数据库具体步骤:

1.创建表,在app model.py文件中,创建

2.数据库中,先创建好库,命名为bms

 3.配置settings

4.确保配置文件中已经配置好了自己的应用

5.app 应用中,__init__.py 文件中加上:

import pymysql

pymysql.install_as_MySQLdb()
6.执行
python manage.py makemigrations
python manage.py migrate
7.可能出现的问题和解决办法

 

转载于:https://www.cnblogs.com/knighterrant/p/10209923.html

你可能感兴趣的文章
jdk1.8 api 下载
查看>>
getElement的几中属性介绍
查看>>
HTML列表,表格与媒体元素
查看>>
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
java对象的深浅克隆
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
Python 3.X 练习集100题 05
查看>>
设计器 和后台代码的转换 快捷键
查看>>
Monkey测试结果分析
查看>>
STL——配接器、常用算法使用
查看>>
STL容器之vector
查看>>
无法向会话状态服务器发出会话状态请求
查看>>
数据中心虚拟化技术
查看>>
01入门
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
发送请求时params和data的区别
查看>>