前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >day67-Django进阶-ORM操作数据库+django环境搬运

day67-Django进阶-ORM操作数据库+django环境搬运

原创
作者头像
少年包青菜
修改2020-08-20 15:36:56
5340
修改2020-08-20 15:36:56
举报
文章被收录于专栏:Python 学习Python 学习

1.如何新建Django超级用户

在终端输入  python manage.py createsuperuser  依次输入用户名密码,密码一般8位
在终端输入 python manage.py createsuperuser 依次输入用户名密码,密码一般8位
项目启动后,访问    /admin/  ,输入用户名密码
项目启动后,访问 /admin/ ,输入用户名密码

2.设定时间字段时的注意点

3.设置字段可以为空

4.设置字段的choice属性(暂时存在一点问题)

5.class Meta

6.如何搬运Django环境,在一个py文件里面实现ORM操作

from app01 import xx 只能写在 django.set_up() 后面

7.查询、操作方法具体实现的十三个方法★★★★★

.all()

.get()

.filter()

.exclude()

.values()

.value_list()

.order_by()

.reverse()

.distinct()

.count()

.first() + .last()

.exists()

方法总结

8.单表查询的一些 " __XX= " 方法

__gt= __lt= __gte= __lte= __in= __range=,注意__range=[1, 3],就是从 1 到 3,包含3

__startwith=

__istartwith=

__contains=

__icontains=

__endwith=

__iendwith=

9.外键关联查询之正向查询

数据库的表结构
数据库的表结构

10.外键关联查询之反向查询

11.反向查询之定制名称

12.反向查询之连接表示例(其实和正向一样)

13.多对多 + 一对多

add() 一对多

代码语言:javascript
复制
# 将 QuerySet 里的所有对象外键全部强行指向当前查询对象 
books = models.Book.objects.filter(title__startswith='书籍')
# 当 books 为一条单独的模型,传入不用打散
models.Publisher.objects.get(id=3).book_set.add(*books)

add() 多对多

代码语言:javascript
复制
# 将 QuerySet 里面的对象保留已有外键,新增指向自己的外键
# add 需要打散
books = models.Book.objects.filter(id__gte=4)
models.Author.objects.get(id=2).book_set.add(*books)

set() 一对多,多对多都一样

代码语言:javascript
复制
# 解除指向自己关的全部对象,只跟现在 QuerySet 关联
# set 不需要打散
books = models.Book.objects.filter(title__startswith='书籍')
models.Publisher.objects.get(id=3).book_set.set(books, )

remove() + clear() 可以使用的前提是 ForeignKey(null=True...) ,即外键指向可以为空

remove() 一对多,多对多都一样

代码语言:javascript
复制
# 接收QuerySst,先筛选出符合条件的要删除的对象
# 打散出入对象,并不解除所有,只解除筛选出的对象
books = models.Book.objects.filter(title__startswith='书籍')  
models.Publisher.objects.get(id=3).book_set.remove(*books, )  

clear() 一对多,多对多都一样

代码语言:javascript
复制
# 直接简单暴力清除所有跟查询对象相关的外键关联
models.Publisher.objects.get(id=2).book_set.clear()  

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.如何新建Django超级用户
  • 2.设定时间字段时的注意点
  • 3.设置字段可以为空
  • 4.设置字段的choice属性(暂时存在一点问题)
  • 5.class Meta
  • 6.如何搬运Django环境,在一个py文件里面实现ORM操作
  • 7.查询、操作方法具体实现的十三个方法★★★★★
    • .all()
      • .get()
        • .filter()
          • .exclude()
            • .values()
              • .value_list()
                • .order_by()
                  • .reverse()
                    • .distinct()
                      • .count()
                        • .first() + .last()
                          • .exists()
                            • 方法总结
                            • 8.单表查询的一些 " __XX= " 方法
                              • __gt= __lt= __gte= __lte= __in= __range=,注意__range=[1, 3],就是从 1 到 3,包含3
                                • __startwith=
                                  • __istartwith=
                                    • __contains=
                                      • __icontains=
                                        • __endwith=
                                          • __iendwith=
                                          • 9.外键关联查询之正向查询
                                          • 10.外键关联查询之反向查询
                                          • 11.反向查询之定制名称
                                          • 12.反向查询之连接表示例(其实和正向一样)
                                          • 13.多对多 + 一对多
                                            • add() 一对多
                                              • add() 多对多
                                                • set() 一对多,多对多都一样
                                                  • remove() 一对多,多对多都一样
                                                    • clear() 一对多,多对多都一样
                                                    领券
                                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档