cookie session ORM 操作
. ORM增删改查操作
http://www.cnblogs.com/liwenzhou/p/8660826.html . 单表增删改查 . 单表的双下划线操作 . 外键的跨表查询
. 正向查询 . 反向查询
. 多对多的跨表查询
. 正向查询 . 反向查询
. 分组和聚合 . F和Q . 事务 . 执行原生SQL语句 . BBS 仿博客园
. CRM --> 权限系统、Django admin、 Startk组件
. 路飞学城 --> Django REST Framework(API) --> Vue(MVVM框架)
. Flask --> 发布系统
. 爬虫
. 算法+金融
. Linux
. ORM
. ORM常用字段和属性
. AutoField(primary_key=True)
. CharField(max_length=)
. IntgerField() . DateField()
. DateTimeField()
. auto_now_add --> 创建的时候自动填充当前时间
. auto_now --> 每次修改的时候自动把当前时间更新 . 关系字段
. ForeignKey(to="类名",related_name=“xx”) --> 1对多 ,外键通常设置在多的那一边、
. ManyToMany(to="类名",related_name="xx") --> 多对多,通常设置在正向查询多的那一边 . ORM一般操作
. 必知必会13条
. 返回QuerySet对象的
. all()
. filter()
. values()
. values_list()
. exclude()
. order_by()
. reverse()
. distinct()
. 返回具体对象的
. get()
. first()
. last()
. 返回布尔值的
. exists()
. 返回具体数值的
. count()
. 单表查询的双下划线
. models.Book.objects.filter(id__gt=)
. models.Book.objects.filter(id__in=[,,])
. models.Book.objects.filter(id__range=[,])
. models.Book.objects.filter(title__contains="沙河")
. models.Book.objects.filter(title__icontains="沙河")
. models.Book.objects.filter(title__startswith="沙河")
. models.Book.objects.filter(title__endswith="沙河")
. models.Book.objects.filter(publish_date__year=)
. models.Book.objects.filter(publish_date__month=)
. 外键的跨表查询
. 正向查找
. 基于对象
book_obj = models.Book.object.get(id=)
book_obj.publisher.name . 基于双下划线的
models.Book.object.filter(id=).values("publisher__name") . 反向查找(由出版社查书)
. 基于对象
publisher_obj = models.Publisher.objects.get(id=)
默认反向查找的时候是表名加_set
publisher_obj.book_set.all()
如果在外键中设置了related_name="books"
publisher_obj.books.all() . 基于双下划线
models.Publisher.objects.filter(id=).values("book__title")
如果配置了related_query_name="books"
models.Publisher.objects.filter(id=).values("books__title") . 分组和聚合
. 聚合
from django.db.models import Avg, Sum, Max, Min, Count
models.Book.objects.all().aggregate(Avg("price"))
. 分组
book_list = models.Book.objects.all().annotate(author_num=Count("author")) . F和Q
. 当需要字段和字段作比较的时候用F查询
. 当查询条件是 或 的时候 用Q查询,因为默认的filter参数都是且的关系 . 事务
. 保证数据的原子性操作!!! . 执行原生的SQL语句(了解即可) . ORM 一对一
. 什么时候用一对一?
当 一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁
把不怎么常用的字段 单独拿出来做成一张表 然后用过一对一关联起来 . 优势
既保证数据都完整的保存下来,又能保证大部分的检索更快 . ORM中的用法
OneToOneField(to="") . ORM 多对多的三种方式
多对多的方式:
. ORM自动帮我创建第三张表 . 自己创建第三张表, 利用外键分别关联作者和书
关联查询比较麻烦,因为没办法使用ORM提供的便利方法 . 自己创建第三张表,使用ORM 的ManyToManyFiled()
使用此种方式创建多对多表的时候,没有 add() remove() 等方法 我们应该用哪种?
看情况:
. 如果你第三张表没有额外的字段,就用第一种
. 如果你第三张表有额外的字段,就用第三种或第一种 . ORM查询的练习题
. 跨表查询
. 跨多张表查询 . csrf简单用法 什么是CSRF ?
跨站请求伪造, 问题:
. 钓鱼网站的页面和正经网站的页面对浏览器来说有什么区别? (页面是怎么来的?)
钓鱼网站的页面是由 钓鱼网站的服务端给你返回的 正经网站的网页是由 正经网站的服务端给你返回的 . Django中内置了一个专门处理csrf问题的中间件
django.middleware.csrf.CsrfViewMiddleware 这个中间件做的事情:
. 在render返回页面的时候,在页面中塞了一个隐藏的input标签 用法:
我们在页面上 form表单 里面 写上 {% csrf_token %} <input type="hidden" name="csrfmiddlewaretoken" value="8gthvLKulM7pqulNl2q3u46v1oEbKG7BSwg6qsHBv4zf0zj0UcbQmpbAdijqyhfE"> . 当你提交POST数据的时候,它帮你做校验,如果校验不通过就拒绝这次请求 http://www.cnblogs.com/liwenzhou/p/8343243.html
cookie session ORM 操作的更多相关文章
- node学习笔记9——cookie,session相关操作
下面讲的都是基Express及相关的包.所以在实践本篇文章之前,通过npm安装好Express, cookie-parser, cookie-session这三个安装包. 先简单说一下,如何用Expr ...
- django 2 ORM操作 ORM进阶 cookie和session 中间件
ORM操作 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- python运维开发(十九)----Django后台表单验证、session、cookie、model操作
内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...
- Django -聚合分组,FQ操作, cookie, session
一. 聚合查询和分组 1. 聚合 aggregate(*args, **kwargs) 对一组数据进行统计分析, 通过对QuerySet进行计算, 返回一个聚合值得字典. arrgregate()中每 ...
- thinkphp中cookie和session中操作数组的方法
thinkphp中cookie和session中操作数组的方法 一.ThinkPHP模板中如何操作session,以及如果session中保存的是数组的情况 在ThinkPHP的模板中操作sessio ...
- Django中cookie和session的操作
一.cookie和session cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是 ...
- python自动化开发-[第十九天]-分页,cookie,session
今日概要: 1.cookie和session 2.csrf 跨站请求伪造 3.自定义分页 一.上节回顾: http请求的本质: - Http请求本质 浏览器(socket客户端): 2. socket ...
- Cookie/Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- [转]Cookie/Session机制详解
原文地址:http://blog.csdn.net/fangaoxin/article/details/6952954 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用 ...
随机推荐
- ArcGIS自定义工具箱-自增字段(可以设置初始值和步长)
ArcGIS自定义工具箱-自增字段(可以设置初始值和步长) 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:字段值初始值为设定值(默认为0),每次增加一个步长( ...
- VC++ 自定义控件的建立及使用方法
一.VC++定义自定义控件与delphi,VB有些差异. delphi,vb在 file-new-other中建立.vc++在工具栏中就有自定义控件,但必须加入控件类型. 许多书籍都在类向导中建立.我 ...
- A*寻路初探(转载)
启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标.这样可以省略大量无畏的搜索路径,提到了效率.在启发式搜索中,对位置的估价是十分重要 ...
- ETL工具总结
ETL的考虑 做 数据仓库系统,ETL是关键的一环.说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具.回忆一下工作这么些年来,处理数据迁移.转换的工作倒 还真的不少.但是那些工 ...
- scrapy爬虫的编写步骤
scrapy的步骤: a.编写item,爬取的各个属性 b.编写spider,name 要和 scrapy crawl xxspider一致,里面编写parse的信息,就是xpath获取item的各个 ...
- hive 的理解
什么是Hive 转自: https://blog.csdn.net/qingqing7/article/details/79102691 1.Hive简介 Hive 是建立在 Hadoop 上的数据仓 ...
- Feign Hystrix
1.Feign整合Hystrix 添加依赖 编写接口与实现回退 1.1.调用者引入依赖 <!-- Feign --> <dependency> <groupId>o ...
- flex-grow
[flex-grow] 指定宽度所占比,如一个flex中有三个item,这三个item的flex-grow均为1,则每个item占比为33.33%,如果一个是1,两个为2,则占比为20%,40%,40 ...
- Emulating private methods with closures
[Emulating private methods with closures] JavaScript does not provide a native way of doing this, bu ...
- HTTPS加密过程分析
HTTPS加密的作目的是解决信息传输过程中数据被篡改,窃取 HTTPS使用了一系列的加密算法:对称加密算法.非对称加密算法.单向加密算法 非对称加密算法 分为公钥部分和私钥部分,用公钥加密的密文只能由 ...