python自动化开发-[第十九天]-分页,cookie,session

今日概要:

  1、cookie和session

  2、csrf 跨站请求伪造

  3、自定义分页

一、上节回顾:

  http请求的本质:

	- Http请求本质
	浏览器(socket客户端):
		2. socket.connect(ip,端口)
		3. socket.send("http://www.xiaohuar.com/index.html....")
		   规则:http协议
			     GET请求:
					"GET /index.html?k1=1&k2=2 Http/1.1\r\nhost:www.xiaohuar.com\r\ncontent-type:application/json\r\n\r\n"

					请求头和请求体使用\r\n\r\n分割,前面头,后面是体
				 POST请求:
					"POST /index.html?k1=1&k2=2 Http/1.1\r\nhost:www.xiaohuar.com\r\ncontent-type:application/json\r\n\r\nusername=alex&pwd=123123"

					请求头和请求体使用\r\n\r\n分割,前面头,后面是体

				www.xiaohuar.com/index.html?k1=1&k2=2
		6. 获取相应
			响应头,响应体 = data.split(‘\r\n\r\n‘)

		7. 断开连接
	网站(socket服务端):
		1. 服务端运行: ip,端口
		4. 字符串 = server.recv()

			头,体 = data.split("\r\n\r\n=")

			request.POST.get()

		5. 服务端响应:
			conn.send(‘......‘)

			响应头:

			响应体:

		7. 断开连接

总结:

	a. Http请求中本质都是字符串
	b. Http请求短连接(请求,响应断开连接)
	c. 请求和响应都有:头、体
		请求:
			请求头
			\r\n\r\n
			请求体
		响应:
			响应头
			\r\n\r\n
			响应体
				<html>
					....
				</html> 

  ORM表操作复习:

	- 创建表: 业务线

	- models.xx.objects.create(name=‘canada‘)
	- models.xx.objects.create(**dic)

	- models.xx.objects.filter(id__gt=1).delete()
	- models.xx.objects.filter(id=1).delete()
	- models.xx.objects.exclude(id=1).delete()

	- models.xx.objects.filter(id=1).update(name=‘ddd‘)
	- models.xx.objects.filter(id=1).update(**dic)

	- 创建表:
		业务线
		主机表
			id host port bs

	# queryset = [对象,对象,...]
	- objs = models.xx.objects.all()
	  for row in objs:
		row.id
		row.host
		row.port
		row.bs.name

	# queryset = [{},{},...]
	- objs = models.xx.objects.all().values(‘id‘,‘host‘,‘port‘,‘bs__name‘)
	  for row in objs:
		row[‘id‘]
		row[‘bs__name‘]

	# queryset = [(1,1.1.11,80,‘Web‘),(),()...]
	- objs = models.xx.objects.all().values_list(‘id‘,‘host‘,‘port‘,‘bs__name‘) #正向查找bs的名字
	  for row in objs:
		row[0]
		row[1]

model操作
	- 创建表:
		用户表(id, user,pwd,email,mm)
		业务线(id, name) # 用户表_set
		主机表(id host port bs)
		用户业务线关系表(id  uid  bid)   ******
					      1   22    1
					      2   22    11
	-   obj = modes.userinfo.objects.filter(user=‘日语哥‘).first()
		obj.mm.add(1)
		obj.mm.add(11)
		# 日语哥负责的所有业务线 -> [业务线对象,业务线对象,]
		queryset = obj.mm.all()
		for row in queryset:
			row.id
			row.name

	- 二手车业务线是由那些人负责 通过对象_set方法进行反向查找
		obj = models.business_unit.objects.filter(name=‘二手车‘).first()
		queryset = obj.userinfo_set.all() #[用户对象,用户对象,]
		for row in queryset:
			row.user
			row.pwd

  

  

    

时间: 2024-10-14 03:18:59

python自动化开发-[第十九天]-分页,cookie,session的相关文章

老男孩教育Python自动化开发精英班-开班典礼感想

2016年1月14日   老男孩教育Python自动化开发精英班-第一天 期待中的老男孩教育Python自动化开发精英班开办了. 我知道对于我这个年龄进入这个班意味着什么?首先,精力不如年轻人,其次,单位繁杂的事务性工作较多.所以,从现在起必须对工作处理更加效率,休息时间要进行压缩,否则就不能腾出更多的时间学习,压力还是很大的. 我知道,在这个班中都是些年轻人,大家都为了掌握一门具备前瞻性.实用性和就业面宽广的本事而来,以后可以在社会上有更多的.更好的和收入可观的发展机会.有人问了,你都快退休了

python学习之第十九天

本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制.也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出.如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题.不同的算法可能用不同的时间.空间或效率来完成同样的任务.一个算法的优劣可以用空间复杂度与时间复杂度来衡量. 一个算法应该具有以下七个重要的特征: ①有穷性(Fin

Python自动化开发

第一篇:Python入门基础 第二篇:python数据类型 第三篇:函数编程 第四篇:生成器.迭代器.装饰器 第五篇:常用模块 第六篇:面相对象 第七篇:面相对象进级 第八篇:socket网络编程 第九篇:进程与线程 第十篇:异步IO.消息队列 第十一篇:消息队列.缓存 第十二篇:数据库操作 第十三篇:HTML和CSS入门 第十四篇:JavaScript基础 第十五篇:JavaScript 之 Dom操作 第十六篇:jQuery基础 第十七篇:Django入门 第十八篇:Django进级 第二十

Python自动化开发学习的第十周----RabbitMQ

RabbitMQ   消息队列   消息的传递 安装   http://www.rabbitmq.com/install-standalone-mac.html 如果是在windows上安装还要安装erlang语言 安装python RabbitMQ pip install pika or easy_install pika or 源码 https://pypi.python.org/pypi/pika 实现最简单的队列通信 http://www.rabbitmq.com/getstarted.

Python自动化开发,Day10 - 进程、线程、协程

本章内容 操作系统发展史介绍 进程与线程的区别 python GIL全局解释器锁 线程 语法 join 线程锁Lock\Rlock\信号量 将线程变为守护进程 Event时间 Queue队列 生产者消费者模型 进程 语法 进程间通讯 进程池 一.操作系统发展史介绍 手工操作(无操作系统) 1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统,计算机工作采用手工操作方式. 手工操作 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存

Python自动化开发-简介

一.简介 1.背景知识 Python是一门简明并强大的面向对象的编程语言. WEB开发.软件开发.科学运算.大数据分析.自动化运维等方面广泛使用 主流语言的区别和特点 C\C++:学习成本高,学习周期长,偏系统底层,在开发硬件驱动.嵌入式.游戏引擎开发等领域有广泛的应用 Java:目前使用最广泛的编程语言,第一个跨平台的语言,在大型ERP软件开发\安卓APP开发\网站开发领域使用广泛 Python:使用领域几乎和Java一样广泛,但开发效率要高于Java,且学习成本较低,在科学运算\数据分析\网

Python自动化开发学习12-MariaDB

关系型数据库 主流的关系型数据库大概有下面这些: Oracle : 甲骨文公司的企业级的数据库 SQL Server : 微软的 MySQL : 免费的数据库,现在也属于Oracle的旗下产品 MariaDB : 开源的数据库,MySQL的一个分支 PostgreSQL : 也是开源的 SQLite : 一款轻量级的数据库 DB2 : IBM的 RDBMS 术语 RDBMS(Relational Database Management System)即关系数据库管理系统,在开始之前,先了解下RD

Python自动化开发学习22-Django上

session 上节已经讲了使用Cookie来做用户认证,但是Cookie的问题缺点:敏感信息不适合放在cookie里,敏感信息只能放在服务器端优势:把部分用户数据分散的存放在每个客户端,减轻服务端的压力Cookie是保存在用户浏览器端的键值对,Session是保存在服务器端的键值对.Session依赖Cookie,Cookie保存随机字符串,凭借这个随机字符串获取到服务器端Session里的内容.用Session来优化用户登录:用户登录后,生成一个随机字符串,通过Cookie发送给客户端保存.

Python自动化开发学习-Tornado

Tornado 基本操作 讲师的博客:白话tornado源码系列5篇,主要是源码剖析暂时不需要知道那么多.只要看下第一篇就好:https://www.cnblogs.com/wupeiqi/tag/Tornado/Web框架之Tornado:https://www.cnblogs.com/wupeiqi/p/5702910.html Hello World 经典的 hello world 示例: import tornado.web # 视图 class MainHandler(tornado.